Minimal MEAN
July 2016
Full Stack TypeScript
Doguhan Uluca
Questions? Tweet to @duluca
Mongo
Express
Angular
Node
Mongo
Mongoose
Node
Express
Angular UI
Angular
npm
python
gcc
Visual Studio C++ compiler
body-parser
logger
git
bash
cmd
Mongo cli
bower
gulp
bootstrap
sass
$scope
chrome dev
tools
webstorm
debug
issues
quirks
<script>
JavaScript
DOGUHAN ULUCA
JavaScript Specialty Lead
Excella Consulting
Certified SCRUM Professional
Enterprise Expert
Consumer App Passioneer
What is in a name?
name
stack
ease of use
happiness
effectiveness
-
idea
-
JavaScript
-
...
-
profit
stack is key
Presentation
API
Business
Persistence
Best Practices
IDE
Patterns
Libraries
TESTING
Full Stack Nirvana
Minimal MEAN
Angular 2 && Angular Material
Express
Node
Native Mongo Driver
VS Code
npm
GitHub
jasmine && protractor
gulp
TypeScript
CI
Angular 2
Web
Mobile Web
Native Mobile
Native
Desktop
Server-Side
Progressive
Angular 2
Angular Core
Web
Ionic
Universal
React
Electron
Angular 2
5x faster
Style guide
Powerful CLI tools
Builds on HTML conventions
Angular Material 2
Angular Material 2
High quality components
CSS Flexbox
You won't have to write CSS
Dynamic forms
Express
Fast, unopinionated, minimalist web framework for Node.js
Node
Lightweight and efficient JavaScript runtime, using an event-driven, non-blocking I/O model
npm
World's largest ecosystem of open source libraries
Mongo
Document-oriented database with dynamic JSON-like schemas
Native Mongo Driver
Official Node.js APIs allowing access to all native functionality
gulp
Build script or task automation system
enter TypeScript and VS Code
transpiling
TypeScript
Super-set of JavaScript with Types
Typings
async/await
Build time smarts
Visual Studio Code
Angular debugging
Node debugging
Gulp task running
Built in git tools
Built in terminal
Visual Studio Code
Free
Cross-platform
Actually written in TypeScript
Fast, expandable and full featured
simple
approachable
r
more
If you don't ship
It never happened
CodeShip.io
Continuous Integration
Modulus.io
Continuous Delivery
Cloud Scalability
If you need to collaborate
You must behave differently
2 People 1 Spaghetti?
spaghetti(teamWork)
GrossException Thrown
Bugs
Issues
Discussions
Not just about code
New features
Code Reviews
Status Updates
GitHub
Waffle.io
Review.Ninja
GitHub for Desktop
Show Me The Codes Already
Goals
Run Angular 2 using TypeScript
Run Node.js using TypeScript
Configure gulp
Use Typings
Use async/await
Achieve Database Connection
Avoid ODM
Deploy on the cloud
[Show and tell time]
Tip: Use http://tonicdev.com to run Node code with/without npm depedencies
Please leave feedback on the CodeStock App
Questions? @duluca
Slides? TechTalkDC.com
Resources
-
http://slides.com/doguhanuluca/agile-done-right-using-javascript-and-node#/6/2
-
http://blog.edenmsg.com/angular2-typescript-gulp-and-expressjs/
-
https://github.com/Microsoft/TypeScriptSamples/tree/master/imageboard
-
http://www.jbrantly.com/es6-modules-with-typescript-and-webpack/
-
https://www.airpair.com/node.js/posts/nodejs-framework-comparison-express-koa-hapi
-
http://www.excella.com/blog/node-js-challenges-why-mean-doesnt-work-but-a-hapi-leb...
-
https://docs.google.com/presentation/d/1anh69vBK1OLtB1RjwpKzeYmxCGMLX_HdJ...
-
https://www.excella.com/insights/youre-probably-using-github-wrong