SlideShare a Scribd company logo
1 of 25
Download to read offline
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure.
Eric Bishard
Twitter:
LinkedIn: linkedin.com/in/
Front End UI/Component Developer, UX Student for life
1
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure.
Front-End Architecture:
Angular 5, CLI, Ngrx,
What we’ll Cover:
• What to focus on when Getting Started
• Using the CLI
• Testing and Linting in CLI
• Services and Observables
• Ngrx Store
• Example project w/ Redux
Agenda
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 3
What I mean when I say Elevate?
Taking it to the next level
• Learn the fundamentals and revisit often
• Understand and when to apply them
• Become an advocate and implement
• Attend and Present at meetups
• Keep Angular up to date and understand the changes
• Continue advancing your skills constantly
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 4
Write Maintainable and Documented code
Bringing the “Bus Factor” Down
• Requirements and tests should drive our development
• Use patterns rather than obscure coding techniques
• Don’t silo yourself and build in isolation from your team
• If something feels complex break it apart
• Can a new hire get right to work?
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 5
Build Smart From the Beginning
Building and test UI in isolation w/mock data
• Understand component composition
• Use services with mock data for offline development
• Understand requirements for inputs and outputs
• Work out functionality before finalizing style
• Build mockups or at least wireframes using research
• Don’t build reusable components in place
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 6
Unlike Angular 1.x, it’s no more MV★
It’s components all the way down
• Use one–way-data-flow avoid two way binding
• Use Reactive Forms not Template Driven Forms
• Avoid deeply nested components
• Put logic in the right place
• Watch for dependency overload and apply single responsibility
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 7
Use The CLI
And save time & money
• Generate a new project with (Sass & Routing)
• Use instead if you are in an existing directory
• Generate a module, comp, class, service, pipe, directive or enum
• Test frameworks are in place with and
• Develop linting rules and use them with
• Experiment with or
• Build and deploy using development vs production
• Eject your application if needed
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 8
Use The CLI
And save time & money
• By running `ng generate MyComponent` the CLI wires your
component to the module
• These commands save a lot of time
• You can do things like omit the spec file with `--spec=false`
• You can ensure a component is not created inside a directory btu
instead created as a flat set of files with --flat
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 9
Linting in the CLI
Configurable out-of-the-box
• Allows configuration of rules and formatters
• Configuration through the file in root
• Checks TS for code readability, maintainability and functionality
• Enforce team standards with easy opt-in and opt-out rules
palantir.github.io
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 10
Examples of Lint Warnings
On a recently completed pipe
1. If Pipe decorator used, should implement interface
2. Implement for method
3. Expected nospace before colon in call-signature
4. Identifier 'limit' is never reassigned; use instead of
5. Type trivially inferred from boolean literal, remove annotation
6. Forbidden keyword, use or instead
7. If statements must be braced
8. should be
9. Import is blacklisted, import a submodule instead
10. Declaration of instance field after declaration of instance method.
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 11
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 12
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 13
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 14
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 15
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 16
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 17
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 18
Ngrx Store
Principals & Core Concepts
• Single Immutable State Tree (POJO)
• Predictable & Maintainable
• Complemented by TDD
• Time Travel Debugging
• One way data flow
• Reliable updates to state
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 19
Ngrx Store
Principals & Core Concepts
• Derive properties from state
• Dispatch actions to change state
• Immutable operations to update state
*Think: array.map()
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 20
Ngrx Store
Principals & Core Concepts
• We dispatch actions
• Trigger side effects
• Reducers update and return state
• Reducers do not mutate state outside of it's function
• Reducers are pure and reliable functions
*Think: sum(a,b)
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 21
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 22
x
In short:
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 23
x
What it solves:
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure.
>npm install / yarn install
>npm start / yarn start
Simple Redux App in TypeScript
24
© Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 25
Links for this talk:
Sample App (TypeScript Implementation of Redux)
Redacted for public slide deck
Intro to Observables (rxjs, MDN)
codepen.io/httpJunkie/pen/RjVMzY
Resources
UltimateAngular.com, Pluralsight.com, TSLint, Angular CLI, Ngrx Store &
Effects, State Management with Ngrx, Reactivex.io, Ngrx Store

More Related Content

Similar to Elevate Your Angular Development

GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsGraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsOracle Developers
 
Return material authorization advance replacement programs apr 27, suite wo...
Return material authorization   advance replacement programs apr 27, suite wo...Return material authorization   advance replacement programs apr 27, suite wo...
Return material authorization advance replacement programs apr 27, suite wo...Bala Ramachandran
 
Contratos Inteligentes: passo-a-passo para criação
Contratos Inteligentes: passo-a-passo para criaçãoContratos Inteligentes: passo-a-passo para criação
Contratos Inteligentes: passo-a-passo para criaçãoFernando Galdino
 
Cranking It Up - SuiteWorld 2017
Cranking It Up  - SuiteWorld 2017Cranking It Up  - SuiteWorld 2017
Cranking It Up - SuiteWorld 2017Diego Cardozo
 
Oracle forms to oci executive overview for customer
Oracle forms to oci   executive overview  for customerOracle forms to oci   executive overview  for customer
Oracle forms to oci executive overview for customerSamy El Sherif, PMP, OUM.
 
Oracle Netsuite - How Cloud Software Drives Innovation and Growth
Oracle Netsuite - How Cloud Software Drives Innovation and GrowthOracle Netsuite - How Cloud Software Drives Innovation and Growth
Oracle Netsuite - How Cloud Software Drives Innovation and GrowthSmith & Williamson
 
BEM and Component Development
BEM and Component DevelopmentBEM and Component Development
BEM and Component DevelopmentEric S Bishard
 
True SaaS - One Platform
True SaaS - One PlatformTrue SaaS - One Platform
True SaaS - One PlatformJan Matyssek
 
Oracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudOracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudEd Burns
 
Omaha rug customer 2 cloud customer facing hcm ppt aug 2014
Omaha rug customer 2 cloud customer facing hcm ppt aug 2014Omaha rug customer 2 cloud customer facing hcm ppt aug 2014
Omaha rug customer 2 cloud customer facing hcm ppt aug 2014tecrecruiter
 
Crafting Your Oracle License, Contract and Vendor Management Strategy
Crafting Your Oracle License, Contract and Vendor Management StrategyCrafting Your Oracle License, Contract and Vendor Management Strategy
Crafting Your Oracle License, Contract and Vendor Management StrategyFlexera
 
E-Business Suite on Oracle Cloud
E-Business Suite on Oracle CloudE-Business Suite on Oracle Cloud
E-Business Suite on Oracle CloudKeith Kiattipong
 
Oracle Customer Engagement in a Digital World
Oracle Customer Engagement in a Digital WorldOracle Customer Engagement in a Digital World
Oracle Customer Engagement in a Digital WorldMyles Freedman
 
UKOUG Journey To The Cloud - March 2017
UKOUG Journey To The Cloud - March 2017UKOUG Journey To The Cloud - March 2017
UKOUG Journey To The Cloud - March 2017Phil Wilkins
 
Big data meetup_10_9_2013
Big data meetup_10_9_2013Big data meetup_10_9_2013
Big data meetup_10_9_2013Tanya Cashorali
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppPaulo Alberto Simoes ∴
 
Oracle Database Appliance, ODA, X7-2 portfolio.
Oracle Database Appliance, ODA, X7-2 portfolio.Oracle Database Appliance, ODA, X7-2 portfolio.
Oracle Database Appliance, ODA, X7-2 portfolio.Daryll Whyte
 
SplunkLive! Zurich 2017 - Data Obfuscation in Splunk Enterprise
SplunkLive! Zurich 2017 - Data Obfuscation in Splunk EnterpriseSplunkLive! Zurich 2017 - Data Obfuscation in Splunk Enterprise
SplunkLive! Zurich 2017 - Data Obfuscation in Splunk EnterpriseSplunk
 
Strategies for on premise to Google Cloud migration - Mateusz Pytel, GetInData
Strategies for on premise to Google Cloud migration - Mateusz Pytel, GetInDataStrategies for on premise to Google Cloud migration - Mateusz Pytel, GetInData
Strategies for on premise to Google Cloud migration - Mateusz Pytel, GetInDataGetInData
 
Insights into Real-world Data Management Challenges
Insights into Real-world Data Management ChallengesInsights into Real-world Data Management Challenges
Insights into Real-world Data Management ChallengesDataWorks Summit
 

Similar to Elevate Your Angular Development (20)

GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish AbramsGraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
GraphPipe - Blazingly Fast Machine Learning Inference by Vish Abrams
 
Return material authorization advance replacement programs apr 27, suite wo...
Return material authorization   advance replacement programs apr 27, suite wo...Return material authorization   advance replacement programs apr 27, suite wo...
Return material authorization advance replacement programs apr 27, suite wo...
 
Contratos Inteligentes: passo-a-passo para criação
Contratos Inteligentes: passo-a-passo para criaçãoContratos Inteligentes: passo-a-passo para criação
Contratos Inteligentes: passo-a-passo para criação
 
Cranking It Up - SuiteWorld 2017
Cranking It Up  - SuiteWorld 2017Cranking It Up  - SuiteWorld 2017
Cranking It Up - SuiteWorld 2017
 
Oracle forms to oci executive overview for customer
Oracle forms to oci   executive overview  for customerOracle forms to oci   executive overview  for customer
Oracle forms to oci executive overview for customer
 
Oracle Netsuite - How Cloud Software Drives Innovation and Growth
Oracle Netsuite - How Cloud Software Drives Innovation and GrowthOracle Netsuite - How Cloud Software Drives Innovation and Growth
Oracle Netsuite - How Cloud Software Drives Innovation and Growth
 
BEM and Component Development
BEM and Component DevelopmentBEM and Component Development
BEM and Component Development
 
True SaaS - One Platform
True SaaS - One PlatformTrue SaaS - One Platform
True SaaS - One Platform
 
Oracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the CloudOracle Code Online: Building a Serverless State Service for the Cloud
Oracle Code Online: Building a Serverless State Service for the Cloud
 
Omaha rug customer 2 cloud customer facing hcm ppt aug 2014
Omaha rug customer 2 cloud customer facing hcm ppt aug 2014Omaha rug customer 2 cloud customer facing hcm ppt aug 2014
Omaha rug customer 2 cloud customer facing hcm ppt aug 2014
 
Crafting Your Oracle License, Contract and Vendor Management Strategy
Crafting Your Oracle License, Contract and Vendor Management StrategyCrafting Your Oracle License, Contract and Vendor Management Strategy
Crafting Your Oracle License, Contract and Vendor Management Strategy
 
E-Business Suite on Oracle Cloud
E-Business Suite on Oracle CloudE-Business Suite on Oracle Cloud
E-Business Suite on Oracle Cloud
 
Oracle Customer Engagement in a Digital World
Oracle Customer Engagement in a Digital WorldOracle Customer Engagement in a Digital World
Oracle Customer Engagement in a Digital World
 
UKOUG Journey To The Cloud - March 2017
UKOUG Journey To The Cloud - March 2017UKOUG Journey To The Cloud - March 2017
UKOUG Journey To The Cloud - March 2017
 
Big data meetup_10_9_2013
Big data meetup_10_9_2013Big data meetup_10_9_2013
Big data meetup_10_9_2013
 
Oracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native AppOracle Modern AppDev Approach to Cloud & Container Native App
Oracle Modern AppDev Approach to Cloud & Container Native App
 
Oracle Database Appliance, ODA, X7-2 portfolio.
Oracle Database Appliance, ODA, X7-2 portfolio.Oracle Database Appliance, ODA, X7-2 portfolio.
Oracle Database Appliance, ODA, X7-2 portfolio.
 
SplunkLive! Zurich 2017 - Data Obfuscation in Splunk Enterprise
SplunkLive! Zurich 2017 - Data Obfuscation in Splunk EnterpriseSplunkLive! Zurich 2017 - Data Obfuscation in Splunk Enterprise
SplunkLive! Zurich 2017 - Data Obfuscation in Splunk Enterprise
 
Strategies for on premise to Google Cloud migration - Mateusz Pytel, GetInData
Strategies for on premise to Google Cloud migration - Mateusz Pytel, GetInDataStrategies for on premise to Google Cloud migration - Mateusz Pytel, GetInData
Strategies for on premise to Google Cloud migration - Mateusz Pytel, GetInData
 
Insights into Real-world Data Management Challenges
Insights into Real-world Data Management ChallengesInsights into Real-world Data Management Challenges
Insights into Real-world Data Management Challenges
 

Recently uploaded

Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.soniya singh
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.soniya singh
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...SUHANI PANDEY
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtrahman018755
 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...SUHANI PANDEY
 
Al Barsha Night Partner +0567686026 Call Girls Dubai
Al Barsha Night Partner +0567686026 Call Girls  DubaiAl Barsha Night Partner +0567686026 Call Girls  Dubai
Al Barsha Night Partner +0567686026 Call Girls DubaiEscorts Call Girls
 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...SUHANI PANDEY
 
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...SUHANI PANDEY
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Servicegwenoracqe6
 
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...SUHANI PANDEY
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLimonikaupta
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.soniya singh
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableSeo
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445ruhi
 

Recently uploaded (20)

Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...Russian Call Girls Pune  (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
Russian Call Girls Pune (Adult Only) 8005736733 Escort Service 24x7 Cash Pay...
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
 
Al Barsha Night Partner +0567686026 Call Girls Dubai
Al Barsha Night Partner +0567686026 Call Girls  DubaiAl Barsha Night Partner +0567686026 Call Girls  Dubai
Al Barsha Night Partner +0567686026 Call Girls Dubai
 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
 
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
VIP Model Call Girls NIBM ( Pune ) Call ON 8005736733 Starting From 5K to 25K...
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRLLucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
Lucknow ❤CALL GIRL 88759*99948 ❤CALL GIRLS IN Lucknow ESCORT SERVICE❤CALL GIRL
 
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
(INDIRA) Call Girl Pune Call Now 8250077686 Pune Escorts 24x7
 
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
 

Elevate Your Angular Development

  • 1. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. Eric Bishard Twitter: LinkedIn: linkedin.com/in/ Front End UI/Component Developer, UX Student for life 1
  • 2. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. Front-End Architecture: Angular 5, CLI, Ngrx, What we’ll Cover: • What to focus on when Getting Started • Using the CLI • Testing and Linting in CLI • Services and Observables • Ngrx Store • Example project w/ Redux Agenda
  • 3. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 3 What I mean when I say Elevate? Taking it to the next level • Learn the fundamentals and revisit often • Understand and when to apply them • Become an advocate and implement • Attend and Present at meetups • Keep Angular up to date and understand the changes • Continue advancing your skills constantly
  • 4. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 4 Write Maintainable and Documented code Bringing the “Bus Factor” Down • Requirements and tests should drive our development • Use patterns rather than obscure coding techniques • Don’t silo yourself and build in isolation from your team • If something feels complex break it apart • Can a new hire get right to work?
  • 5. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 5 Build Smart From the Beginning Building and test UI in isolation w/mock data • Understand component composition • Use services with mock data for offline development • Understand requirements for inputs and outputs • Work out functionality before finalizing style • Build mockups or at least wireframes using research • Don’t build reusable components in place
  • 6. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 6 Unlike Angular 1.x, it’s no more MV★ It’s components all the way down • Use one–way-data-flow avoid two way binding • Use Reactive Forms not Template Driven Forms • Avoid deeply nested components • Put logic in the right place • Watch for dependency overload and apply single responsibility
  • 7. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 7 Use The CLI And save time & money • Generate a new project with (Sass & Routing) • Use instead if you are in an existing directory • Generate a module, comp, class, service, pipe, directive or enum • Test frameworks are in place with and • Develop linting rules and use them with • Experiment with or • Build and deploy using development vs production • Eject your application if needed
  • 8. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 8 Use The CLI And save time & money • By running `ng generate MyComponent` the CLI wires your component to the module • These commands save a lot of time • You can do things like omit the spec file with `--spec=false` • You can ensure a component is not created inside a directory btu instead created as a flat set of files with --flat
  • 9. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 9 Linting in the CLI Configurable out-of-the-box • Allows configuration of rules and formatters • Configuration through the file in root • Checks TS for code readability, maintainability and functionality • Enforce team standards with easy opt-in and opt-out rules palantir.github.io
  • 10. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 10 Examples of Lint Warnings On a recently completed pipe 1. If Pipe decorator used, should implement interface 2. Implement for method 3. Expected nospace before colon in call-signature 4. Identifier 'limit' is never reassigned; use instead of 5. Type trivially inferred from boolean literal, remove annotation 6. Forbidden keyword, use or instead 7. If statements must be braced 8. should be 9. Import is blacklisted, import a submodule instead 10. Declaration of instance field after declaration of instance method.
  • 11. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 11
  • 12. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 12
  • 13. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 13
  • 14. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 14
  • 15. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 15
  • 16. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 16
  • 17. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 17
  • 18. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 18 Ngrx Store Principals & Core Concepts • Single Immutable State Tree (POJO) • Predictable & Maintainable • Complemented by TDD • Time Travel Debugging • One way data flow • Reliable updates to state
  • 19. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 19 Ngrx Store Principals & Core Concepts • Derive properties from state • Dispatch actions to change state • Immutable operations to update state *Think: array.map()
  • 20. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 20 Ngrx Store Principals & Core Concepts • We dispatch actions • Trigger side effects • Reducers update and return state • Reducers do not mutate state outside of it's function • Reducers are pure and reliable functions *Think: sum(a,b)
  • 21. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 21
  • 22. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 22 x In short:
  • 23. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 23 x What it solves:
  • 24. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. >npm install / yarn install >npm start / yarn start Simple Redux App in TypeScript 24
  • 25. © Copyright 2017 Tesla, Inc. All rights reserved. Proprietary and confidential business information subject to and disclosed under applicable Non-disclosure Agreement and/or exempt from FOIA disclosure. 25 Links for this talk: Sample App (TypeScript Implementation of Redux) Redacted for public slide deck Intro to Observables (rxjs, MDN) codepen.io/httpJunkie/pen/RjVMzY Resources UltimateAngular.com, Pluralsight.com, TSLint, Angular CLI, Ngrx Store & Effects, State Management with Ngrx, Reactivex.io, Ngrx Store