Devoxx 2013 JavaScript Software Factory

26
@romaintaz #DV13 #JS-SF The Ingredients for a Perfect JavaScript Software Factory Romain LINSOLAS

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 of Devoxx 2013 JavaScript Software Factory

Page 1: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

The Ingredients for a Perfect JavaScript Software Factory

Romain LINSOLAS

Page 2: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

About me…

http://www.brownbaglunch.fr

Page 3: Devoxx 2013 JavaScript Software Factory

@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

Page 4: Devoxx 2013 JavaScript Software Factory

@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!

Page 5: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

DON'T REPEAT YOURSELF

Page 6: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

Continuous Integration Server

Page 7: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

Sonar(Qube)

Easy to get!

Not so easy to get!

Page 8: Devoxx 2013 JavaScript Software Factory

@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!

Page 9: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

LET'S FOCUS ON JAVASCRIPT TOOLS…

Page 10: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

Yeoman

Page 11: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

yo – Application Scaffolder

Page 12: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

Bower – Package & Dependencies Manager

Page 13: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

Grunt – Task Runner

Compilation

Testing

Minification

Linting

Documentation

Deployment

Many more…

Page 14: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

Plugins for Grunt

1600+ Plugins!

Page 15: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

Example of Grunt execution

Read Gruntfile.js

Tasks execution

Page 16: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

Many others useful tools…

The Landscape Of Front-end Development Automation Addy Osmani

@addyosmani

http://bit.ly/landscape-frontend

Page 17: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

TESTS!

Page 18: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

Unit Testing - Jasmine

Page 19: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

BDD – cucumber-js

Page 20: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

Front-end testing - CasperJS

Page 21: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

Need a testing library? You have the CHOICE!

Page 22: Devoxx 2013 JavaScript Software Factory

@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!

Page 23: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

Use what you have

Let's summarize…

Use JavaScript tools

Test!

Page 24: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

One last word…

Don't forget that in JavaScript…

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

Page 25: Devoxx 2013 JavaScript Software Factory

@romaintaz #DV13 #JS-SF

QUESTIONS?

Page 26: Devoxx 2013 JavaScript Software Factory

@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/