AngularJS Good Practices

From Training Material
Jump to navigation Jump to search

THIS IS A DRAFT

This text may not be complete.


<slideshow style="nobleprog" headingmark="⌘" incmark="…" scaled="false" font="Trebuchet MS" >

title
AngularJS Good Practices
author
Lukasz Sokolowski (NobleProg Ltd)

</slideshow>

AngularJS Good Practices

AngularJS Good Practices Training Materials

Intro

Angular Bespoke Course Outline

(Proposition of potential agenda, can be adjusted or extended)

2 days training

Bespoke agenda

  • Avoiding major pitfalls of scaling an AngularJS app
  • Proper MVC directory structure
  • Writing Modules in a smarter way
    • Keeping the names consistent
    • Modularize the Header, Footer, Routes
  • Dependency injection and minifying the code
    • Global dependencies
  • Not-overusing Controllers
    • Syntax of 'controllerAs'
    • Using 'bindToController' in our Directives
    • Making 'ng-click' conditional
  • Factory vs Service
    • All providers are singletons
  • Utilizing browser extensions (Batarang, etc)
  • To many watchers and performance issues
  • Scoping
    • Write-only in the controllers
    • Read-only in the templates
    • Object in the scope instead of properties
    • Avoiding to shadow property of the parent '$scope'
    • Prototypical inheritance
    • Keeping scope uncluttered
    • How to talk with sibling objects
  • One-Time Binding
  • Not-manual testing
    • ngMock module
    • Protractor
      • e2e tests with Jasmine
      • '$digest' cycles
    • Karma
      • How to easly close the feedback loop
      • Run tests in parallel across different browsers
      • Real world usage scenarios with different devices
  • Not-using jQuery
    • Change the way of thinking
  • Proper deploying
    • Facade to interact with servers
      • Separation of server interaction and error handling from the model
    • Business logic in models
    • Configure providers before they are injected
    • Proper use of '$scope.$emit()' and '$scope.$broadcast'
    • Automating our workflow
      • yo, grunt, bower
  • Agnular 1 vs Angular 2
    • Differences and similarities
    • Three ways: typescript, pure js, dart
    • Good practices in Angular 2
    • Upgrading from 1