Arquitectura en aplicaciones
Angular y buenas practicas.
• Germán Küber
• Software Architect & Developer
NET-Baires
http://germankuber.com.ar
@germankuber
>_
Nomenclatura
Servicios
Selector de componentes
Directivas
Nombre de componentes
Nombre de componentes
Pipelines
Organización de Features y
Módulos
K
I
S
S
eep
t
imple
tupid
Do structure the app such that you can
Locate quickly, Identify the code at a glance ,
keep the Flattest structure you can, and Try
to be DRY
Angular Style Guide
https://angular.io/guide/styleguide
LIFT
Estructura CHATA
Shared feature module
• Crear un ShearedModule
• Crear
• Componentes
• Directivas
• Pipelines
• Solo declarar servicios sin estado
Módulos
Componentes
Componentes
• Extraer estilos y template en .css y .html
• Utilizar @Input() y @Ouput en la misma línea
@Input @Output misma línea
Evitar alias en los @Input()
Orden interno del componente
export class ToastComponent implements OnInit {
message: string;
private toastElement: string;
activate(message ) {}
ngOnInit() {
}
private hide() {
}
}
Delegar lógica de componentes
complejos a servicios
Evitar prefijos On en @output()
Comunicación entre
componentes
Servicios Observable
• Patrón Observer
• Servicio expone un observable
• Los componentes saben a que tipo de dato se suscriben
• Acoplamiento entre componentes y servicios
• Se utiliza subject/observable
De suscribirse de los observables
•ngOnDestroy
•Decorador AutoUnsuscribe
https://github.com/NetanelBasal/ngx-auto-unsubscribe
Usar decorador AutoUnsubscribe
Servicios
Servicios
•Responsabilidad única
•Compartir datos y funcionalidad
•Utilizar decorador @Injectable
•Utilizar servicios para llamadas de infraestructura
Life Hooks
Implementar Interfaces
Otros
Remplazar funciones con Pipes
{{ addTax(product.price) | currency }}
{{ product.price | addtax | currency }}
HTTP Intercerptors
Centralizar lo referente a CORS, cookies, credenciales
NO usar any
GRACIAS!!!
• Germán Küber
• Software Architect & Developer
Net-Baires
http://germankuber.com.ar
@germankuber

Arquitectura en aplicaciones Angular y buenas practicas.

Notas del editor

  • #12 lowerCamelCase UpperCamelCase 
  • #18 Do create an NgModule for all distinct features in an application; for example, a Heroes feature. Do place the feature module in the same named folder as the feature area; for example, in app/heroes. Do name the feature module file reflecting the name of the feature area and folder; for example, app/heroes/heroes.module.ts. Do name the feature module symbol reflecting the name of the feature area, folder, and file; for example, app/heroes/heroes.module.ts defines HeroesModule.
  • #37 Función no existe cache de pipeline
  • #40 El componente solo puede conocer las capas del sistema en el que vive Esto permite agregar caches,. Proxys. Balanceadores de carga Entiende que los servidores estan en constante cambio Entiende que la red no es segura por lo que limita los contextos. Puede administrarse mejor dado que cada persona puede administrar su propio contexto. Escalabilidad Manajabilidad Cliente > proovedor > empresa > base de datos