Agile Done Right
with JavaScript and Node
DOGUHAN ULUCA
Technologist
Senior Consultant at Excella
Contributing Author for DevPro
Follow: @duluca
Read: www.techtalkdc.com
Thank Our Sponsors without whom Today is not Possible
Platinum
Host
Bronze
Housekeeping
- Respect your speakers and fellow attendees:
- Set mobile devices to vibrate or silent
- Fill out session evaluations
- You must be present to win at the wrap-up
Exceptional Solutions. Exceptional Careers.
Excella is a leading IT consulting firm serving commercial, federal and non-profit clients in Washington, DC. We specialize in software development, business intelligence, program management and training.
Our Community
Excella founded or leads local IT organizations and Meetups. Join us for an event!
Need space for your event?
Contact Us: info@excella.com
Join Our Team
Excella is looking for talented developers to join our team. Join us to begin your exceptional career!
We are currently looking for:
- Mid and Senior Level developers
- C#
- Java
- JavaScript
- Ruby
- Python
Realities and Challenges of Agile Development
Why be Agile?
How's your team doing?
Survival
Learning
Self-reliant
Smells
Late
Heroics
Debt
Complexity
Survival Addiction
Pick Two
Features
Time
Quality
Roy Osherove
Best Practices Required
Achieve
Consistent forward flow of features
Not trivial
Focus is key
<HTML NG-APP>
<UL>
<LI NG-REPEAT="QUESTION IN QUESTIONS">
<SPAN>{{QUESTION}}</SPAN>
</LI>
</UL>
</HTML>
Questions?
Insanely Simple Organization
When you first start off trying to solve a problem, the first solutions you come up with are very complex, and most people stop there. But if you keep going, and live with the problem and peel more layers of the onion off, you can often times arrive at some very elegant and simple solutions.
Steve Jobs, Newsweek, 2006
Enterprise Architecture
Can get needlessly complicated
Separate Concerns
-
Client vs API
-
Controller vs View
-
MVVM vs MVC
*Orange represents business logic
Legacy vs New
*Orange represents business logic
Standardize on REST
*Orange represents business logic
<HTML NG-APP>
<UL>
<LI NG-REPEAT="QUESTION IN QUESTIONS">
<SPAN>{{QUESTION}}</SPAN>
</LI>
</UL>
</HTML>
Questions?
Human JavaScript
Do you use JavaScript?
aka EcmaScript 5
Lots of people do
Benefits
- The language of the web
- Easy to learn
- Can go full stack
- Dynamic typing makes TDD easier
- Community driven
'use strict';
Apply Best Practices
rinse & repeat
Create real-time applications
<HTML NG-APP>
<UL>
<LI NG-REPEAT="QUESTION IN QUESTIONS">
<SPAN>{{QUESTION}}</SPAN>
</LI>
</UL>
</HTML>
Questions?
Why Node?
Do you Node?
Performance
-
Listens directly to OS connection events
-
No web server needed
-
Lightweight
-
"Single threaded"
-
Non-blocking, event-driven I/O
-
Great wrapper around C++ threads
Best Use Cases
-
High scalability
-
High concurrency
-
Real-time applications
V8
Runs on the same engine as Google Chrome
Who's Using It?
- Groupon
- CapitalOne
- Federal Government
- SAP
- Microsoft
- Yahoo
- Walmart
- Paypal
- Uber
- Ebay
- And more.
<HTML NG-APP>
<UL>
<LI NG-REPEAT="QUESTION IN QUESTIONS">
<SPAN>{{QUESTION}}</SPAN>
</LI>
</UL>
</HTML>
Questions?
Going Full Stack
Skill share
Code share
Same tools
No context switching
A Hapi LEBRON
- Angular
- Node.JS
- Hapi.JS
- LevelDB
- Browserify
- npm
Angular
- Directives
- Configuration - Convention Balance
Level DB
- Fast Key-Value Store
- Persistence by default
- No setup
Browserify
- Node style require() in browser
- Code share
- Keep same file structure
npm
- Dependency management
- Test script
- Start script
- Bower for UI dependencies
Gulp
- Combine
- Minify
- WebStorm 9 will support it
Unit Testing
- Jasmine
- Mocha
- QUnit
Can't decide?
AAT
- Protractor
- ngMockE2E
IDE
- Visual Studio 2013+ with Web Essentials
- WebStorm (Supports OS X as well)
Repository
- GitHub
CI & CD
- Codeship.io
- Azure
- TeamCity
Static Code Analysis
- JSLint
- JSHint
Hosting
- Modulus.io
- Azure
- Heroku
Useful Tools
- Trello
- Waffle.io
- Zapier.com
<HTML NG-APP>
<UL>
<LI NG-REPEAT="QUESTION IN QUESTIONS">
<SPAN>{{QUESTION}}</SPAN>
</LI>
</UL>
</HTML>
Questions?
Thank You!
More Node?
Articles & Books
Modernize Your .NET Software Development Environment: http://devproconnections.com/net-framework/modernize-net-software-development-environment
MVVM and .NET: A Great Combo for Web Application Development: http://devproconnections.com/net-framework/mvvm-dot-net-web-application-development
Node.JS Tools For Visual Studio and Azure Integration:
http://www.techtalkdc.com/node-js-tools-for-visual-studio-and-azure-integration/
Insanely Simple (by Ken Segall): http://kensegall.com/insanely-simple-book/
Human JavaScript (by Henrik Joreteg): http://humanjavascript.com
Slides
Node.JS Tools For Visual Studio and Azure Integration Talk: http://www.slideshare.net/excellaco/node-tools-for-visual-studio-and-azure
MVVM for the Web Talk: http://www.slideshare.net/excellaco/mvvm-for-the-web
Videos
The Team Leader Manifesto (by Roy Osherove)
https://www.youtube.com/watch?v=LVLdqH6dNUQ
The Lebron Stack (by Max Ogden): https://webrebels.23video.com/the-lebron-stack-its-a-slam-dunk-by-max