Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guia Pragmatic Programmer en Castellano PDF
Guia Pragmatic Programmer en Castellano PDF
¿Por qué desperdiciar tu vida desarrollando software sino te
preocupas en hacerlo bien?
En vez de excusas, propón opciones. No digas que no
se puede hacer algo, explica mejor lo que sí puedes hacer.
Corrige malos diseños, decisiones equivocadas y el código
mal escrito cuando lo veas.
No puedes forzar que la gente cambie. En vez de eso,
muestra cómo podría ser el futuro y ayúdalos a participar en tu creación.
!c
"No te obsesiones con los detalles porque hacen olvidarte de
lo que ocurre alrededor.
#
$
Involucra a los usuarios para determinar
las necesidades de calidad reales del proyecto.
%
Haz de aprender un hábito
%
$
'
. No tiene sentido tener buenas ideas
sino las transmitimos con eficacia.
#'*
Si es fácil de reutilizar, la gente lo hará reutilizable. Crea un
entorno que apoye la reutilización.
+
'
Los componentes de un diseño son
autónomos, independientes y tienen un único propósito bien definido.
)(
'
. Las decisiones no se deben grabar en una piedra, sino en la
arena de la playa. Cualquier decisión debe ser susceptible a cambio.
,
. Haz distintas pruebas y tracea los resultados para ver
cómo se van compenetrando para llegar a nuestro objetivo.
±
Crear prototipos es un experiencia para el aprendizaje. Su
valor no reside en el código generado, sino en las lecciones que aprendes al crearlo.
Diseña y programa usando el mismo lenguaje usado por el
usuario.
#
Haz una estimación antes de empezar. Podrás
adelantarte a los posibles problemas futuros.
- Usa la experiencia que vayas ganando para refinar las
escalas temporales de entrega del proyecto.
c
El texto plano nunca será obsoleto. Ayuda a
aprovechar tu trabajo y simplifica la depuración así como las pruebas.
±
0
El editor debe de ser una extensión de tu mano. Asegúrate
que es configurable, ampliable (plugins) y programable.
- '
El control del código fuente es una máquina del
tiempo, siempre puedes volver atrás.
Prueba tu hipótesis en el entorno actual que tengas, con datos
reales y condiciones límites.
&
Gastas una gran parte del día peleando con
texto. ¿Por qué no hacer que el ordenador haga el trabajo por ti?
+
- $
- Los generadores de código aumentan la productividad
y evitan la duplicación.
'1'
El software no puede ser perfecto. Protege el
código y a los usuarios de errores inevitables.
2
Recurre a los contratos para documentar y comprobar que el código
hace realmente lo que tiene que hacer.
+
. Un error cuanto antes sea detectado mejor, hará menos daño que aquel
que se detecte tarde, hará que creemos que la aplicación funciona.
±'
Las afirmaciones validan tu hipótesis.
Úsalas para proteger el código de un mundo desconocido.
±
El abuso del uso de excepciones
pueden convertir tu aplicación en poco legible y sotenible. Usa las excepciones para casos
excepcionales.
&
$ Siempre que sea posible, la rutina o el objeto asignado a un
recurso debe de ser borrado cuando ya no sea necesario.
3
- Evita el acoplamiento debido al código
³tímido´ y aplica la Ley de Demeter.
'
Implementa las opciones para una tecnología usando opciones de
configuración, no a través de integración ó ingeniería.
-
Programa para el caso general, y
coloca las especificaciones fuera del código base compilado.
2
Diseña en términos de servicios independientes, detrás de objetos
concurrentes bien definidos, interfaces consitentes.
2
Permite la concurrencia, y diseñarás interfaces más
limpias.
±
' Usa las pizarras para coordinar agentes
y hechos dispares, manteniendo la independencia y el aislamiento entre los participantes.
#
-
Ten una idea de la longitud de las cosas
antes de empezar a escribir código.
El análisis matemático no te lo dice todo. Prueba el tiempo
consumido por tu código en su entorno final.
'
'
Así como quitas las malas hierbas de un jardín
y lo reorganizas, reescribe, haz de nuevo y rediseña el código cuando sea necesario. Arregla
la raíz del problema.
2 Empieza a pensar en las pruebas antes de escribir una línea de código.
- $
Los asistentes pueden generar
montones de código. Asegúrate de entender todo antes de incorporarlo a tu proyecto.
$ 0
Los requisitos rara vez están en la superficie. Están
enterrados bajo capas de supuestos, conceptos erróneos y política.
,
Esta es la mejor forma de
conocer cómo funciona el sistema que utilizarán realmente.
4
+
Has ido adquiriendo experiencia toda tu vida. No ignores las
dudas que te puedan surgir.
&
$
No caigas en la
espiral de las especificaciones, en algún momento tenemos que empezar a programar.
'No adoptes ciegamente cualquier técnica sin
suponerla en el contexto de tus prácticas de desarrollo y capacidades.
Un Shell script o fichero por lotes se ejecutará las
mismas instrucciones, en el mismo orden, una y otra vez.
4
-
*
)$ )(
Queda
todo dicho.
- Identifica y pon a prueba
los estados de los programas. Probar sólo líneas de código no es suficiente.
+
Una vez que los probadores (humanos) encuentran un
error, esta debe de ser la última vez que se encuentra. A partir de ahora tienen que ser las
pruebas automáticas las que comprueben los errores.
-
-
La documentación
creada separadamente del código acaba siendo poco precisa y actualizada.
Ò
±*elcome, Javalobby readers! You might be interested in the followup to this post.
Thanksforthegreatfeedback and suggestions.
° | |
!
° ð"
"#ð"
|
i
|
°
|
()
|
(
)
*(+),
++
%$-- "
&
|
++
./
"
° ð |
ð
0ð $
1
#
$
2
3|0ð
3|
&
4
$
)
$
5
4
3|
6
7
° |
| $
8
8
|
&
"9$:
8
|
%ð
+
( &+
8
"
"ð
4
"
8
Note what
6 on the list: any of the Java 5 reference books or any of the tens (hundreds?)
of J2EE books. Its important to keep up with the language and the platform, but I think
thats better done through programming with the JDK and examples as reference. The
reference books can be helpful for getting up to speed for day to day work, but I don't think
they are essential for furthering your knowledge or your craft. Long after your J2EE
ë.4.x.niner book is collecting dust on the shelf, Effective Java will still be a reference you
consult regularly.