Hay muchos aspectos de la calidad del código que vale la pena mejorar.
Legibilidad
- Decisiones de diseño de documentos y algoritmos. Si su código está bien escrito, generalmente es fácil averiguar qué hace una sola función. Es menos fácil entender qué hacen las 15 funciones como grupo, cómo interactúan, etc. Los comentarios de alto nivel son críticos, ya que descubrirá si alguna vez deja de trabajar en un proyecto y luego vuelve a hacerlo 6 meses después.
- Haga que alguien codifique su trabajo. Idealmente, la persona es un desarrollador que admiras, pero casi cualquier desarrollador lo hará. Si alguien no puede entender partes de su código, eso es una bandera roja.
- Revise las revisiones de su código. Las revisiones de códigos son como los árboles en un bosque: es fácil abordar un comentario a la vez sin notar las tendencias generales. De vez en cuando, revise sus últimas 5 o 50 revisiones de códigos y vea si hay patrones. Si siempre se le recuerda que haga X, comience a hacer X antes de solicitar una revisión del código.
- Revisar el código de otras personas. Al igual que con muchas otras cosas, sus propios problemas son más difíciles de detectar que los problemas de otras personas. Mirar el trabajo de otros te ayuda a estar mejor sintonizado con cuáles prácticas funcionan bien y cuáles no. Lo bueno es que no tiene que hacer revisiones oficiales de código, solo encuentre un proyecto en GitHub y comience a buscar su fuente.
- Use nombres informativos para variables, métodos, clases, etc. Por ejemplo, use List clients en lugar de List .
Diseño
- Decisiones de diseño de documentos. (Sí, me doy cuenta de esto la segunda vez que lo digo). Es una sensación terrible cuando no recuerdas por qué diseñaste algo de la manera en que lo hiciste y, por paranoia, tienes miedo de cambiar el diseño. para el mejor. Además, a medida que establece un registro de sus decisiones, ocasionalmente puede revisar sus elecciones y ver cuáles resultaron bien y cuáles no.
- Refactorizar regularmente. De vez en cuando, simplemente elige un trozo de código con el que no estés satisfecho e intenta hacerlo mejor.
- Probar diferentes enfoques. Algunas personas prefieren pensar en un problema y hacer un montón de diseño por adelantado, a otras les gusta sumergirse y refactorizar a medida que avanzan. La calidad de su diseño podría mejorar simplemente probando el enfoque que no utilice actualmente.
- Lee algunos de los libros de diseño seminal. Específicamente, Refactoring by Fowler y Design Patterns by Gamma, et al. Piense en los ejemplos específicos, pero piense aún más en los principios generales. Por ejemplo, uno de los principios de conducción en los patrones de diseño es “identificar algo que cambia, luego encapsularlo”. Esa es una gran heurística que es útil para casi cualquier tarea de diseño.
Corrección y mantenimiento
- ¿Cuáles son algunos buenos libros para mejorar las habilidades de comunicación?
- ¿Qué hábitos pueden ayudarte a desarrollar tu cerebro como estudiante universitario?
- Cómo conseguir la motivación para hacer pequeños objetivos y mejorar mi vida.
- ¿Qué es lo que quieres cambiar pero no puedes cambiarlo fácilmente?
- ¿Cuál es tu definición de autoconfianza en tus palabras?
- Escribir pruebas unitarias . En primer lugar, las pruebas revelan problemas de diseño. Si su código es difícil de probar, debe tratar de averiguar por qué, luego intente solucionar el problema. En segundo lugar, las pruebas te dan un arnés de seguridad para la experimentación, y la experimentación (y la práctica) son las que te hacen un mejor código. Es difícil jugar con diferentes diseños o diferentes implementaciones de algoritmos si tienes miedo de romper todo.
- Utilice herramientas de análisis de código, si es posible . Dependiendo del lenguaje de programación que esté utilizando, herramientas como Lint pueden analizar su código y señalar posibles errores o áreas problemáticas.
- Utilice un detector de copiar / pegar, como PMD . Cada vez que encuentre un bloque de código que se repita 3+ veces (o, idealmente, 2+ veces), intente eliminar la duplicación. Esta es una gran manera de practicar la refactorización.
- Desarrollar buenos hábitos de codificación. Con el tiempo, encontrará un conjunto de mejores prácticas que le gusten. Convierte esas prácticas en hábitos. Por ejemplo, pongo llaves alrededor de los cuerpos de las sentencias if y loops automáticamente, incluso si los cuerpos terminan siendo fragmentos de 1 línea. Otro ejemplo: cada vez que abro un archivo para leerlo, coloco el código en un bloque try / finally y cierro el archivo en la declaración finally. Cuando automáticamente haces lo correcto, tu código mejorará.
Rendimiento y escalabilidad
- No afine nada sin perfilarlo primero. El error de ajuste de rendimiento más común es pasar un día reescribiendo el código que consume una pequeña parte del tiempo total de ejecución. Si una solicitud web tarda 1 segundo en procesarse, no tiene sentido pasar un día tratando de acelerar una parte del flujo que toma 10 ms. Los ajustes de rendimiento a menudo hacen que el código sea más complejo, por lo que si realiza una sintonización prematura, la calidad del código se verá afectada.
- Lea historias sobre cómo otros resolvieron sus desafíos de escalamiento. http://highscalability.com es un buen recurso. Busca patrones. Por ejemplo, un patrón común es aislar diferentes partes de una arquitectura detrás de sus propias API, para que pueda escalar e implementar diferentes componentes de forma independiente. (Tenga en cuenta que esto recuerda al principio de patrones de diseño mencionado anteriormente).
Dos cosas finales para recordar: 1) La regla de las 10.000 horas no se trata de la práctica, sino de la práctica deliberada . Piensa en lo que estás haciendo, en lo que funciona y en lo que no. 2) Necesitas 10,000 horas para ser de clase mundial, pero solo necesitas una fracción de ese tiempo para llegar a ser muy bueno.