SlideShare a Scribd company logo
AngularJS Architecture
Michael He
Good Architecture
• Between each other has good interface design.
• Very easy to understand the function.
• You can add more to make even bigger system.
• After having rule, I never worried about the compatibility.
• Visualisable, it’s easiest way for human to understand.
Actually, Most of the
situation
• What shall I put my code? (C)
• How to understand this module? (R)
• How can I modify this part? (U)
• How can I remove this function? (D)
How to do the architecture
Look at what we need
Look at what we have
Make the decision about what we can do.
Let check we have in the
AngularJS for Architect
1. Config (Blueprint)
Define everything for the system.
2. routing system (Map)
Root
Spot
Trip
Day
Help you find the place you want to go.
3. Page (Room)
Define how the room look like,

How many things in there (Template)
How the room functioning (Controller)
4. Directive (Component)
Define how the component look like (Template)
What’s the function of it. (Controller)
5. Service (Company or GOV)
Service Name Service Content
TV service Provide TV program
Internet service Provide Internet
Gas service Provide Gas
… …
6. Filter(Decorates)
Make the room(page) looks better, hide those ugly stuff.

View Helpers.
7. Event (Phone call)
Most useful way to communicate between Components,
without dependency.
Open Internet >
< OK, Done Sir
8. Model?
• In AngularJS there is no model.
• Model in ROR, just a class mapped data in
database.
• In front end side, model will be mapping the data
from JSON to object to a Class.
• I don’t like ngResource to mapping the API path
only, when you Get or Post data you won’t have a
callback to be able to process it.
In the Real Project
/trips
/new
ItinerarySpot List
Search Box
Routing
Page(Template+Controller)
Directive
Service
Itinerary Data Sharing
Spot Searching
Itinerary Saving
Filter
Message
Message
Recenter
Add Spot to Itinerary
Talk
ItinerarySpot List
Search Box
Page(Template+Controller)
Sharing Data Between them
• Send Message by event.
• Use Service, it’s Singleton so you need to clean
the data manually. (Tip: scope $destroy)
File Structure
• Principle: You can find your file very fast.
• /trips/new

/app/modules/trips/controllers/new.js.coffee
• Spot list panel

/app/modules/trips/directives/spot_list_panel.js.coffee
• Trip Manager (manager we say it used for data sharing)

/app/services/trip_manager.js.coffee
• UI-Router Config

/app/configs/routes.js.coffee
We are not using
• Angular modularization

(It’s good way to force developer to think about the module
independent. But it’s much more complicated many
situations. For small or middle project no need to use it.)
• require.js

(we use assets pipeline to put all file in to one, super
simple, no need to manage the complicated loading
dependency.)
• Pure Javascript

(We use coffeescript to avoid many javascript traps, also
much simpler and smaller.)
More?
Please go to http://blog.memoryforcer.com

More Related Content

PDF
AngularJS introduction
PPTX
Angular JS - Introduction
PDF
AngularJS - What is it & Why is it awesome ? (with demos)
PDF
AngularJS 101 - Everything you need to know to get started
PDF
Introduction of angular js
PPTX
The AngularJS way
PDF
Introduction to AngularJS
PDF
AngularJS application architecture
AngularJS introduction
Angular JS - Introduction
AngularJS - What is it & Why is it awesome ? (with demos)
AngularJS 101 - Everything you need to know to get started
Introduction of angular js
The AngularJS way
Introduction to AngularJS
AngularJS application architecture

What's hot (20)

PPTX
Angular js
PPTX
Introduction to Angularjs
PDF
Advanced Tips & Tricks for using Angular JS
PPTX
5 angularjs features
PPTX
Front end development with Angular JS
PPTX
AngularJS Best Practices
PPTX
Angular js
PPTX
Why angular js Framework
PPTX
Getting Started with Angular JS
PDF
AngularJS Basic Training
PPTX
Angular js 1.3 presentation for fed nov 2014
PPTX
Step by Step - AngularJS
PPTX
Angular js 1.3 basic tutorial
PPTX
Angular js
PPTX
AngularJS - Architecture decisions in a large project 
PPTX
Angular js PPT
PPTX
AngularJs (1.x) Presentation
PPTX
Angular JS
PPTX
Angular js for beginners
PDF
AngularJS: an introduction
Angular js
Introduction to Angularjs
Advanced Tips & Tricks for using Angular JS
5 angularjs features
Front end development with Angular JS
AngularJS Best Practices
Angular js
Why angular js Framework
Getting Started with Angular JS
AngularJS Basic Training
Angular js 1.3 presentation for fed nov 2014
Step by Step - AngularJS
Angular js 1.3 basic tutorial
Angular js
AngularJS - Architecture decisions in a large project 
Angular js PPT
AngularJs (1.x) Presentation
Angular JS
Angular js for beginners
AngularJS: an introduction
Ad

Similar to Angularjs architecture (20)

PPTX
Angular JS, A dive to concepts
PDF
AngularJS in Production (CTO Forum)
PPTX
SQL to NoSQL: Top 6 Questions
PPTX
European Collaboration Summit - SharePoint Framework Angular & Azure Functions
PDF
The future of web development write once, run everywhere with angular js an...
PPTX
The future of web development write once, run everywhere with angular.js and ...
PPT
5 Common Mistakes You are Making on your Website
PPT
Plan your Chunks! Win the Future with Information Architecture NOW
PDF
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
PPTX
Dapper: the microORM that will change your life
PDF
Riding the Edge with Ember.js
PPTX
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
PDF
MongoDB Basics
PPTX
Bootstrap for Beginners
PDF
Node.js
PDF
October 2014 - USG Rock Eagle - Drupal 101
PPTX
Graph Databases in the Microsoft Ecosystem
PPTX
React.js at Cortex
PPTX
Image Recognition for RAX Studio Citrix Automation
PDF
Intro to BackboneJS + Intermediate Javascript
Angular JS, A dive to concepts
AngularJS in Production (CTO Forum)
SQL to NoSQL: Top 6 Questions
European Collaboration Summit - SharePoint Framework Angular & Azure Functions
The future of web development write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular.js and ...
5 Common Mistakes You are Making on your Website
Plan your Chunks! Win the Future with Information Architecture NOW
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Dapper: the microORM that will change your life
Riding the Edge with Ember.js
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
MongoDB Basics
Bootstrap for Beginners
Node.js
October 2014 - USG Rock Eagle - Drupal 101
Graph Databases in the Microsoft Ecosystem
React.js at Cortex
Image Recognition for RAX Studio Citrix Automation
Intro to BackboneJS + Intermediate Javascript
Ad

Recently uploaded (20)

PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Modernizing your data center with Dell and AMD
PPTX
Big Data Technologies - Introduction.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
KodekX | Application Modernization Development
PDF
Approach and Philosophy of On baking technology
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
MYSQL Presentation for SQL database connectivity
The Rise and Fall of 3GPP – Time for a Sabbatical?
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Modernizing your data center with Dell and AMD
Big Data Technologies - Introduction.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Digital-Transformation-Roadmap-for-Companies.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Network Security Unit 5.pdf for BCA BBA.
NewMind AI Weekly Chronicles - August'25 Week I
Mobile App Security Testing_ A Comprehensive Guide.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Encapsulation_ Review paper, used for researhc scholars
KodekX | Application Modernization Development
Approach and Philosophy of On baking technology
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
MYSQL Presentation for SQL database connectivity

Angularjs architecture

  • 2. Good Architecture • Between each other has good interface design. • Very easy to understand the function. • You can add more to make even bigger system. • After having rule, I never worried about the compatibility. • Visualisable, it’s easiest way for human to understand.
  • 3. Actually, Most of the situation • What shall I put my code? (C) • How to understand this module? (R) • How can I modify this part? (U) • How can I remove this function? (D)
  • 4. How to do the architecture
  • 5. Look at what we need
  • 6. Look at what we have
  • 7. Make the decision about what we can do.
  • 8. Let check we have in the AngularJS for Architect
  • 9. 1. Config (Blueprint) Define everything for the system.
  • 10. 2. routing system (Map) Root Spot Trip Day Help you find the place you want to go.
  • 11. 3. Page (Room) Define how the room look like,
 How many things in there (Template) How the room functioning (Controller)
  • 12. 4. Directive (Component) Define how the component look like (Template) What’s the function of it. (Controller)
  • 13. 5. Service (Company or GOV) Service Name Service Content TV service Provide TV program Internet service Provide Internet Gas service Provide Gas … …
  • 14. 6. Filter(Decorates) Make the room(page) looks better, hide those ugly stuff.
 View Helpers.
  • 15. 7. Event (Phone call) Most useful way to communicate between Components, without dependency. Open Internet > < OK, Done Sir
  • 16. 8. Model? • In AngularJS there is no model. • Model in ROR, just a class mapped data in database. • In front end side, model will be mapping the data from JSON to object to a Class. • I don’t like ngResource to mapping the API path only, when you Get or Post data you won’t have a callback to be able to process it.
  • 17. In the Real Project
  • 18. /trips /new ItinerarySpot List Search Box Routing Page(Template+Controller) Directive Service Itinerary Data Sharing Spot Searching Itinerary Saving Filter Message Message Recenter Add Spot to Itinerary Talk
  • 19. ItinerarySpot List Search Box Page(Template+Controller) Sharing Data Between them • Send Message by event. • Use Service, it’s Singleton so you need to clean the data manually. (Tip: scope $destroy)
  • 20. File Structure • Principle: You can find your file very fast. • /trips/new
 /app/modules/trips/controllers/new.js.coffee • Spot list panel
 /app/modules/trips/directives/spot_list_panel.js.coffee • Trip Manager (manager we say it used for data sharing)
 /app/services/trip_manager.js.coffee • UI-Router Config
 /app/configs/routes.js.coffee
  • 21. We are not using • Angular modularization
 (It’s good way to force developer to think about the module independent. But it’s much more complicated many situations. For small or middle project no need to use it.) • require.js
 (we use assets pipeline to put all file in to one, super simple, no need to manage the complicated loading dependency.) • Pure Javascript
 (We use coffeescript to avoid many javascript traps, also much simpler and smaller.)
  • 22. More? Please go to http://blog.memoryforcer.com