Les outils

Github

L'ensemble du code de Focus est hébergé sur Github. Github c'est:

  • Un gestionnaire de code source basé sur GIT
  • Un gestionnaire de bugs / questions
  • Un outil de revue de code collaboratif
  • Un workflow de développement
  • Une intégration avec beaucoup de systèmes externes (travis, heroku, ...)
  • Un tableau de bord des activités de développements (commits, issues, ...)

Les fonctionnalités de Github sont décrites en détail ici.

Vous pouvez suivre un tutorial de 15 minutes interactif très simple sur git ici.

Les projets git de Kleegroup

Développement

Node

Node.js. est un moteur d'exécution JavaScript construit sur le moteur JavaScript V8 de Chrome. Node.js utilise un, non-bloquant modèle I / O event-driven qui le rend léger et efficace. Ensemble de l'écosystème de Node.js, npm, est le plus grand écosystème de bibliothèques open source dans le monde.

npm

npm qui signifie node package module est le gestionnaire de dépendances de node.js. Il est installé en même temps que ce dernier. C'est aujourd'hui le gestionnaire de dépendances le plus fourni, tout langage confondu. Il suit la logique unix, un package doit être simple et modulaire. Les packages node doivent dans la mesure du possible suivre le Semantic Versionning. Les livrables techniques de Focus sont hébergés sur npm. Si vous souhaitez en savoir plus sur npm.

Babel

Babel est un compilateur Javascript (dernière spécification du langage ES6 / 2015 ou ES7 / 2016) vers Javascript (version stable dans les navigateur récents ES5). Il permet d'utiliser les dernières versions du langages dans le développement de tous les jours tout en restant compatibles avec les navigateurs cibles. La transformation du code permet également des améliorations / optimisations sur ce dernier.

Webpack

Webpack est un outil servant à développer et packager une application construite sous forme de module. Ces modules peuvent provenir de différentes sources:

  • npm
  • Les modules développés par nos soins
  • Les modules développés par vous

Une application est un module composé de modules.

Webpack permet donc de travailler de manière modulaire et de choisir ce que l'on veut en sortie (un fichier JS, plusieurs fichiers JS). Webpack est également configurable via un système de plugins. Il ne fonctionne pas que pour le JavaScript, il fonctionne égalemeent pour les images, les polices, le style (CSS, SASS, ...).

C'est un outil qui fonctionne en mode différentiel et permet de recharger la page du navigateur en temps réel quand vous modifiez un fichier.

Une aide à la configuration de webpack a été réalisée par l'équipe focus: webpack-focus

Brunch

C'est l'outil qu'on utilisait avant Webpack en interne, il fonctionne globalement de la même manière (en mode différentiel), mais n'est pas aussi efficace avec les modules nodes et dispose d'un jeu de plugins moins fournis. Il est cependant très rapide pour transformer les sources et dispose d'une configuration très simple pour démarrer rapidement. Il est également associé à un système de squelette très efficace pour mettre en place rapidement un projet.

Eslint

JavaScript étant un langage dynamique et peu typé, est sujet à l'erreur de développeur. Sans le bénéfice d'un processus de compilation, le code JavaScript est généralement exécuté afin de trouver la syntaxe ou d'autres erreurs. ESLint permettent aux développeurs de découvrir des problèmes avec leur code JavaScript sans l'exécuter.

La principale motivation pour créer ESLint a été créée était de permettre aux développeurs de créer leurs propres règles. ESLint est conçu pour avoir toutes les règles de base (comme jshint ou jslint). Les règles par défaut sont écrites comme des règles du plugin serait. Ils peuvent tous suivre le même modèle, à la fois pour les règles elles-mêmes ainsi que des tests. Alors que ESLint sera livré avec des règles intégrées pour le rendre utile dès le début, vous serez en mesure de charger dynamiquement règles à tout moment. Focus a regroupé un certains nombre de règles existantes afin de bénéficier de règles de codage communes à l'échelle de l'entreprise: eslint-config-focus

travis

Travis est un outil d'intégration continue extrèmement simple à configurer et efficace. Il fonctionne en mode SASS est est gratuit pour les projets open sources. Il permet d'accéder à un rapport complet d'exécution en cas d'erreur sur les tests.

Communication / Organisation

Slack

Afin de réaliser notre veille et de communiquer en interne nous utilisons slack qui permet de dialoguer et de s'intégrer avec une multitude de systèmes (github, travis, trello, ...)