Pssst
Tu veux voir ma stack ?

//talks.m4dz.net/pssst_tu_veux_voir_ma_stack.html

MAD MAD

Full Stack Punisher

Quality Defender

Ponies Breeder

Désormais, le web, ça se build !
John Doe (ou un parent proche), via @davidbgk
(et si vous retrouvez la source, je vous fais des bisous !)

Au commencement

1994 – HTML

<table>
  <tr>
    <td rowspan="2" id="nav">
      <h1><a href="/">Home</a></h1>
      <ul></ul>
    </td>
  </tr>
  <tr>
    <td id="body" valign="top"></td>
    <td id="footer" valign="bottom"><img src="spacer.gif" alt></td>
  </tr>
</table>

1996 – PHP

<?php include('includes/head.php'); ?>
<table>
  <?php include('includes/nav.php'); ?>
  <tr>
    <td id="body" valign="top"></td>
    <?php include('includes/footer.php'); ?>
  </tr>
</table>

2000 – CSS

CSS Zen Garden homepage screenshot

2004 – JavaScript II

function getFile(url) {
  if (window.XMLHttpRequest) {
    AJAX=new XMLHttpRequest();
  } else {
    AJAX=new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (AJAX) {
     AJAX.open("GET", url, false);
     AJAX.send(null);
     return AJAX.responseText;
  } else {
     return false;
  }
}

25 ans plus tard

Webapps

Backbone Angular JS Ember JS Batman JS React JS

DevUI

  • Pas un développpeur Back
    mais doit maîtriser les échanges serveur
  • Pas un intégrateur
    mais doit connaître parfaitement CSS / A11y
  • Pas un designer
    mais une compétence en animations/Canvas/WebGL serait un plus

DevUI

it's soooo coooooool…

Brad Pitt is doing a winning dance

Stack ou Pasta ?

Pasta

Browser is a VM

HTML5 / JS / CSS 3

Tu veux voir
ma stack ?

Let's Go Again!

System

Shell

  • Bash + Bash-it
  • ZSH + Oh-My-ZSH
  • Bonus level: Utilisez le prompt My shell prompt

Ruby

  • rbenv
    (jetez moi cette *%$@#! de rvm, vous serez sympas)
  • Bundler + Gemfile
    source 'https://rubygems.org'
    
    gem 'sass', '=3.4.5'
    gem 'compass', '=1.0.1'

Python

  • pyenv + pyenv-virtualenv
  • pip
    $ easy_install pip
    $ pip install -r requirements.txt

Node

  • ndenv
  • npm + package.json
    $ npm init
    
    $ npm install grunt --save-dev
    $ npm install browserify --save

Front-end
dependencies

Packages managers

  • NPM + package.json
    $ npm install
    $ ls -l node_modules
    
  • Bower + bower.json
    $ npm install -g bower
    $ bower install
    $ ls -l bower_components

Automation

Tasks runner

  • Grunt.js + Gruntfile.{js,coffee}
  • Gulp.js + gulpfile.js
  • Bonus level: Make / Rake / Ant

Scaffolding

  • Yeoman
  • Brunch.io

Testing

Boxes

  • Docker.io
  • Vagrant

Provisionning

  • Puppet
  • Chef
  • SaltStack
  • Ansible

JS tests frameworks

  • Sinon.js
  • Mocha.js
  • Bonus level: Gremlins.js

Scripting tests

  • Gherkin
  • Cucumber

Back to code

CSS tools

  • Sass & frameworks (Compass, Bourbon…)
  • Less
  • Stylus
  • Auto-prefixer

Linters

  • CSSlint
  • JSHint + .jshintrc
  • JSCS + .jscsrc

Templating

✌︎ Liquid Syntax

  • Ruby : Liquid
  • Python : Jinja2
  • PHP : Twig
  • JS : Nunjucks / Swig
  • Bonus level: handlebars, mustache…

Modules

  • AMD : require.js / almond.js
  • CommonJS : Browserify

Devtools

  • LiveReload / fb-flo
  • Browser Devtools Flamechart profiling
  • Headless browsers
    (Selenium, PhantomJS, SlimerJS, CasperJS)

Devops

Continuous
Integration

  • Code Quality : Code Climate, SonarHQ
  • CI : Jenkins, Travis

Deploiement

  • Fabric
  • Capistrano
  • Provisioners

Brace yourselves

Choose your tools

Vous êtes seul maître de vos outils.

Questions ?

Merci !

//talks.m4dz.net/pssst_tu_veux_voir_ma_stack.html

Crédits

Images
  • Curve Desert Dunes
  • Blue sky desert future
  • Pasta
    Licence Creative Commons
  • Analog camera black cameras
  • Marty doc
  • Animal macro shell
  • Architecture books building
  • Pattern triangles
  • Industry old shut
  • Bagger building building site
  • Black and white electricity power lines
  • Path railroad rails
  • You Killed the Beast, Killer!!!
    By spike55151 // Licence Creative Commons
Fonts