Part I
Whoami
Alexandru Albu
AngularJS Trainer @JSLeague
frontend developer @6yo
design: photoshop, illustrator
development: javascript. python, sql, mongo
devops: docker, circle-ci
and gaming and basketball
Overview
AngularJS from Intro to Advanced (I)
AngularJS from Intro to Advanced (I)
Part I
Part II
Part III
AngularJS from Intro to Advanced (I)
Agenda
10:30 - 10:45 Overview
10:45 - 11:30 Style guides
11:30 - 12:00 Naming
12:00 - 13:00 Architecture (I)
13:00 - 14:00 Lunch break
14:00 - 15:00 Architecture (II)
15:00 - 16:00 Patterns
16:00 - 16:45 Hello, AngularJS
16:45 - 17:00 Break
17:00 - 17:30 Modules
17:30 - 18:45 Routing (I)
Style guides
AngularJS from Intro to Advanced (I)
AngularJS from Intro to Advanced (I)
a set of standards or best practices to guide design, architecture and development for an application
AngularJS from Intro to Advanced (I)
Naming
AngularJS from Intro to Advanced (I)
AngularJS from Intro to Advanced (I)
general guidelines
always use a naming pattern
use entity or function in name
use LIFT
AngularJS from Intro to Advanced (I)
<name>.<type>.{js|html|scss|css}
app.js
camelCase
PascalCase
dash-case
component
service
model
filter
route
etc.
file names
AngularJS from Intro to Advanced (I)
<name><type>
camelCase
PascalCase
controller
service
model
filter
route
etc.
"class" names
Architecture
AngularJS from Intro to Advanced (I)
AngularJS from Intro to Advanced (I)
src
├── app.component.js
├── app.directive.js
├── app.filter.js
├── app.module.js
├── app.router.js
├── app.service.js
└── index.html
1st iteration - single monolithic files
AngularJS from Intro to Advanced (I)
src
├── app.module.js
├── index.html
├── components
│ ├── feature1.component.js
│ └── feature2.component.js
├── directives
│ └── directive1.directive.js
├── filters
│ └── filter1.filter.js
├── routes
│ ├── route1.route.js
│ └── route2.route.js
└── services
├── service1.service.js
└── service2.service.js
2nd iteration - grouping by type
AngularJS from Intro to Advanced (I)
src
├── app.module.js
├── index.html
├── feature1
│ ├── feature1.component.html
│ ├── feature1.component.js
│ ├── feature1.component.scss
│ ├── feature1.route.js
│ └── feature1.service.js
├── feature2
│ ├── feature2.component.html
│ ├── feature2.component.js
│ ├── feature2.component.scss
│ ├── feature2.route.js
│ └── feature2.service.js
└── shared
├── directives
│ └── directive1.directive.js
├── filters
│ └── filter1.filter.js
└── services
├── service1.service.js
└── service2.service.js
3rd iteration - grouping by component
AngularJS from Intro to Advanced (I)
src
├── app.module.js
├── index.html
├── core
│ ├── core.module.js
│ ├── directives
│ │ └── directive1.directive.js
│ ├── filters
│ │ └── filter1.filter.js
│ └── services
│ ├── service1.service.js
│ └── service2.service.js
├── module1
│ ├── feature1
│ │ ├── feature1.component.html
│ │ ├── feature1.component.js
│ │ ├── feature1.component.scss
│ │ ├── feature1.route.js
│ │ └── feature1.service.js
│ └── module1.module.js
└── module2
├── feature2
│ ├── feature2.component.html
│ ├── feature2.component.js
│ ├── feature2.component.scss
│ ├── feature2.route.js
│ └── feature2.service.js
└── module2.module.js
4th iteration - grouping by module
Patterns
AngularJS from Intro to Advanced
AngularJS from Intro to Advanced (I)
n tier architecture model
AngularJS from Intro to Advanced (I)
MVC
Hello, AngularJS
AngularJS from Intro to Advanced
AngularJS from Intro to Advanced (I)
package
manager
code
repository
dependencies
update
index.html
Modules
AngularJS from Intro to Advanced (I)
AngularJS from Intro to Advanced (I)
avoid naming collisions
AngularJS from Intro to Advanced (I)
getters and setters
AngularJS from Intro to Advanced (I)
dependencies
Routing (I)
AngularJS from Intro to Advanced (I)
AngularJS from Intro to Advanced (I)
why are we routing?
AngularJS from Intro to Advanced (I)
router
vs.
ui-router
AngularJS from Intro to Advanced (I)
location
vs.
state
AngularJS from Intro to Advanced (I)
url routing && params
AngularJS from Intro to Advanced (I)
last line of defense: otherwise
Q&A
AngularJS from Intro to Advanced (I)