He creado una aplicación angular desde cero sin seguir ninguna guía de diseño. ¿Cómo refactorizo ​​mi código para que siga las mejores prácticas?

Comenzaría por obtener un buen linter y asegurarme de que su sintaxis coincida con las buenas pautas de JavaScript.

Junto con eso, recomiendo encarecidamente asegurarse de que haya configurado las pruebas unitarias para su aplicación. Hay una buena razón por la que los creadores de angular empujan tanto, es prácticamente necesario para un buen diseño en angular.

De todos modos, una vez que tenga estos configurados, vea si puede determinar qué funcionalidad en su aplicación se usa más y menos. Simplemente hacer una suposición educada debería estar bien aquí, a menos que tenga herramientas que puedan ayudarlo a resolver esto.

Idealmente, obtendrá el máximo rendimiento de su dinero al apuntar a la funcionalidad más utilizada. Por otro lado, esto también aumenta sus posibilidades de afectar negativamente más de su aplicación si comete un error. Por esta razón, podría ser mejor comenzar con algunas de las funcionalidades menos utilizadas hasta que se familiarice con ellas.

Una vez que haya decidido una estrategia, utilizando un enfoque tdd, vea si puede escribir una función para reemplazar una función existente o parte de la funcionalidad de una función existente. Probablemente comenzaría con los servicios, ya que serán los más fáciles de escribir para las pruebas unitarias, comenzando. Es posible que desee ver si puede comenzar a romper algunas funciones de las directivas en bibliotecas de servicios si se encuentra escribiendo código repetitivo en esas directivas.

No intente reescribir toda la aplicación en un día, solo concéntrese en agregar algunas funciones más probadas por unidad cada día. Esto no solo lo ayudará a aprender a ser un mejor desarrollador angular, sino que también lo ayudará a mejorar sus prácticas generales de codificación, ya que descubrirá que las pruebas unitarias son mucho más fáciles cuando escribe un código modular adecuado.

Te advertiré Las pruebas unitarias pueden volverse un poco adictivas para algunas personas, y es posible hacer demasiadas pruebas unitarias. Por lo general, es mejor asegurarse de que las piezas de código más críticas tengan pruebas unitarias y que esas pruebas se centren en la funcionalidad y no en la implementación (por ejemplo, no haga una prueba para verificar que está mostrando un título específico, o cualquier cosa que sea es probable que cambie sin romper realmente la aplicación). Básicamente, desea que sus pruebas unitarias sean útiles y no se rompan cada vez que realice incluso pequeños cambios que realmente no importan. Con práctica, encontrarás un medio feliz.

Esto es lo mejor
https://github.com/johnpapa/angu