SlideShare a Scribd company logo
ONE FRAMEWORK TO RULE
THEM ALL
SIRAR SALIH
SOFTWARE ENGINEER
About me
C++
2D Games
Algorithms
C#
.NET
Desktop apps
Web apps
HTML 5
JavaScript
Web apps
About me
HTML enhanced for web apps!
One Framework to Rule Them All
GET (once)
POST (later)
From wikipedia
• Directives
– Powerful, Angular-only feature
– Simplify DOM manipulation by reusable custom functionality
• Data binding
– Models
• Controllers
– Behavior
– Avoid DOM manipulation
• Form validation
– Easy client-side validation
• Localization
– Filter directives
• Testability
– Designed to be testable
– Easy dependency injection
• +++
«With great power, comes great responsibility.» – Uncle Ben
• Module
– Sub-modules
• Controller
• Directive
• Service
– Data
• Service
– Data
Demo time!
Best Practices
Naming Conventions
• File naming
– mainCtrl.js
– mainSvc.js
– mainDirective.js
• JavaScript
– mainController
– mainService
– mainDirective
• HTML
– <main-directive></main-directive>
Design Patterns
• Feature Pattern
– Break into feature folders
Design Patterns
• Enterprise Pattern
– Break into component folders
Design Patterns
• App Pattern
– Break into module folders
TDD All the Way
«With great power, comes great responsibility.» – Uncle Ben
• Jasmine
«With great power, comes great responsibility.» – Uncle Ben
• Jasmine
«With great power, comes great responsibility.» – Uncle Ben
• Jasmine
«With great power, comes great responsibility.» – Uncle Ben
• Karma test runner
«With great power, comes great responsibility.» – Uncle Ben
• Karma test runner
«With great power, comes great responsibility.» – Uncle Ben
• Karma coverage (Istanbul plugin)
«With great power, comes great responsibility.» – Uncle Ben
• Karma coverage (Istanbul plugin)
Test Automation
«With great power, comes great responsibility.» – Uncle Ben
«With great power, comes great responsibility.» – Uncle Ben
• Grunt
«With great power, comes great responsibility.» – Uncle Ben
• Karma TeamCity (TeamCity plugin)
«With great power, comes great responsibility.» – Uncle Ben
• Karma TeamCity (TeamCity plugin)
«With great power, comes great responsibility.» – Uncle Ben
• Karma TeamCity (TeamCity plugin)
«With great power, comes great responsibility.» – Uncle Ben
• Karma coverage (Istanbul plugin)
Thank you  / Questions?
Blog: http://sirars.com/
• sirar.salih@itera.no / sirars@gmail.com
• @SirarSalih
One Framework to Rule Them All

More Related Content

PPTX
Test Driven Development with AngularJS
KEY
In-house web automation?
PPTX
Case sharing - tixCraft on AWS re:Invent 2015 Recap | 台灣
PPTX
When Two Forces Meet
PDF
Scalability vs. Performance
PPTX
Making maven and grunt play nice
KEY
Freelancing and side-projects on Rails
KEY
Lessons from Branch's launch
Test Driven Development with AngularJS
In-house web automation?
Case sharing - tixCraft on AWS re:Invent 2015 Recap | 台灣
When Two Forces Meet
Scalability vs. Performance
Making maven and grunt play nice
Freelancing and side-projects on Rails
Lessons from Branch's launch

What's hot (6)

PPTX
A Symphony of Lambdas with AWS Step Functions
PDF
Rubyslava beyond the_monolith
PPTX
Microservices Manchester: Lightning Talk- Actor Based Concurrency by Amy O'Leary
PDF
Reactive All the Way Down the Stack
KEY
Scaling small apps
PDF
Creating Hyper Performant Web Apps with React
A Symphony of Lambdas with AWS Step Functions
Rubyslava beyond the_monolith
Microservices Manchester: Lightning Talk- Actor Based Concurrency by Amy O'Leary
Reactive All the Way Down the Stack
Scaling small apps
Creating Hyper Performant Web Apps with React
Ad

Similar to One Framework to Rule Them All (20)

PPTX
Test Driving AngularJS
PPT
performance.ppt
PDF
Storage Systems For Scalable systems
KEY
Windycityrails page performance
KEY
33rd degree
ODP
Cvcc performance tuning
PPTX
Beyond DevOps - How Netflix Bridges the Gap
PDF
Link prefetching presentation
PDF
Escaping Test Hell - ACCU 2014
KEY
Wwcode2
PPTX
Software devops engineer in test (SDET)
PDF
Benchmarking (RICON 2014)
PDF
[QCon.ai 2019] People You May Know: Fast Recommendations Over Massive Data
PPTX
My Little Webap - DevOpsSec is Magic
PDF
From Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
PDF
Getting your mobile test automation process in place - using Cucumber and Cal...
PDF
DevOps, Common use cases, Architectures, Best Practices
PPTX
Scaling Your Architecture for the Long Term
PDF
Machine learning systems for engineers
PDF
Art of Using Xen at Scale
Test Driving AngularJS
performance.ppt
Storage Systems For Scalable systems
Windycityrails page performance
33rd degree
Cvcc performance tuning
Beyond DevOps - How Netflix Bridges the Gap
Link prefetching presentation
Escaping Test Hell - ACCU 2014
Wwcode2
Software devops engineer in test (SDET)
Benchmarking (RICON 2014)
[QCon.ai 2019] People You May Know: Fast Recommendations Over Massive Data
My Little Webap - DevOpsSec is Magic
From Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
Getting your mobile test automation process in place - using Cucumber and Cal...
DevOps, Common use cases, Architectures, Best Practices
Scaling Your Architecture for the Long Term
Machine learning systems for engineers
Art of Using Xen at Scale
Ad

More from Sirar Salih (7)

PPTX
Azure Table Storage: The Good, the Bad, the Ugly (15 min. lightning talk)
PPTX
Azure Table Storage: The Good, the Bad, the Ugly (full talk)
PPTX
Azure Table Storage: The Good, the Bad, the Ugly (10 min. lightning talk)
PPTX
Angular 2 + TypeScript = true. Let's Play!
PPTX
Introduction to WPF and MVVM
PPTX
Clean Code
PPTX
Angularfying Your ASP.NET MVC APP
Azure Table Storage: The Good, the Bad, the Ugly (15 min. lightning talk)
Azure Table Storage: The Good, the Bad, the Ugly (full talk)
Azure Table Storage: The Good, the Bad, the Ugly (10 min. lightning talk)
Angular 2 + TypeScript = true. Let's Play!
Introduction to WPF and MVVM
Clean Code
Angularfying Your ASP.NET MVC APP

Recently uploaded (20)

PPTX
OMC Textile Division Presentation 2021.pptx
PDF
August Patch Tuesday
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Approach and Philosophy of On baking technology
PPTX
Machine Learning_overview_presentation.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
TLE Review Electricity (Electricity).pptx
PDF
Encapsulation theory and applications.pdf
PDF
Mushroom cultivation and it's methods.pdf
PDF
Getting Started with Data Integration: FME Form 101
PPTX
A Presentation on Artificial Intelligence
PPTX
cloud_computing_Infrastucture_as_cloud_p
PPTX
1. Introduction to Computer Programming.pptx
PDF
Heart disease approach using modified random forest and particle swarm optimi...
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
A comparative study of natural language inference in Swahili using monolingua...
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
OMC Textile Division Presentation 2021.pptx
August Patch Tuesday
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Approach and Philosophy of On baking technology
Machine Learning_overview_presentation.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
TLE Review Electricity (Electricity).pptx
Encapsulation theory and applications.pdf
Mushroom cultivation and it's methods.pdf
Getting Started with Data Integration: FME Form 101
A Presentation on Artificial Intelligence
cloud_computing_Infrastucture_as_cloud_p
1. Introduction to Computer Programming.pptx
Heart disease approach using modified random forest and particle swarm optimi...
Unlocking AI with Model Context Protocol (MCP)
A comparative study of natural language inference in Swahili using monolingua...
SOPHOS-XG Firewall Administrator PPT.pptx

One Framework to Rule Them All