SlideShare a Scribd company logo
SINGLE PAGE APP
DESIGN WITH
ANGULERJS
THE WORLD AIN’T WHAT IT USED TO BE…
Copyright © 2015, Stacey Vetzal
Copyright © 2015, Stacey Vetzal
STACEY VETZAL
• Founder of Mojility Inc.
• First computer, age 10
• hardware and software hacker for 35 years
• Frustrated and embarrassed with the state of software
development in the industry
• I am platform, language, and technology agnostic
• I have strong opinions, but they are loosely held
Copyright © 2015, Stacey Vetzal
HACKER
IETF RFC 1392
hacker (n):
A person who delights in having an intimate
understanding of the internal workings of a system,
computers and computer networks in particular.
The term is often misused in a pejorative context,
where "cracker" would be the correct term.
Copyright © 2015, Stacey Vetzal
CRAFTSMAN
I owe much of who I am to my father.
When I was a child, I would go to my
father with simple projects, and I would
watch him build them, usually of wood,
but sometimes other materials. He is an
incredible craftsman, brings beauty out of
the mundane and gives it a purpose. I
strive to honour that in my own craft,
which is software development. It is a long
road, but I believe worthwhile, as where
wood used to touch every aspect of our
lives in eras past, now there is software.
Copyright © 2015, Stacey Vetzal
TODAY
Today we are better than yesterday, but not as
good as we will be tomorrow.
Today our tools are better than they were
yesterday, but not as good as they will be
tomorrow.
We build software today.
Copyright © 2015, Stacey Vetzal
http://chimera.labs.oreilly.com/books/1234000001813/index.html
Copyright © 2015, Stacey Vetzal
THE WHITE BELT
• … You are walking comfortably on a plateau of
competence. Your colleagues recognize your
abilities and call on you to help them solve
problems in your area of expertise. You have pride
in your skills.
• … it seems somehow harder than it was before to
acquire new skills… You fear that your personal
development may have stalled.
Copyright © 2015, Stacey Vetzal
- Yoda, The Empire Strikes Back
“You must unlearn what
you have learned.”
THE WHITE BELT
Copyright © 2015, Stacey Vetzal
var i=require(“information”);
Copyright © 2015, Stacey Vetzal
4 RULES OF SIMPLE DESIGN
• Tests pass
• Express Intent
• Don’t Repeat Yourself
• Small
Copyright © 2015, Stacey Vetzal
4 RULES OF SIMPLE DESIGN:
TESTS PASS
“Code without tests is bad
code. It doesn’t matter how
well written it is; it doesn’t
matter how pretty or object-
oriented or well-encapsulated
it is. With tests, we can change
the behaviour of our code
quickly and verifiably.”
- Michael C. Feathers, Working
Effectively with Legacy Code
Copyright © 2015, Stacey Vetzal
4 RULES OF SIMPLE DESIGN:
TESTS PASS
• What kinds of tests do you do?
• Exploratory?
• Story or script driven?
• Automated?
Copyright © 2015, Stacey Vetzal
4 RULES OF SIMPLE DESIGN:
EXPRESSES INTENT
The Principle of Least Astonishment
“The result of performing
some operation should be
obvious, consistent, and
predictable, based upon the
name of the operation and
other clues.”
-Ward Cunningham, from c2
Copyright © 2015, Stacey Vetzal
4 RULES OF SIMPLE DESIGN:
EXPRESSES INTENT
• There are two hard things in computer science
• Cache invalidation
• Naming things
• Off-by-one errors
Copyright © 2015, Stacey Vetzal
4 RULES OF SIMPLE DESIGN:
DON’T REPEAT YOURSELF
“…every piece of system
knowledge should have one
authoritative, unambiguous
representation… A system’s
knowledge is far broader than just
its code… database schemas, test
plans, the build system, even
documentation.”
- Dave Thomas, co-author of The
Pragmatic Programmer on
Orthogonality and the DRY
Principle.
Copyright © 2015, Stacey Vetzal
4 RULES OF SIMPLE DESIGN:
DON’T REPEAT YOURSELF
The Single Responsibility Principle
“A class should only have one
reason to change.”
“Responsibilities have profound
long-term effects on the
maintainability and flexibility of
software.”
- Robert C. Martin, author Clean
Code, Principles of Object
Oriented Design
Copyright © 2015, Stacey Vetzal
4 RULES OF SIMPLE DESIGN:
SMALL
- Mark Twain
“I didn’t have
time to write a
short letter, so I
wrote a long
one instead.”
Copyright © 2015, Stacey Vetzal
4 RULES OF SIMPLE DESIGN:
SMALL
• What does SMALL mean?
• Lines of code?
• Classes?
• Functions?
• # of function call arguments?
• How do you MEASURE it?
Copyright © 2015, Stacey Vetzal
using MoreInformation;
COHESION AND COUPLING
Copyright © 2015, Stacey Vetzal
COHESION AND COUPLING
Copyright © 2015, Stacey Vetzal
COHESION AND COUPLING
Copyright © 2015, Stacey Vetzal
COHESION AND COUPLING
Copyright © 2015, Stacey Vetzal
COHESION AND COUPLING
Copyright © 2015, Stacey Vetzal
COHESION AND COUPLING
Copyright © 2015, Stacey Vetzal
Copyright © 2015, Stacey Vetzal
require(“all-please.php”);
Copyright © 2015, Stacey Vetzal
THE BIRTH AND DEATH OF
JAVASCRIPT
• Gary Bernhardt, Destroy
All Software
• https://
www.destroyallsoftware.com/
talks/the-birth-and-death-of-
javascript
• If you have any concerns
about the legitimacy of
JavaScript as a
programming language
Copyright © 2015, Stacey Vetzal
THE BIRTH AND DEATH OF
JAVASCRIPT
• JavaScript: The Good Parts by Douglas Crockford, 2008
• Generally considered the book that kicked off the JS
legitimacy movement
• Node.JS, 2009
• Today a very strong foundation of intelligence and
maturity working in communities using JavaScript
• JavaScript Jabber, DevChat.tv, excellent weekly podcast,
currently at episode 154
Copyright © 2015, Stacey Vetzal
(defun load-information ()
(load “information.cl”))
Copyright © 2015, Stacey Vetzal
BREAKING APART WEB
APPLICATIONS
• MVC? WTF?
• Most of what you’ve been told are MVC
frameworks are considered Model2 frameworks
• Still stemming from classic JSP, ASP and PHP
architectures
• MVC is really not that informative about good app
architecture.
Copyright © 2015, Stacey Vetzal
WHY ANGULARJS?
• Why not?
• Tons of attention, and a tiny little backer called
Google
• Provides good flexibility on how you assemble the
browser-side of your apps
• Promotes modular design, and supports good
testing practices
Copyright © 2015, Stacey Vetzal
TRY IT YOURSELF
• The free Google sponsored course on CodeSchool
is a bit slow and corny for experienced
developers, but gives you an effective and concise
introduction to the core of the framework.
• http://campus.codeschool.com/courses/shaping-
up-with-angular-js/intro
Copyright © 2015, Stacey Vetzal
LET’S CODE!

More Related Content

What's hot

How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...
How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...
How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...
Kevin Goldsmith
 
How to engage students in real open source projects
How to engage students in real open source projectsHow to engage students in real open source projects
How to engage students in real open source projectsscottw
 
Making operations visible - devopsdays tokyo 2013
Making operations visible  - devopsdays tokyo 2013Making operations visible  - devopsdays tokyo 2013
Making operations visible - devopsdays tokyo 2013Nick Galbreath
 
Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019
Hannes Lowette
 
From dev to ops and beyond - getting it done
From dev to ops and beyond - getting it doneFrom dev to ops and beyond - getting it done
From dev to ops and beyond - getting it done
Edorian
 
[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team
[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team
[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team
Ho Chi Minh City Software Testing Club
 
What schools should be teaching IT students
What schools should be teaching IT studentsWhat schools should be teaching IT students
What schools should be teaching IT students
Andy Lester
 
Continuous Delivery: Rapid and Reliable Releases with DevOps Practices
Continuous Delivery: Rapid and Reliable Releases with DevOps PracticesContinuous Delivery: Rapid and Reliable Releases with DevOps Practices
Continuous Delivery: Rapid and Reliable Releases with DevOps Practices
TechWell
 
Hacking101 delhi 2013
Hacking101 delhi 2013Hacking101 delhi 2013
Hacking101 delhi 2013
Jithin Emmanuel
 
No more excuses left - let's build great things - Christian Heilmann - Codemo...
No more excuses left - let's build great things - Christian Heilmann - Codemo...No more excuses left - let's build great things - Christian Heilmann - Codemo...
No more excuses left - let's build great things - Christian Heilmann - Codemo...
Codemotion
 
Better Software Through User Research
Better Software Through User ResearchBetter Software Through User Research
Better Software Through User Research
Alexandra Leisse
 

What's hot (11)

How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...
How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...
How Spotify Builds Products (Organization. Architecture, Autonomy, Accountabi...
 
How to engage students in real open source projects
How to engage students in real open source projectsHow to engage students in real open source projects
How to engage students in real open source projects
 
Making operations visible - devopsdays tokyo 2013
Making operations visible  - devopsdays tokyo 2013Making operations visible  - devopsdays tokyo 2013
Making operations visible - devopsdays tokyo 2013
 
Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019Don't get blamed for your choices - Techorama 2019
Don't get blamed for your choices - Techorama 2019
 
From dev to ops and beyond - getting it done
From dev to ops and beyond - getting it doneFrom dev to ops and beyond - getting it done
From dev to ops and beyond - getting it done
 
[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team
[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team
[HCMC STC Jan 2015] Developing an Offshore Context-Driven Testing Team
 
What schools should be teaching IT students
What schools should be teaching IT studentsWhat schools should be teaching IT students
What schools should be teaching IT students
 
Continuous Delivery: Rapid and Reliable Releases with DevOps Practices
Continuous Delivery: Rapid and Reliable Releases with DevOps PracticesContinuous Delivery: Rapid and Reliable Releases with DevOps Practices
Continuous Delivery: Rapid and Reliable Releases with DevOps Practices
 
Hacking101 delhi 2013
Hacking101 delhi 2013Hacking101 delhi 2013
Hacking101 delhi 2013
 
No more excuses left - let's build great things - Christian Heilmann - Codemo...
No more excuses left - let's build great things - Christian Heilmann - Codemo...No more excuses left - let's build great things - Christian Heilmann - Codemo...
No more excuses left - let's build great things - Christian Heilmann - Codemo...
 
Better Software Through User Research
Better Software Through User ResearchBetter Software Through User Research
Better Software Through User Research
 

Similar to VS Single Page App Design with AngularJS

Surviving a Hackathon and Beyond
Surviving a Hackathon and BeyondSurviving a Hackathon and Beyond
Surviving a Hackathon and Beyond
imoneytech
 
Hacking hired [Forecasting 2021] Jan 2021
Hacking hired [Forecasting 2021] Jan 2021Hacking hired [Forecasting 2021] Jan 2021
Hacking hired [Forecasting 2021] Jan 2021
Rachel Harpley
 
Perspectives on salesforce architecture Forcelandia talk 2017
Perspectives on salesforce architecture   Forcelandia talk 2017Perspectives on salesforce architecture   Forcelandia talk 2017
Perspectives on salesforce architecture Forcelandia talk 2017
Steven Herod
 
10 bezcennych lekcji dla software developera stającego się szefem firmy
10 bezcennych lekcji dla software developera stającego się szefem firmy10 bezcennych lekcji dla software developera stającego się szefem firmy
10 bezcennych lekcji dla software developera stającego się szefem firmy
Wojciech Seliga
 
Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...
Wojciech Seliga
 
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EEDown-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
Reza Rahman
 
Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
Daniel Zivkovic
 
Just Enough Web Development: An Introduction!
Just Enough Web Development: An Introduction!Just Enough Web Development: An Introduction!
Just Enough Web Development: An Introduction!
David Rogers
 
PyData Texas 2015 Keynote
PyData Texas 2015 KeynotePyData Texas 2015 Keynote
PyData Texas 2015 Keynote
Peter Wang
 
Hackability: Free/Open Source Assistive Tech
Hackability: Free/Open Source Assistive TechHackability: Free/Open Source Assistive Tech
Hackability: Free/Open Source Assistive Tech
Liz Henry
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
Zivtech, LLC
 
Responsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJSResponsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJS
Christian Heilmann
 
Open Source: Working in a Glass Walled Factory
Open Source: Working in a Glass Walled FactoryOpen Source: Working in a Glass Walled Factory
Open Source: Working in a Glass Walled Factory
Stephen James
 
Benchmarking Web Application Scanners for YOUR Organization
Benchmarking Web Application Scanners for YOUR OrganizationBenchmarking Web Application Scanners for YOUR Organization
Benchmarking Web Application Scanners for YOUR Organization
Denim Group
 
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Juraj Martinka
 
How an Attacker "Audits" Your Software Systems
How an Attacker "Audits" Your Software SystemsHow an Attacker "Audits" Your Software Systems
How an Attacker "Audits" Your Software Systems
Security Innovation
 
Cloud Native Future
Cloud Native FutureCloud Native Future
Cloud Native Future
Julie Coonce
 
Intro to INFOSEC
Intro to INFOSECIntro to INFOSEC
Intro to INFOSEC
Sean Whalen
 
Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...
Wojciech Seliga
 

Similar to VS Single Page App Design with AngularJS (20)

Surviving a Hackathon and Beyond
Surviving a Hackathon and BeyondSurviving a Hackathon and Beyond
Surviving a Hackathon and Beyond
 
Hacking hired [Forecasting 2021] Jan 2021
Hacking hired [Forecasting 2021] Jan 2021Hacking hired [Forecasting 2021] Jan 2021
Hacking hired [Forecasting 2021] Jan 2021
 
Perspectives on salesforce architecture Forcelandia talk 2017
Perspectives on salesforce architecture   Forcelandia talk 2017Perspectives on salesforce architecture   Forcelandia talk 2017
Perspectives on salesforce architecture Forcelandia talk 2017
 
10 bezcennych lekcji dla software developera stającego się szefem firmy
10 bezcennych lekcji dla software developera stającego się szefem firmy10 bezcennych lekcji dla software developera stającego się szefem firmy
10 bezcennych lekcji dla software developera stającego się szefem firmy
 
Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...Ten lessons I painfully learnt while moving from software developer to entrep...
Ten lessons I painfully learnt while moving from software developer to entrep...
 
Down-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EEDown-to-Earth Microservices with Java EE
Down-to-Earth Microservices with Java EE
 
Serverless Toronto helps Startups
Serverless Toronto helps StartupsServerless Toronto helps Startups
Serverless Toronto helps Startups
 
Just Enough Web Development: An Introduction!
Just Enough Web Development: An Introduction!Just Enough Web Development: An Introduction!
Just Enough Web Development: An Introduction!
 
PyData Texas 2015 Keynote
PyData Texas 2015 KeynotePyData Texas 2015 Keynote
PyData Texas 2015 Keynote
 
Hackability: Free/Open Source Assistive Tech
Hackability: Free/Open Source Assistive TechHackability: Free/Open Source Assistive Tech
Hackability: Free/Open Source Assistive Tech
 
The business case for contributing code
The business case for contributing codeThe business case for contributing code
The business case for contributing code
 
Responsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJSResponsive, adaptive and responsible - keynote at NebraskaJS
Responsive, adaptive and responsible - keynote at NebraskaJS
 
Open Source: Working in a Glass Walled Factory
Open Source: Working in a Glass Walled FactoryOpen Source: Working in a Glass Walled Factory
Open Source: Working in a Glass Walled Factory
 
Benchmarking Web Application Scanners for YOUR Organization
Benchmarking Web Application Scanners for YOUR OrganizationBenchmarking Web Application Scanners for YOUR Organization
Benchmarking Web Application Scanners for YOUR Organization
 
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
Beyond Technical Debt: Unconventional techniques to uncover technical and soc...
 
How an Attacker "Audits" Your Software Systems
How an Attacker "Audits" Your Software SystemsHow an Attacker "Audits" Your Software Systems
How an Attacker "Audits" Your Software Systems
 
Cloud Native Future
Cloud Native FutureCloud Native Future
Cloud Native Future
 
Intro to INFOSEC
Intro to INFOSECIntro to INFOSEC
Intro to INFOSEC
 
Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...Ten lessons I painfully learnt while moving from software developer
to entrep...
Ten lessons I painfully learnt while moving from software developer
to entrep...
 
Luis Grangeia IBWAS
Luis Grangeia IBWASLuis Grangeia IBWAS
Luis Grangeia IBWAS
 

Recently uploaded

AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 

Recently uploaded (20)

AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 

VS Single Page App Design with AngularJS

  • 1. SINGLE PAGE APP DESIGN WITH ANGULERJS THE WORLD AIN’T WHAT IT USED TO BE… Copyright © 2015, Stacey Vetzal
  • 2. Copyright © 2015, Stacey Vetzal STACEY VETZAL • Founder of Mojility Inc. • First computer, age 10 • hardware and software hacker for 35 years • Frustrated and embarrassed with the state of software development in the industry • I am platform, language, and technology agnostic • I have strong opinions, but they are loosely held
  • 3. Copyright © 2015, Stacey Vetzal HACKER IETF RFC 1392 hacker (n): A person who delights in having an intimate understanding of the internal workings of a system, computers and computer networks in particular. The term is often misused in a pejorative context, where "cracker" would be the correct term.
  • 4. Copyright © 2015, Stacey Vetzal CRAFTSMAN I owe much of who I am to my father. When I was a child, I would go to my father with simple projects, and I would watch him build them, usually of wood, but sometimes other materials. He is an incredible craftsman, brings beauty out of the mundane and gives it a purpose. I strive to honour that in my own craft, which is software development. It is a long road, but I believe worthwhile, as where wood used to touch every aspect of our lives in eras past, now there is software.
  • 5. Copyright © 2015, Stacey Vetzal TODAY Today we are better than yesterday, but not as good as we will be tomorrow. Today our tools are better than they were yesterday, but not as good as they will be tomorrow. We build software today.
  • 6. Copyright © 2015, Stacey Vetzal http://chimera.labs.oreilly.com/books/1234000001813/index.html
  • 7. Copyright © 2015, Stacey Vetzal THE WHITE BELT • … You are walking comfortably on a plateau of competence. Your colleagues recognize your abilities and call on you to help them solve problems in your area of expertise. You have pride in your skills. • … it seems somehow harder than it was before to acquire new skills… You fear that your personal development may have stalled.
  • 8. Copyright © 2015, Stacey Vetzal - Yoda, The Empire Strikes Back “You must unlearn what you have learned.” THE WHITE BELT
  • 9. Copyright © 2015, Stacey Vetzal var i=require(“information”);
  • 10. Copyright © 2015, Stacey Vetzal 4 RULES OF SIMPLE DESIGN • Tests pass • Express Intent • Don’t Repeat Yourself • Small
  • 11. Copyright © 2015, Stacey Vetzal 4 RULES OF SIMPLE DESIGN: TESTS PASS “Code without tests is bad code. It doesn’t matter how well written it is; it doesn’t matter how pretty or object- oriented or well-encapsulated it is. With tests, we can change the behaviour of our code quickly and verifiably.” - Michael C. Feathers, Working Effectively with Legacy Code
  • 12. Copyright © 2015, Stacey Vetzal 4 RULES OF SIMPLE DESIGN: TESTS PASS • What kinds of tests do you do? • Exploratory? • Story or script driven? • Automated?
  • 13. Copyright © 2015, Stacey Vetzal 4 RULES OF SIMPLE DESIGN: EXPRESSES INTENT The Principle of Least Astonishment “The result of performing some operation should be obvious, consistent, and predictable, based upon the name of the operation and other clues.” -Ward Cunningham, from c2
  • 14. Copyright © 2015, Stacey Vetzal 4 RULES OF SIMPLE DESIGN: EXPRESSES INTENT • There are two hard things in computer science • Cache invalidation • Naming things • Off-by-one errors
  • 15. Copyright © 2015, Stacey Vetzal 4 RULES OF SIMPLE DESIGN: DON’T REPEAT YOURSELF “…every piece of system knowledge should have one authoritative, unambiguous representation… A system’s knowledge is far broader than just its code… database schemas, test plans, the build system, even documentation.” - Dave Thomas, co-author of The Pragmatic Programmer on Orthogonality and the DRY Principle.
  • 16. Copyright © 2015, Stacey Vetzal 4 RULES OF SIMPLE DESIGN: DON’T REPEAT YOURSELF The Single Responsibility Principle “A class should only have one reason to change.” “Responsibilities have profound long-term effects on the maintainability and flexibility of software.” - Robert C. Martin, author Clean Code, Principles of Object Oriented Design
  • 17. Copyright © 2015, Stacey Vetzal 4 RULES OF SIMPLE DESIGN: SMALL - Mark Twain “I didn’t have time to write a short letter, so I wrote a long one instead.”
  • 18. Copyright © 2015, Stacey Vetzal 4 RULES OF SIMPLE DESIGN: SMALL • What does SMALL mean? • Lines of code? • Classes? • Functions? • # of function call arguments? • How do you MEASURE it?
  • 19. Copyright © 2015, Stacey Vetzal using MoreInformation;
  • 20. COHESION AND COUPLING Copyright © 2015, Stacey Vetzal
  • 21. COHESION AND COUPLING Copyright © 2015, Stacey Vetzal
  • 22. COHESION AND COUPLING Copyright © 2015, Stacey Vetzal
  • 23. COHESION AND COUPLING Copyright © 2015, Stacey Vetzal
  • 24. COHESION AND COUPLING Copyright © 2015, Stacey Vetzal
  • 25. COHESION AND COUPLING Copyright © 2015, Stacey Vetzal
  • 26. Copyright © 2015, Stacey Vetzal require(“all-please.php”);
  • 27. Copyright © 2015, Stacey Vetzal THE BIRTH AND DEATH OF JAVASCRIPT • Gary Bernhardt, Destroy All Software • https:// www.destroyallsoftware.com/ talks/the-birth-and-death-of- javascript • If you have any concerns about the legitimacy of JavaScript as a programming language
  • 28. Copyright © 2015, Stacey Vetzal THE BIRTH AND DEATH OF JAVASCRIPT • JavaScript: The Good Parts by Douglas Crockford, 2008 • Generally considered the book that kicked off the JS legitimacy movement • Node.JS, 2009 • Today a very strong foundation of intelligence and maturity working in communities using JavaScript • JavaScript Jabber, DevChat.tv, excellent weekly podcast, currently at episode 154
  • 29. Copyright © 2015, Stacey Vetzal (defun load-information () (load “information.cl”))
  • 30. Copyright © 2015, Stacey Vetzal BREAKING APART WEB APPLICATIONS • MVC? WTF? • Most of what you’ve been told are MVC frameworks are considered Model2 frameworks • Still stemming from classic JSP, ASP and PHP architectures • MVC is really not that informative about good app architecture.
  • 31. Copyright © 2015, Stacey Vetzal WHY ANGULARJS? • Why not? • Tons of attention, and a tiny little backer called Google • Provides good flexibility on how you assemble the browser-side of your apps • Promotes modular design, and supports good testing practices
  • 32. Copyright © 2015, Stacey Vetzal TRY IT YOURSELF • The free Google sponsored course on CodeSchool is a bit slow and corny for experienced developers, but gives you an effective and concise introduction to the core of the framework. • http://campus.codeschool.com/courses/shaping- up-with-angular-js/intro
  • 33. Copyright © 2015, Stacey Vetzal LET’S CODE!