Estoy a punto de comenzar formalmente a aprender programación desde cero y quiero asegurarme de no adquirir malos hábitos. ¿Cuáles son algunas de las mejores prácticas al escribir código? ¿Hay algún buen libro de visita para este propósito?

1. El espacio en blanco es gratis, úsalo.

En casi * todos los lenguajes de programación, los espacios en blanco se filtran. Úsalo generosamente para que tu código sea fácil de leer. Literalmente no gana nada al agrupar todo su código en una sola línea (a menos que esté minimizando JS o algo … pero eso no es algo de lo que deba preocuparse como principiante).

Esta:
para (int i = 0; i <10; i ++) {
// ¡Haz la cosa!
}

Es mucho mejor que:
para (int i = 0; i <10; i ++) {/ * hacer la cosa * /}

en la mayoría de los casos.
* Digo casi porque en Python, se utiliza la sangría de espacios en blanco en lugar de los armarios de refuerzo; ya que Python * requiere * espacio en blanco para ser utilizado, este punto es un tanto discutible, pero vale la pena señalarlo.

2. Comenta tu código

Hay pocas cosas más frustrantes en la programación que escribir algo brillante y volver a ello 6 meses después y olvidarse de qué diablos estabas pensando y tener que perder una hora intentando hacer una ingeniería inversa. O trabajando en un proyecto y olvidando para qué era una variable en particular, o por qué usó un algoritmo sobre otro, etc.

Todos los idiomas principales tienen la capacidad de comentar código. La sintaxis varía, pero la función es la misma: los comentarios son ignorados por el compilador / intérprete, por lo que puede usarlos generosamente.

Aprender qué comentar requiere experiencia, pero para empezar, debes acostumbrarte a comentar cada bit de código no trivial.

es decir. esto es innecesario

// asigna “barra” a $ foo
$ foo = “barra”;

Esto podría ser necesario, dependiendo de su programa.

// Esto se usará para establecer la configuración predeterminada para $ foo,
// que se usa para el control de flujo más adelante
$ foo = “barra”;

Los bucles de control (for, while, foreach, do, etc) deben SIEMPRE ser comentados en alguna parte; es una buena idea recordar al futuro por qué está utilizando el bloque y proporcionar un resumen básico de lo que está sucediendo dentro del bloque. Comente las líneas individuales en el bloque si son críticas, requirió pensar un poco, o si hay algo que no quiera tener que volver a pensar más tarde.

Las funciones casi siempre deben ser comentadas (los accesores / mutadores triviales de una línea pueden no necesitar muchos comentarios sobre cómo funcionan, pero comentarlos para explicar qué es ese campo FOR no perjudicará a nadie). Las clases siempre deben ser comentadas. Echa un vistazo a la sintaxis “JavaDoc” para una buena base de formato para empezar.

3. Luchar por la capacidad de ejecución iterativa

Lo ideal es que, al codificar su proyecto, intente escribir un poco de código hasta que pueda ejecutarlo sin errores, luego agregue una nueva función … haga que se ejecute sin errores … luego agregue una nueva función … ejecute sin errores, etc. .

Esto logra dos cosas: se depura proactivamente antes de que los errores se vuelvan exponencialmente más difíciles y promueve un buen ciclo de desarrollo de producción de código estable antes de la re-factorización.

Bonificación: Pruebas automatizadas

Dependiendo del idioma en el que te estés metiendo, mira si tiene pruebas de unidad y aprende a usarlas temprano. Ojalá hubiera entrado en ellos antes. Las pruebas realmente hacen que su código sea MEJOR (lo obliga a escribir código más estricto, más atomizado) y más fácil de depurar (con una buena cobertura de prueba, cuando re-factorice, los efectos de su refactorización serán evidentes si se rompe alguna prueba y le ayudará reclamas estabilidad

Bonus: Control de versiones

Elige tu veneno. Hay SVN, Perforce, Git, y otros. Me gusta Git, personalmente. Escriba su código hasta que la construcción sea estable, luego comprométalo para bloquearlo. Si se equivoca, puede retroceder hasta el último punto estable. Es un buen hábito comenzar temprano para que cuando trabaje en proyectos de colaboración ya lo esté haciendo.

Lo extraño es que realmente QUIERES cometer muchos errores. Esa es la única manera de aprender. El único hábito que se debe evitar (que mitigará casi cualquier otro mal comportamiento que pueda encontrar) no es probar / compilar / ejecutar su código constantemente, o después de hacerlo.

Si está haciendo todo bien, pasará mucho tiempo depurando y tratando de eliminar errores en su código. Puede ser frustrante como el infierno, pero acelerará su crecimiento y garantizará una buena sintaxis / comprensión de lo que hace todo y cómo está todo relacionado. Se siente increíble cuando arreglas un error molesto después de pasar 1 o 2 horas (¡o más!) Tratando de encontrar las malditas cosas.

Por último, hacerlo todos los días. Usted no puede cram o media programación / “codificación”. Es un lenguaje y una forma completamente diferentes de hacer las cosas, y necesitas mucha exposición repetida para sincronizarte. Trate de estar siempre pensando en cosas nuevas que PUEDE construir o en lo que desea hacer. Los tutoriales y todos son excelentes para aprender, pero te sentirás desilusionado cuando llegue el momento de pasar a material más avanzado y menos alimentado con una cuchara.

Aquí hay un ejemplo. Solía ​​jugar Pokémon en mi Mac y usaba mucho los códigos de trucos de un archivo de texto que copié. El problema era que la lista daba un código para poner delante de todos los demás códigos, por lo que tenía que hacer esto manualmente cada vez que quería usar un código. Así que recibí ayuda en StackOverflow para leer el archivo de texto en Python y adjuntar el código maestro delante de cada otro código y escribirlo en un nuevo archivo de texto. Ahora solo puedo copiar el truco y terminar con eso.

¡Espero que esto ayude!

El mejor libro que puedo pensar sobre lo que quieres es este:

Código de limpieza:
http://www.amazon.com/gp/aw/d/01…

Otro es el Código Completo:
http://www.amazon.com/gp/aw/d/07

Ambos te enseñarán cómo escribir códigos de alta calidad, pero ten en cuenta que lo mejor que puedes hacer es escribir muchos códigos para comprender por qué sus consejos son tan buenos.

Buena suerte.

Conozca los patrones de diseño, como MVC o MVVM, y siga las convenciones oficiales, como el uso de la funda camel Título o superior en C # para los métodos y la funda camel inferior para los métodos en Java.
Siempre sea descriptivo al nombrar variables y métodos o clase.
Dale solo una tarea a un método o una clase y apégate a ella.

Elige cualquier buen libro, te enseñarán sobre el código limpio de todos modos. Si necesita ver un libro, consulte la etiqueta wiki para la etiqueta particular en stackoverflow como esta: & # 39; android & # 39; etiqueta wiki