Devoxx 2013 JavaScript Software Factory

Post on 10-May-2015

1,145 views 1 download

Tags:

description

Quickie presented during Devoxx World 2013 You are developing Java applications for years now, and you are used to have a very complete and powerful software factory: Git(Hub), Jenkins, Sonar, you practice TDD, BDD, etc.. But now your JavaScript codebase grows constantly, and you are wondering how to make your developments faster, safer, stronger, with a good software factory and well-chosen tools dedicated to JavaScript. So, how to industrialize your JavaScript developments? During this Quickie, we will make a tour of all the important components for your Software Factory, explaining how you can reuse your current tools, and also by introducing new elements such as Yeoman.

transcript

@romaintaz #DV13 #JS-SF

The Ingredients for a Perfect JavaScript Software Factory

Romain LINSOLAS

@romaintaz #DV13 #JS-SF

About me…

http://www.brownbaglunch.fr

@romaintaz #DV13 #JS-SF

Before I really start…

•  Can't go into the details (15 minutes is too short) •  The choices I've made are relevant today •  Sorry for my accent

@romaintaz #DV13 #JS-SF

I will not talk about…

Services & Tools that are language agnostic: •  SCM (Git, Subversion…)

•  Bug tracker (JIRA…)

•  "Agile tools" (GreenHopper, Trello…)

à Use what you have!

@romaintaz #DV13 #JS-SF

DON'T REPEAT YOURSELF

@romaintaz #DV13 #JS-SF

Continuous Integration Server

@romaintaz #DV13 #JS-SF

Sonar(Qube)

Easy to get!

Not so easy to get!

@romaintaz #DV13 #JS-SF

Maven

Dozens of plugins to integrate JS in Maven

à Mainly to run JS tests during the Maven lifecycle

Do not integrate Maven just for JavaScript!

@romaintaz #DV13 #JS-SF

LET'S FOCUS ON JAVASCRIPT TOOLS…

@romaintaz #DV13 #JS-SF

Yeoman

@romaintaz #DV13 #JS-SF

yo – Application Scaffolder

@romaintaz #DV13 #JS-SF

Bower – Package & Dependencies Manager

@romaintaz #DV13 #JS-SF

Grunt – Task Runner

Compilation

Testing

Minification

Linting

Documentation

Deployment

Many more…

@romaintaz #DV13 #JS-SF

Plugins for Grunt

1600+ Plugins!

@romaintaz #DV13 #JS-SF

Example of Grunt execution

Read Gruntfile.js

Tasks execution

@romaintaz #DV13 #JS-SF

Many others useful tools…

The Landscape Of Front-end Development Automation Addy Osmani

@addyosmani

http://bit.ly/landscape-frontend

@romaintaz #DV13 #JS-SF

TESTS!

@romaintaz #DV13 #JS-SF

Unit Testing - Jasmine

@romaintaz #DV13 #JS-SF

BDD – cucumber-js

@romaintaz #DV13 #JS-SF

Front-end testing - CasperJS

@romaintaz #DV13 #JS-SF

Need a testing library? You have the CHOICE!

@romaintaz #DV13 #JS-SF

JavaScript testing? No excuse! Writing tests is

so hard, and I don't have the time!

No excuse, we are in 2013!

@romaintaz #DV13 #JS-SF

Use what you have

Let's summarize…

Use JavaScript tools

Test!

@romaintaz #DV13 #JS-SF

One last word…

Don't forget that in JavaScript…

 ++[[]][+[]]+[+[]]  ===  "10" is true!

@romaintaz #DV13 #JS-SF

QUESTIONS?

@romaintaz #DV13 #JS-SF

References

Photo Credit:

•  http://jamandlam.blogspot.fr/2011/10/jam-lam-cook-lego-edition.html

•  http://www.flickr.com/photos/swchk1993/7244394422/

•  http://www.flickr.com/photos/7269902@N07/9533646890/

•  http://www.flickr.com/photos/drywfiltiarn/5082592918/

•  http://www.flickr.com/photos/balakov/4503616864/