Después de haber trabajado en AngularJS durante más de 2 años, estos son algunos de mis puntos principales:
En un nivel alto / de arquitectura:
0.) Escribe tus pruebas ! Lo digo en serio. Detente ahora mismo. Ve a escribir tus pruebas unitarias. En Javascript, no tienes el compilador para agarrarte y decirte que hiciste algo mal. Y querrá arrancarse el cabello la próxima vez que su aplicación se rompa debido a una letra faltante. ¡Y cuanto más grande sea su aplicación, tener la comodidad de realizar cambios y refactorizaciones a gran escala sin preocuparse por la funcionalidad rota es increíble! ¡Y escribir sus pruebas unitarias es la única forma de llegar allí!
1.) No ponga demasiadas cosas en el alcance . El alcance es costoso, ya que es el que se somete a cheques sucios. Simplemente coloque exactamente lo que se mostrará en la interfaz de usuario en el ámbito y deje el resto como variables en el controlador, pero no en el ámbito.
2.) Como se mencionó en otra respuesta, ¡ los datos son la verdad ! Deje que los datos conduzcan la aplicación, y no de otra manera. Debería centrarse exclusivamente en obtener los datos en los lugares correctos. La lógica de control de ruta, los relojes y el enlace de datos deben conducir lo que es visible en la interfaz de usuario
- ¿Cuáles son los mejores trucos para optimizar su escritorio y su entorno de trabajo?
- ¿Cuáles son algunos buenos consejos de redes para una persona joven?
- Cómo evitar que las herramientas manuales se oxiden en un entorno marino
- ¿Cuáles son algunos consejos psicológicos exitosos dados por una persona exitosa?
- ¿Cuáles son algunos de los mejores trucos para asientos de aviones de pasajeros?
3.) Si necesita un widget de interfaz de usuario (por ejemplo, un selector de fecha, un autocompletado), piense en la directiva . Envuelva todos los componentes de terceros en directivas para una fácil reutilización, así como para que su aplicación sea modular. Poder escribir es mucho mejor que escribir y luego en JS, $ (‘# something’). Datepicker ()
4.) No manipules DOM en tus controladores , así como en tus servicios. Intenta restringir ese trabajo a las Directivas. Si está haciendo manipulación DOM en sus controladores, ¡DETÉNGASE! Estas haciendo algo mal
5.) Si necesita comunicarse entre controladores , existen básicamente dos opciones. Cree un servicio (que es singleton) y úselo para comunicarse. O dispare eventos en el osciloscopio y haga que el otro controlador vigile. No cree su propia nueva forma fuera de estos dos.
6.) Inyección de dependencia : Comprenderlo, amarlo, respirar y vivirlo. Esa debería ser la única forma en que solicita y trabaja con servicios o dependencias de cualquiera de sus códigos.
7.) Para directivas , intente aislar los ámbitos (Guía de directivas de AngularJS) para que pueda reutilizarlos sin preocupaciones. Aislar el alcance asegura que su directiva no dependa de algún método / variable particular en un alcance padre, y por lo tanto puede ser reutilizado. Pase lo que necesite como argumentos a la directiva. Use el enlace de datos para asegurarse de obtener el valor actualizado en lugar del valor en ese instante.
Pensamientos de bajo nivel / Gotchas / Consejos
1.) Aprende y ama los registros de tu consola. A veces, especialmente con los ciclos de resumen y el ciclo de vida angular, a veces es más fácil imprimir sus debugs en console.logs en lugar de agregar puntos de interrupción. ¡Es mas rapido!
2.) Obtenga Batarang, la extensión de Chrome. Esa es, con mucho, la mejor manera de entrar en las entrañas de AngularJS, y algunos de los detalles que proporciona (rendimiento, dependencias) harán que su vida sea súper simple y fácil.
3.) Comience a ejecutar sus pruebas unitarias en cada guardado. Hará el trabajo del compilador, y la próxima vez que rompa cualquier funcionalidad, puede solucionarlo con un simple Deshacer en su IDE
4.) Use la notación [] para enumerar sus dependencias. Es decir
angularApp.controller(['$scope', function($scope) ...
en lugar de
angularApp.controller(function($scope)...
Ambos funcionan de manera idéntica, excepto que el primero funciona incluso cuando minimiza / uglifica su código.
5.) angular.module('myApp')
usa un módulo existente llamado ‘myApp’, y arroja un error si no lo encuentra.
angular.module('myApp', [])
crea un nuevo módulo llamado ‘myApp’
La diferencia entre estos dos causa la mayoría de los dolores de cabeza al iniciar una nueva aplicación.
Esto es todo lo que puedo pensar en la parte superior de mi cabeza. ¡Espero que esto ayude y buena suerte!