13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

✐<br />

✐<br />

✐<br />

“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 18 — #56<br />

✐<br />

Capítulo 1. Introducción a los Objetos<br />

interacción a través del ciclo completo, y eso requiere comportami<strong>en</strong>tos arriesgados<br />

(lo cual ti<strong>en</strong>e s<strong>en</strong>tido, porque está int<strong>en</strong>tando hacer algo nuevo y los b<strong>en</strong>eficios pot<strong>en</strong>ciales<br />

son mayores). Puede parecer que el riesgo está compuesto por «prisas» <strong>en</strong><br />

una implem<strong>en</strong>tación preliminar, pero <strong>en</strong> cambio puede reducir el riesgo <strong>en</strong> un proyecto<br />

comodín porque está descubri<strong>en</strong>do pronto si es viable un <strong>en</strong>foque particular<br />

para el problema. El desarrollo del producto es gestión de riesgos.<br />

A m<strong>en</strong>udo se propone que «construya uno desechable». Con la POO, todavía<br />

debe andar parte de este camino, pero debido a que el código está <strong>en</strong>capsulado <strong>en</strong><br />

clases, durante la primera iteración inevitablem<strong>en</strong>te producirá algunos diseños de<br />

clases útiles y desarrollará algunas ideas válidas sobre el diseño del sistema que<br />

no necesariam<strong>en</strong>te son desechables. De esta manera, la primera pasada rápida al<br />

problema no produce sólo información crítica para la sigui<strong>en</strong>te iteración de análisis,<br />

diseño, e implem<strong>en</strong>tación, sino que además crea el código base para esa iteración.<br />

Es decir, si está buscando una metodología que cont<strong>en</strong>ga detalles trem<strong>en</strong>dos y<br />

sugiera muchos pasos y docum<strong>en</strong>tos, es aún más difícil saber cuándo parar. T<strong>en</strong>ga<br />

pres<strong>en</strong>te lo que está int<strong>en</strong>tando <strong>en</strong>contrar:<br />

1. ¿Cuáles son los objetos (¿Cómo divide su proyecto <strong>en</strong> sus partes compon<strong>en</strong>tes)<br />

2. ¿Cuáles son sus interfaces (¿Qué m<strong>en</strong>sajes necesita <strong>en</strong>viar a otros objetos)<br />

Si sólo cu<strong>en</strong>ta con los objetos y sus interfaces, <strong>en</strong>tonces puede escribir un programa.<br />

Por varias razones podría necesitar más descripciones y docum<strong>en</strong>tos, pero no<br />

puede hacerlo con m<strong>en</strong>os.<br />

El proceso se puede realizar <strong>en</strong> cinco fases, y una fase 0 que es simplem<strong>en</strong>te el<br />

compromiso inicial de usar algún tipo de estructura.<br />

1.9.1. Fase 0: Hacer un plan<br />

Primero debe decidir qué pasos va a dar <strong>en</strong> su proceso. Parece fácil (de hecho, todo<br />

esto parece fácil) y sin embargo la g<strong>en</strong>te a m<strong>en</strong>udo no toma esta decisión antes de<br />

ponerse a programar. Si su plan es «ponerse directam<strong>en</strong>te a programar», de acuerdo<br />

(a veces es adecuado cuando es un problema bi<strong>en</strong> conocido). Al m<strong>en</strong>os estará de<br />

acuerdo <strong>en</strong> que eso es el plan.<br />

También debe decidir <strong>en</strong> esta fase si necesita alguna estructura de proceso adicional,<br />

pero no las nueve yardas completas. Bastante compr<strong>en</strong>sible, algunos programadores<br />

prefier<strong>en</strong> trabajar <strong>en</strong> «modo vacaciones» <strong>en</strong> cuyo caso no se impone ninguna<br />

estructura <strong>en</strong> el proceso de desarrollo de su trabajo; «Se hará cuando se haga». Eso<br />

puede resultar atractivo durante un tiempo, pero se ha descubierto que t<strong>en</strong>er unos<br />

pocos hitos a lo largo del camino ayuda a <strong>en</strong>focar e impulsar sus esfuerzos <strong>en</strong> torno a<br />

esos hitos <strong>en</strong> lugar de empezar a atascarse con el único objetivo de «finalizar el proyecto».<br />

Además, divide el proyecto <strong>en</strong> piezas más pequeñas y hace que dé m<strong>en</strong>os<br />

miedo (y además los hitos ofrec<strong>en</strong> más oportunidades para celebraciones).<br />

Cuando empecé a estudiar la estructura de la historia (por eso algún día escribiré<br />

una novela) inicialm<strong>en</strong>te me resistía a la idea de una estructura, s<strong>en</strong>tía que cuando<br />

escribía simplem<strong>en</strong>te permitía que fluyera <strong>en</strong> la página. Pero más tarde me di<br />

cu<strong>en</strong>ta de que cuando escribo sobre computadoras la estructura es bastante clara,<br />

pero no pi<strong>en</strong>so mucho sobre ello. Pero aún así estructuro mi trabajo, aunque sólo<br />

semi-inconsci<strong>en</strong>tem<strong>en</strong>te <strong>en</strong> mi cabeza. Si aún pi<strong>en</strong>sa que su plan es sólo ponerse a<br />

codificar, de algún modo, usted pasará por las posteriores fases mi<strong>en</strong>tras pregunta y<br />

responde ciertas cuestiones.<br />

18<br />

✐<br />

✐<br />

✐<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!