Pragprog-Com - Translate.goog-Consejos Pragmáticos para Programadores
Pragprog-Com - Translate.goog-Consejos Pragmáticos para Programadores
pragprog-com.translate.goog/tips
Comprar →
Hemos publicado los 100 consejos del libro aquí para su referencia y disfrute. ¡Twittea y
comparte tus favoritos!
¡Feliz programación!
Cuida tu artesanía
¿Por qué pasar la vida desarrollando software a menos que le importe hacerlo bien?
tuitea esto
tuitea esto
Consejo n. ° 3, pág. 2:
Tienes agencia
1/18
Es tu vida. Agárralo y hazlo como quieras.
tuitea esto
Consejo n. ° 4, pág. 4:
En lugar de excusas, brinde opciones. No digas que no se puede hacer; Explique lo que se
puede hacer.
tuitea esto
Consejo n. ° 5, pág. 7:
Corrija los diseños incorrectos, las decisiones incorrectas y el código deficiente cuando los
vea.
tuitea esto
Consejo n. ° 6, pág. 9:
No puedes forzar el cambio a la gente. En cambio, enséñeles cómo podría ser el futuro y
ayúdelos a participar en su creación.
tuitea esto
tuitea esto
tuitea esto
2/18
Haga del aprendizaje un hábito.
tuitea esto
tuitea esto
tuitea esto
tuitea esto
Es menos probable que la documentación creada por separado del código sea correcta y
esté actualizada.
tuitea esto
Una cosa está bien diseñada si se adapta a las personas que la utilizan. Para el código, eso
significa que debe adaptarse cambiando.
tuitea esto
SECO: no se repita
3/18
Cada pieza de conocimiento debe tener una representación única, inequívoca y autorizada
dentro de un sistema.
tuitea esto
Facilite su reutilización
tuitea esto
tuitea esto
Ninguna decisión está grabada en piedra. En su lugar, considere que cada uno está escrito
en la arena de la playa y planifique el cambio.
tuitea esto
Neal Ford dice: "La mejor práctica de ayer se convierte en el antipatrón del mañana". Elija
arquitecturas basadas en los fundamentos, no en la moda.
tuitea esto
Las balas trazadoras te permiten enfocarte en tu objetivo probando cosas y viendo qué tan
cerca aterrizan.
tuitea esto
4/18
La creación de prototipos es una experiencia de aprendizaje. Su valor no radica en el
código que produce, sino en las lecciones que aprende.
tuitea esto
tuitea esto
tuitea esto
Use la experiencia que gane a medida que implementa para refinar las escalas de tiempo
del proyecto.
tuitea esto
tuitea esto
tuitea esto
5/18
Un editor es tu herramienta más importante. Sepa cómo hacer que haga lo que necesita,
de forma rápida y precisa.
tuitea esto
El control de versiones es una máquina del tiempo para su trabajo; puedes volver.
tuitea esto
tuitea esto
tuitea esto
Cree una prueba enfocada que revele el error antes de intentar solucionarlo.
tuitea esto
La mayoría de las excepciones indican tanto qué falló como dónde falló. Si tiene suerte,
incluso puede obtener valores de parámetros.
tuitea esto
6/18
Es raro encontrar un error en el sistema operativo o el compilador, o incluso en un
producto o biblioteca de terceros. Lo más probable es que el error esté en la aplicación.
tuitea esto
No lo asuma, demuéstrelo
tuitea esto
Pasas gran parte del día trabajando con texto. ¿Por qué no hacer que la computadora lo
haga por usted?
tuitea esto
El software no puede ser perfecto. Proteja su código y a los usuarios de los inevitables
errores.
tuitea esto
Utilice contratos para documentar y verificar que el código haga ni más ni menos de lo
que dice hacer.
tuitea esto
Choque temprano
Un programa inactivo normalmente hace mucho menos daño que uno paralizado.
tuitea esto
7/18
Si no puede suceder, utilice afirmaciones para asegurarse de que no suceda. Las
afirmaciones validan sus suposiciones. Úselos para proteger su código de un mundo
incierto.
tuitea esto
Cuando sea posible, la función u objeto que asigna un recurso debe ser responsable de
desasignarlo.
tuitea esto
Actuar localmente
Mantenga el alcance de las variables mutables y los recursos abiertos breves y fácilmente
visibles.
tuitea esto
tuitea esto
Evite la adivinación
tuitea esto
El acoplamiento une las cosas, por lo que es más difícil cambiar solo una cosa.
tuitea esto
Dile, no preguntes
8/18
No obtengas valores de un objeto, transfórmalos y luego pégalos. Haz que el objeto haga
el trabajo.
tuitea esto
tuitea esto
tuitea esto
tuitea esto
Todos los programas transforman datos, convirtiendo una entrada en una salida. Empiece
a diseñar utilizando transformaciones.
tuitea esto
No se quede con los datos dentro de una función o módulo. Tome uno y páselo.
tuitea esto
9/18
tuitea esto
tuitea esto
tuitea esto
Los mixins agregan funcionalidad a las clases sin el impuesto a la herencia. Combine con
interfaces para un polimorfismo indoloro.
tuitea esto
Cuando el código se basa en valores que pueden cambiar después de que la aplicación se
activa, mantenga esos valores externos a la aplicación. Cuando su aplicación se ejecute en
diferentes entornos, y potencialmente para diferentes clientes, mantenga el entorno y los
valores específicos del cliente fuera de la aplicación.
tuitea esto
tuitea esto
10/18
El estado compartido abre una gran cantidad de gusanos que a menudo solo se pueden
solucionar reiniciando.
tuitea esto
tuitea esto
tuitea esto
tuitea esto
tuitea esto
tuitea esto
11/18
Tenga una idea del tiempo que pueden tardar las cosas antes de escribir el código.
tuitea esto
tuitea esto
Del mismo modo que podría desyerbar y reorganizar un jardín, reescriba, reelabore y
rediseñe el código cuando lo necesite. Arregle la raíz del problema.
tuitea esto
Una prueba es una perspectiva de su código y le brinda comentarios sobre su diseño, api y
acoplamiento.
tuitea esto
tuitea esto
tuitea esto
12/18
Empiece a pensar en probar antes de escribir una línea de código.
tuitea esto
Prueba sin piedad. No hagas que tus usuarios encuentren errores por ti.
tuitea esto
Las pruebas basadas en propiedades probarán cosas que nunca pensó probar, y ejercitar
su código de una manera que no está destinada a ser utilizada.
tuitea esto
El código complejo crea un caldo de cultivo para errores y oportunidades para que los
atacantes exploten.
tuitea esto
Los atacantes implementan exploits tan rápido como pueden, tienes que ser más rápido.
tuitea esto
Nombre para expresar su intención a los lectores y cámbiele el nombre tan pronto como
cambie esa intención.
tuitea esto
Puede que conozcan una dirección general, pero no conocerán los giros y vueltas.
13/18
tuitea esto
tuitea esto
tuitea esto
tuitea esto
tuitea esto
Cree y mantenga una fuente única de todos los términos y vocabulario específicos para un
proyecto.
tuitea esto
14/18
tuitea esto
tuitea esto
tuitea esto
Los equipos deben ser pequeños y estables, donde todos confíen y dependan unos de
otros.
tuitea esto
tuitea esto
tuitea esto
15/18
No adopte un método o técnica de desarrollo solo porque otras empresas lo estén
haciendo. Adopte lo que funcione para su equipo, en su contexto.
tuitea esto
tuitea esto
tuitea esto
Las pruebas que se ejecutan con cada compilación son mucho más efectivas que los planes
de prueba que se encuentran en un estante.
tuitea esto
'Nuff dijo.
tuitea esto
Introduzca los errores a propósito en una copia separada de la fuente para verificar que
las pruebas los detecten.
tuitea esto
16/18
Identificar y probar estados importantes del programa. Probar solo líneas de código no es
suficiente.
tuitea esto
Una vez que un evaluador humano encuentra un error, debería ser la última vez que un
evaluador humano encuentra ese error. Las pruebas automáticas deberían comprobarlo a
partir de ese momento.
tuitea esto
Una computadora ejecutará las mismas instrucciones, en el mismo orden, una y otra vez.
tuitea esto
Desarrolle soluciones que generen valor comercial para sus usuarios y deleítelos todos los
días.
tuitea esto
Firma tu trabajo
Los artesanos de una época anterior estaban orgullosos de firmar su trabajo. Tú también
deberías estarlo.
tuitea esto
tuitea esto
No habilites escoria
17/18
Porque también corres el riesgo de convertirte en uno.
tuitea esto
tuitea esto
18/18