JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK

Post on 12-Sep-2014

1195 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Slides from presentation delivered at Prairie Dev Con 2013 in Saskatoon, SK entitled JavaScript Revolution: The New Age of Software Development.

Transcript

THE JAVASCRIPTREVOLUTION

THE NEW AGE OF SOFTWARE DEVELOPMENTAn original presentation by / David Wesst @davidwesst

Prarie Dev Con 2013 - Saskatoon, SK

DAVID WESSTFROM WINNIPEG, MANITOBA

SYSTEMS ANALYST, UNIVERSITY OF MANITOBA (FACULTY OFMEDICINE)

MICROSOFT MVP, INTERNET EXPLORER

IE USER AGENT USERAGENTS.IE

PRODUCER, BREWPUB STUDIOS

DAVID WESST@DAVIDWESST ON TWITTER

DAVIDWESST.COM ON THE WEB

DAVIDWESST.COM/BLOG ON THE BLOGOSPHERE

DW [AT] DAVIDWESST.COM ON EMAIL

FOLLOW ALONGHTTP://DAVIDWESST.GITHUB.IO/DW-PRESENTATIONS

SLIDES AND DEMOS WILL BE POSTEDAFTERWARDS.

THE POINTTO ACCOMPLISH ONE OF THESE BEFORE YOU LEAVE:

To see some new JavaScript toolsTo understand how a JavaScript project can workTo bring you up-to-speed with JavaScript

THE POINTTHEME FOR THIS PRESENTATION

TO SHOW YOU THATJAVASCRIPT IS A REAL

OPTION

THE PLANA.K.A. THE AGENDA

Why JavaScript?

Survival Skills for the New Age of JavaScript

Modern Day JavaScript Projects

Source ControlJavaScript Code TodayManaging DependenciesTest, Test, and Test AgainBuilding JavaScript

Next Steps

THE PLANSETTING YOUR EXPECTATIONS

This presentation is...

An overview of JavaScript modern developmentA review of JavaScript development toolsA "core sample" of pure JavaScript developmentA taste of things to come for JavaScript at DevTeach

THE PLANSETTING YOUR EXPECTATIONS

This presentation is not...

A 100% code-centric presentationA lesson on JavaScript coding practicesA discussion on JavaScript ALM (Application LifecycyleManagement)A "deep-dive" into one or more specific JavaScripttechnologies

WHY JAVASCRIPT?

WHY JAVASCRIPT?COMMON ARGUMENTS ABOUT JAVASCRIPT

JAVASCRIPT IS FOR CLIENT-SIDE WEB DEVELOPMENT ANDNOTHING ELSE.

IT'S NOT AN OO LANGUAGE, SO I CAN'T USE IT FOR ANYTHING.

I DON'T PROGRAM FOR THE WEB, SO I DON'T NEEDJAVASCRIPT ANYWAY.

WHY JAVASCRIPT?

Image Source: Wikimedia Commons

JavaScript is for client-side web developmentand nothing else.

NOT QUITE...Web BrowsersChrome Installed Apps / Chromium AppsiOS, Windows Phone, Android (through PhoneGap)Windows 8Wii U

It's not an OO language, so I can't use it foranything.

ACTUALLY, IT IS.Prototype-based LanguageProvides properties, classes, polymorphism, etc...

I don't program for the web, so I don't needJavaScript anyway.

JAVASCRIPT LIVES OUTSIDE OF THE WEBWindows Store AppsChromium and Firefox AppsWii UPhoneGap

SURVIVAL SKILLS FORTHE NEW AGE OF

JAVASCRIPT

SURVIVAL SKILLS FOR THE NEW AGE OFJAVASCRIPT

OPEN SOURCE IS YOUR FRIEND

SURVIVAL SKILLS FOR THE NEW AGE OFJAVASCRIPT

PLAN AND CHOOSE YOUR PLATFORMS

SURVIVAL SKILLS FOR THE NEW AGE OFJAVASCRIPT

UNDERSTAND YOUR HTML5

SURVIVAL SKILLS FOR THE NEW AGE OFJAVASCRIPT

EXPLORE YOUR ENVIRONMENT(S)Eclipse (Web Platform Tools, Aptana, Nodeclipse)Visual Studio 2012/2013WebMatrixWebStormCloud9 (http://c9.io)

MODERN DAYJAVASCRIPT PROJECTS:

SOURCE CONTROL

HERE'S THE SECRET:

ANY SOURCE CONTROLWILL DO!

BUT IN CASE YOU ARE GOING OPEN SOURCEWITH YOUR PROJECT...

MODERN DAY JAVASCRIPT PROJECTS: SOURCECONTROL

A FEW CONSIDERATIONS FOR OPEN SOURCE PROJECTSVisibilityShare-abilityAccessibility

MODERN DAY JAVASCRIPT PROJECTS: SOURCECONTROL

SOME OPTIONSGithub (http://github.com)Bitbucket (http://bitbucket.org)CodePlex (http://codeplex.com)Google Code (http://code.google.com)

MODERN DAYJAVASCRIPT PROJECTS:

JAVASCRIPT CODE TODAY

MODERN DAY JAVASCRIPT PROJECTS:JAVASCRIPT CODE TODAY

COMPILERSProvide solution to some common "issues" with JavaScript

More familiar syntax than JavaScriptProvides common keywords like "class" and "interface"Compiles into optimized JavaScriptMakes OO programming easier to learn in JavaScript

MODERN DAY JAVASCRIPT PROJECTS:JAVASCRIPT CODE TODAY

COMPILERSPopular Examples

CoffeeScript - Ruby Like SyntaxTypeScript - Superset of JavaScriptFor more check out Altjs.org

DEMO: COMPILERSTYPESCRIPT

MODERN DAY JAVASCRIPT PROJECTS:JAVASCRIPT CODE TODAYMV* PATTERNS AND FRAMEWORKS

MVC, Model View ControllerMVVM, Model View ViewModelMVP, Model View Presenter

MODERN DAY JAVASCRIPT PROJECTS:JAVASCRIPT CODE TODAYMV* PATTERNS AND FRAMEWORKS

Backbone (http://backbonejs.org/)Knockout (http://knockoutjs.com/)AngularJS (http://angularjs.org/)

DEMO: MV* PATTERNSAND FRAMEWORKS

KNOCKOUTJS

MODERN DAY JAVASCRIPT PROJECTS:JAVASCRIPT CODE TODAY

ON THE SERVER WITH NODEJSRuns JavaScript on the ServerOpen Source TechnologyProvides Asynchronous I/O, i.e. Non-Blocking I/O

DEMO: ON THE SERVERWITH NODEJS

WALKING THROUGH NODEJS

MODERN DAYJAVASCRIPT PROJECTS:

MANAGINGDEPENDENCIES

MODERN DAY JAVASCRIPT PROJECTS:MANAGING DEPENDENCIES

REQUIREJSAllows you to define and load JavaScript modulesRemoves need for "script" tags to define dependenciesRuns JavaScript ONLY when dependencies are loaded

DEMO: MANAGINGDEPENDENCIES

REQUIREJS

MODERN DAY JAVASCRIPT PROJECTS:MANAGING DEPENDENCIES

NPM, NODE PACKAGED MODULESBundled with NodeJSDefine dependencies through package name or git repoThrows errors when dependencies are not loaded properlyDefine dependencies in package.json

DEMO: MANAGINGDEPENDENCIES

NPM, NODE PACKAGED MODULES

MODERN DAYJAVASCRIPT PROJECTS:TEST, TEST, AND TEST

AGAIN

MODERN DAY JAVASCRIPT PROJECTS: TEST,TEST, AND TEST AGAIN

TESTING YOUR JAVASCRIPTLarge number of frameworks for testsApply TDD or BDD PracticesMocking frameworks exist as wellAvailable for both client and server

MODERN DAY JAVASCRIPT PROJECTS: TEST,TEST, AND TEST AGAIN

TESTING YOUR JAVASCRIPT: QUNITDeveloped by jQueryUnit Testing FrameworkNo external dependencies (not even jQuery)

MODERN DAY JAVASCRIPT PROJECTS: TEST,TEST, AND TEST AGAIN

TESTING YOUR JAVASCRIPT: JASMINEBDD based frameworkResembles RSpecNo external dependenciesProvides multiple output channels for results

MODERN DAY JAVASCRIPT PROJECTS: TEST,TEST, AND TEST AGAIN

TESTING YOUR JAVASCRIPT: MOCHABDD based frameworkResembles RSpecWorks with both client and server (NodeJS)

DEMO: TEST, TEST, ANDTEST AGAIN

MOCHA

MODERN DAYJAVASCRIPT PROJECTS:BUILDING JAVASCRIPT

MODERN DAY JAVASCRIPT PROJECTS:BUILDING JAVASCRIPT

WHY "BUILD" YOURJAVASCRIPT?

WE AREN'T REALLY BUILDING ANYTHING...ARE WE?

MODERN DAY JAVASCRIPT PROJECTS:BUILDING JAVASCRIPT

YOU ARE NOW.

MODERN DAY JAVASCRIPT PROJECTS:BUILDING JAVASCRIPT

WHAT WE CAN TODAY DO TODAY WITH JAVASCRIPT1. Get our source2. Compile it (from TypeScript)3. Setup dependencies4. Test it

MODERN DAY JAVASCRIPT PROJECTS:BUILDING JAVASCRIPT

SOME BUILDING SOLUTIONSTravis-CI (Free for Open Source)JenkinsWhatever you want to execute CLI commands

DEMO: BUILDINGJAVASCRIPT

TRAVIS-CI

MODERN DAY JAVASCRIPT PROJECTS:BUILDING JAVASCRIPT

GRUNT: THE JAVASCRIPT CLI TOOLOpen SourceProvides CLI to run common project actionsAllows you to define custom CLI actions

GRUNTJS.ORG

QUICK RECAP: THE PLAN

Why JavaScript?

Survival Skills for the New Age of JavaScript

Modern Day JavaScript Projects

Source ControlJavaScript Code TodayManaging DependenciesTest, Test, and Test AgainBuilding JavaScript

Next Steps

QUICK RECAP: THE POINTTO ACCOMPLISH ONE OF THESE BEFORE YOU LEAVE:

To see some new JavaScript toolsTo understand how a JavaScript project can workTo bring you up-to-speed with JavaScript

QUICK RECAP: THE POINTTHEME FOR THIS PRESENTATION

TO SHOW YOU THATJAVASCRIPT IS A REAL

OPTION

NEXT STEPSWhere do we go from here?

NEXT STEPSGo to the other JavaScript/HTML5 Presentations at PrDCMake Your Own JavaScript ProjectLeverage one of the tools in your exiting projectsBuild a JavaScript Project

NEXT STEPSCHECK OUT A RESOURCE

Douglas Crockford's BlogJavaScript: The Good PartsCheckout the npm (http://npmjs.org)

DAVID WESSTFROM WINNIPEG, MANITOBA

SYSTEMS ANALYST, UNIVERSITY OF MANITOBA (FACULTY OFMEDICINE)

MICROSOFT MVP, INTERNET EXPLORERIE USER AGENT USERAGENTS.IE

PRODUCER, BREWPUB GAMES

DAVID WESST@DAVIDWESST ON TWITTER

DAVIDWESST.COM ON THE WEB

DAVIDWESST.COM/BLOG ON THE BLOGOSPHEREDW [AT] DAVIDWESST.COM ON EMAIL

top related