Slides de la présentation Grunt, Bower, Yeoman ou comment automatiser un projet web SPA aux Microsoft TechDays 2015.
Introduction aux outils Grunt, Bower, Yeoman et en quoi ils sont liés.
Dans cette session, nous présenterons les bienfaits de l'automatisation, notamment dans les projets web complexes.
Slide for my presentation at JugSummerCamp about integration of JavaScript in software factory. First trying to use Java Tools like Maven, then embrassing JavaScript Tools like Grunt and Bower.
Jenkins Workflow plugin lets you write Jenkins jobs as pipelines using the Groovy programming language
Talk given in french at the Lyon JUG - 15/12/2015
Création d’application facile en html via node-webkitIsenDev
Réaliser des applications portables sur les différents systèmes d’exploitation peut sembler difficile. En effet, il peut y avoir des différences entre les divers codes. Une solution web permet une homogénéité du résultat, mais nous prive du mode complètement hors-ligne et des fonctionnalités apportées par un code natif. Node-webkit nous permet de combiner au maximum les avantages de chaque type.
Présentation réalisé par SAEZ Jonathan.
...par Dimitri Durieux (CETIC) le 23 septembre 2015.
Jenkins est un outil open source d'automatisation de tâches et d'intégration continue, relativement facile à mettre en oeuvre, et qui permet de gagner du temps sur toutes les étapes automatiques de la production de logiciel : build, lancement de tests unitaire, qualité de code...
Un bon outil à connaître et à installer tôt, pour gagner du temps ensuite !
Slide for my presentation at JugSummerCamp about integration of JavaScript in software factory. First trying to use Java Tools like Maven, then embrassing JavaScript Tools like Grunt and Bower.
Jenkins Workflow plugin lets you write Jenkins jobs as pipelines using the Groovy programming language
Talk given in french at the Lyon JUG - 15/12/2015
Création d’application facile en html via node-webkitIsenDev
Réaliser des applications portables sur les différents systèmes d’exploitation peut sembler difficile. En effet, il peut y avoir des différences entre les divers codes. Une solution web permet une homogénéité du résultat, mais nous prive du mode complètement hors-ligne et des fonctionnalités apportées par un code natif. Node-webkit nous permet de combiner au maximum les avantages de chaque type.
Présentation réalisé par SAEZ Jonathan.
...par Dimitri Durieux (CETIC) le 23 septembre 2015.
Jenkins est un outil open source d'automatisation de tâches et d'intégration continue, relativement facile à mettre en oeuvre, et qui permet de gagner du temps sur toutes les étapes automatiques de la production de logiciel : build, lancement de tests unitaire, qualité de code...
Un bon outil à connaître et à installer tôt, pour gagner du temps ensuite !
How to develop with Angular in a JHipster Application ?
Discover the ecosystem, the benefits and the risks about using the latest framework from Google within the popular application generator.
Déployez votre site PHP / MariaDB, simplement et rapidement dans AzureMicrosoft
La base de données MariaDB (fork de MySQL) connaît une croissance annuelle supérieure à 400% depuis son lancement. Elle s'impose comme une puissante alternative couvrant aussi bien le SQL, le NoSQL, le Cloud (SaaS, PaaS...) et les contraintes quotidiennes. Cette session PHP/MariaDB abordera 4 axes : - Comprendre les fondamentaux du déploiement d'un site PHP (Application Drupal) dans Azure Websites ainsi que ses bénéfices (Elasticité dynamique, environnement de prod/pré-prod et couplage Git...). - Les notions premières à connaître pour réussir l'installation de MariaDB dans des Cloud Services Azure, ainsi que son utilisation avec le langage dynamique PHP. - Les différentes possibilités de communiquer, d'échanger des données entre les différents outils Microsoft (Office, ODBC, SQL...) et les 'storages engines overview' disponibles dans MariaDB - Enfin, le dernier point s'attardera sur quelques possibilités d'automatisation de déploiement dans Azure, et d'optimisation de la performance / la scalabilité, en voyant la multi-réplication dans un ou plusieurs Cloud Services (MariaDB Galera cluster)
Présentation Versusmind de la Plateforme Meteor par Arthur Maroulier : Meteor est une série de projets 100% open source intégrés pour créer une plateforme d'application JavaScript complète pour le développement d'applications réactives sur web et mobile.
Lombok : la fin des setters et getters pour les POJOs
- Injection des setters et getters
- Intégration du pattern builder
- Intégration facile de différents types de Logger
WordCamp Lyon 2015 - WordPress, Git et l'intégration continueStéphane HULARD
Retour d'expérience sur les pratiques que j'utilise au quotidien pour l'industrialisation de mes développements WordPress...
https://lyon.wordcamp.org/2015/session/wordpress-git-et-lintegration-continue/
Intégration Continue PHP avec Jenkins CIHugo Hamon
Comment assurer le suivi qualite du code source d'une application web? Ce n'est pas une tache aisée ! C’est d’autant plus vrai que PHP est encore considéré aujourd'hui comme un langage peu professionnel. PHP est pourtant un langage dont l'outillage n'a rien a envier a l'ensemble de ses concurrents. L'objectif de cette conférence est de présenter les bonnes pratiques à adopter ainsi que les différents outils a mettre en oeuvre afin de contrôler la qualité d'un projet PHP au quotidien. Un focus particulier sera porté sur la plateforme d'intégration continue Jenkins, les tests unitaires ou bien encore la récupération et l'interprétation des métriques collectées.
C’est quoi DevOps ?
DevOps (Abrégé pour le développement et les opérations). comme toutes autre approche, il n’est qu’un buzzword pour la plupart des gens ...
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?Membré Guillaume
Présentation au Jug de Nantes le 15 mai 2017
Si vous croyez que Docker et les Pipelines ne servent qu'aux chargements et transport de conteneurs, Jenkins, votre fidèle serviteur, vous montrera comment en tirer le meilleur parti.
Conférence donnée au JUG Nantes, mai 2017
Développement : mettez le turbo ! - Liferay France Symposium 2017Sébastien Le Marchand
Pendant les phases de développement, les temps d’attente et les tâches répétitives ont trop souvent tendance à s’inviter de manière récurrente. Cette session sera l’occasion de découvrir ou redécouvrir des pratiques et des outils pour ne plus perdre de temps et renouer avec la productivité, dans le contexte d’un projet Liferay.
PRÉ CADASTRO- C3 NETWORK INTERNACIONAL -
http://internacional.bigc3.com/douglassantos
Apresentação Rápida:http://youtu.be/ohBfnXnwYZA
Podemos destacar alguns pontos importantes tais como: um comissionamento gradual onde quanto mais indicados diretos, maiores serão seus ganhos, o comissionamento por indicação direta agora vai até o seu 10º nível de indicação, existirão 2 tipos de ganhos residuais, premiações diversas por desempenho, será possível ativação imediata de novas franquias com seu próprio saldo, transferências entre contas também será possível, saques via cartão e muito mais ...
Será um grande prazer poder contar com você na primeira linha de líderes do Projeto C3 Internacional e vale lembrar que a plataforma nacional continuará normalmente e serão duas redes independentes, sendo assim você pode ter uma franquia nacional e várias internacionais.
07/04 back office pronto para acesso
13/04 lançamento oficial c3 internacional
Após 13/04, todos poderão utilizar o saldo de seus back offices para efetuar o cadastro de sua rede. Em breve estará no ar a TV C3...um canal interativo de notícias sobre tudo o q acontece na C3 pelo mundo.
Aguardem!
Open Access : Enjeux et Actualités - BianchiniMyScienceWork
Courte introduction de Laurence Bianchini / MyScienceWork le 7 février 2014 dans le cadre du Salon du Livre d'Histoire des Sciences et Techniques de la municipalité d'Ivry-sur-Seine.
How to develop with Angular in a JHipster Application ?
Discover the ecosystem, the benefits and the risks about using the latest framework from Google within the popular application generator.
Déployez votre site PHP / MariaDB, simplement et rapidement dans AzureMicrosoft
La base de données MariaDB (fork de MySQL) connaît une croissance annuelle supérieure à 400% depuis son lancement. Elle s'impose comme une puissante alternative couvrant aussi bien le SQL, le NoSQL, le Cloud (SaaS, PaaS...) et les contraintes quotidiennes. Cette session PHP/MariaDB abordera 4 axes : - Comprendre les fondamentaux du déploiement d'un site PHP (Application Drupal) dans Azure Websites ainsi que ses bénéfices (Elasticité dynamique, environnement de prod/pré-prod et couplage Git...). - Les notions premières à connaître pour réussir l'installation de MariaDB dans des Cloud Services Azure, ainsi que son utilisation avec le langage dynamique PHP. - Les différentes possibilités de communiquer, d'échanger des données entre les différents outils Microsoft (Office, ODBC, SQL...) et les 'storages engines overview' disponibles dans MariaDB - Enfin, le dernier point s'attardera sur quelques possibilités d'automatisation de déploiement dans Azure, et d'optimisation de la performance / la scalabilité, en voyant la multi-réplication dans un ou plusieurs Cloud Services (MariaDB Galera cluster)
Présentation Versusmind de la Plateforme Meteor par Arthur Maroulier : Meteor est une série de projets 100% open source intégrés pour créer une plateforme d'application JavaScript complète pour le développement d'applications réactives sur web et mobile.
Lombok : la fin des setters et getters pour les POJOs
- Injection des setters et getters
- Intégration du pattern builder
- Intégration facile de différents types de Logger
WordCamp Lyon 2015 - WordPress, Git et l'intégration continueStéphane HULARD
Retour d'expérience sur les pratiques que j'utilise au quotidien pour l'industrialisation de mes développements WordPress...
https://lyon.wordcamp.org/2015/session/wordpress-git-et-lintegration-continue/
Intégration Continue PHP avec Jenkins CIHugo Hamon
Comment assurer le suivi qualite du code source d'une application web? Ce n'est pas une tache aisée ! C’est d’autant plus vrai que PHP est encore considéré aujourd'hui comme un langage peu professionnel. PHP est pourtant un langage dont l'outillage n'a rien a envier a l'ensemble de ses concurrents. L'objectif de cette conférence est de présenter les bonnes pratiques à adopter ainsi que les différents outils a mettre en oeuvre afin de contrôler la qualité d'un projet PHP au quotidien. Un focus particulier sera porté sur la plateforme d'intégration continue Jenkins, les tests unitaires ou bien encore la récupération et l'interprétation des métriques collectées.
C’est quoi DevOps ?
DevOps (Abrégé pour le développement et les opérations). comme toutes autre approche, il n’est qu’un buzzword pour la plupart des gens ...
CI, CD, pipelines, conteneurs : la cohabitation est elle possible ?Membré Guillaume
Présentation au Jug de Nantes le 15 mai 2017
Si vous croyez que Docker et les Pipelines ne servent qu'aux chargements et transport de conteneurs, Jenkins, votre fidèle serviteur, vous montrera comment en tirer le meilleur parti.
Conférence donnée au JUG Nantes, mai 2017
Développement : mettez le turbo ! - Liferay France Symposium 2017Sébastien Le Marchand
Pendant les phases de développement, les temps d’attente et les tâches répétitives ont trop souvent tendance à s’inviter de manière récurrente. Cette session sera l’occasion de découvrir ou redécouvrir des pratiques et des outils pour ne plus perdre de temps et renouer avec la productivité, dans le contexte d’un projet Liferay.
PRÉ CADASTRO- C3 NETWORK INTERNACIONAL -
http://internacional.bigc3.com/douglassantos
Apresentação Rápida:http://youtu.be/ohBfnXnwYZA
Podemos destacar alguns pontos importantes tais como: um comissionamento gradual onde quanto mais indicados diretos, maiores serão seus ganhos, o comissionamento por indicação direta agora vai até o seu 10º nível de indicação, existirão 2 tipos de ganhos residuais, premiações diversas por desempenho, será possível ativação imediata de novas franquias com seu próprio saldo, transferências entre contas também será possível, saques via cartão e muito mais ...
Será um grande prazer poder contar com você na primeira linha de líderes do Projeto C3 Internacional e vale lembrar que a plataforma nacional continuará normalmente e serão duas redes independentes, sendo assim você pode ter uma franquia nacional e várias internacionais.
07/04 back office pronto para acesso
13/04 lançamento oficial c3 internacional
Após 13/04, todos poderão utilizar o saldo de seus back offices para efetuar o cadastro de sua rede. Em breve estará no ar a TV C3...um canal interativo de notícias sobre tudo o q acontece na C3 pelo mundo.
Aguardem!
Open Access : Enjeux et Actualités - BianchiniMyScienceWork
Courte introduction de Laurence Bianchini / MyScienceWork le 7 février 2014 dans le cadre du Salon du Livre d'Histoire des Sciences et Techniques de la municipalité d'Ivry-sur-Seine.
Optimiser sa visibilité sur le web en améliorant son référencement.
Qu'est ce que le référencement ?
Comment travaille Google ?
Quel est le comportement de l'internaute ?
Les astuces pour améliorer son référencement
Discorso del presidente Thomas Sankara tenuto il 17 novembre 1986 all'arrivo del presidente François Mitterrand in visita ufficiale nel Burkina Faso. Il 15 ottobre 1987 sarà vittima di un colpo di stato.
Community Management - Social Media - Collaborative starterAstrolab Consulting
La méthode Collaborative Starter développée par le cabinet Astrolab Communication a pour objectif d'aider les entreprises à initier l'identification, l'appropriation et l'organisation des communautés permettant de supporter l'organisation et ses objectifs.
Cette méthode repose sur la méthode de l'investigation appréciative qui est une démarche volontairement centrée sur les solutions, qui s’appuie sur les réussites, les forces et les atouts des équipes pour définir des ambitions et des engagements individuels et collectifs de réalisation.
Pour accroître le référencement et la visibilité de votre établissement sur internet, LA chose à faire est de créer votre google + local. Place à la pratique...
Rôle des français de l'étranger pour faire rayonner la 'Marque France', les M...Elian CARSENAT
Colloque ENS/Sorbonne 2014La Diplomatie économique des entreprises et de l’Etat français
Rôle des français de l'étranger pour faire rayonner la 'Marque France', les Marques de France
Automatisez vos tâches répétitives avec Grunt (Blend 2013)Corinne Schillinger
Cette présentation vous propose de découvrir les possibilités offertes par Grunt, et de voir comment automatiser certaines tâches telles que la compilation des feuilles de styles, la concaténation et minification des fichiers JavaScript ou encore l'optimisation des images.
Présentation de Maven et de son utilisation en entreprise dans le cadre du Ch'ti JUG, le 15 juin 2009.
Pourquoi Maven ? Pourquoi l'adopter ? Les bonnes et mauvaise pratiques. Son avenir ...
Cycle de vie d'un projet web agile avec TFS 2013, Azure VM et MonacoMicrosoft
Je réalise un projet web en mode agile. TFS 2013 et Visual Studio Online peuvent-ils m'aider ? Comment ? » Venez voir comment l'ensemble des possibilités de TFS 2013 combiné à Visual Studio 2013 supporte la réalisation d'un projet Web en Scrum grâce (entre autre) aux déploiements automatiques dans des VMs Azure et aux nouvelles capacités de Visual Studio Online. Le programme consistera en un jeu de rôle combinant les capacités de Visual Studio 2013, le pilotage projet grâce à TFS (organisation des scénarios et des tâches), comment faire le standup meeting avec l'interface web (planification et décomposition des scénarios / exigences), le code review, la création de tests unitaires, la création d’une infrastructure Azure pour gérer les déploiements automatiques, et enfin l'exécution des tests utilisateurs suite à la demande de revue par le client.
Speakers : Franck Farré (SQLI), Fabrice Hautot (SQLI)
Bien que Docker soit facile d'utilisation, construire une image reste un exercice compliqué.
Optimisation, layers, et sécurité nécessitent de s'abstraire des Dockerfile basiques qu'on peut trouver sur internet.
Dans ce BBL, nous verrons comment bien packager une application Spring Boot dans une image Docker/OCI.
Nous allons parcourir les bonnes pratiques préconisées par Spring, les pièges à éviter, comment bien écrire un Dockerfile pour optimiser la construction et l'image finale pour une exécution dans Kubernetes et nous verrons aussi des moyens alternatifs de construction d'images Spring Boot et l'outillage d'analyse à ajouter à votre toolbox.
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
L’arrivée de PHP 5.3 en milieu d’année 2009 a bouleversé la manière de développer des applications web. En effet, cette nouvelle version a apporté de nouveaux outils au langage tels que les espaces de nommage qui favorisent la réutilisabilité du code lorsqu’ils sont employés à bon escient. Les nouveaux frameworks de développement rapide ont aussi suivi le mouvement et reposent sur la base de PHP 5.3. C’est le cas de Symfony2 dont la version stable est prévue prochainement.
Cette présentation offre un tour d’horizon de la nouvelle architecture du framework qui s’articule autour de “bundles”, de librairies externes et de nombreux composants indépendants tels que le conteneur d’injection de dépendances. Nous dresserons un panorama des principales fonctionnalités offertes par le framework telles que la couche d’ORM Doctrine 2, le moteur de templating Twig et la gestion des formulaires. Nous nous intéresserons également à la gestion du cache HTTP, à la couche de sécurité ainsi qu’aux outils de débogage destinés à améliorer la productivité du développeur et la maintenance de l’application.
La conception d'application Web complexe se reposant sur un socle JavaScript devient monnaie courante.
De ce fait, nous nous devons de nous outiller, ainsi que d'utiliser des frameworks adéquats.
Cette présentation a pour but de vous faire découvrir l'un de ces frameworks: RequireJS.
Nous verrons alors que nous pouvons produire des applications modulaires avec gestion de dépendances simplement, permettant ainsi d'avoir des applications qui se chargent rapidement alors que nous avons un découpage complexe, mais aussi des applications maintenables et testables facilement.
Voir: http://humantalks.com/talks/26-apercu-de-requirejs
Avec l'arrivée des Single Page Applications avec du code côté client de plus en plus complexe il est grand temps de commencer à penser à bien tester notre code JavaScript. Aujourd'hui il existe déjà plusieurs façons d'écrire des tests côté client mais ça peut paraître encore très compliqué.
Dans cette présentation je vais montrer une solution simple et qui marche bien pour mes projets web: Node.js comme runtime, npm comme package manager, gulp comme task runner, jasmine comme librairie de test ainsi que le Task Runner Explorer de Visual Studio.
Comment débuter en devops et apprendre à réaliser son premier pipeline. Très facilement et en toute simplicité.
Une formation gratuite pour s'initier au devops.
https://youtu.be/tiSfXCM8VTw
https://gitlab.com/xavki/pipeline-saison-1
4. tech.days 2015#mstechdays
Gestion des dépendances
Compilation / Minification / Tests / Linting
Développement
Tâches récurrentes d’un projet web
Comment automatiser le développement d'un projet web SPA
5. tech.days 2015#mstechdays
Node.JS
Scripts simples mais puissant
Projet web donc javascript !
Outils d’automatisation
Comment automatiser le développement d'un projet web SPA
6. tech.days 2015#mstechdays
Bower ?
Grunt ?
Yeoman ?
Outils d’automatisation
Comment automatiser le développement d'un projet web SPA
8. tech.days 2015#mstechdays
Gestionnaire de librairies JS / CSS
Utilisé pour installer et mettre à jour les librairies
Assure l’intégrité des versions
Définition
Comment automatiser le développement d'un projet web SPA
9. tech.days 2015#mstechdays
Registre de librairies JS / CSS
Enregistre les versions dans un fichier bower.json
Arbre de dépendances plat
Comment ça marche ?
Comment automatiser le développement d'un projet web SPA
13. tech.days 2015#mstechdays
Gestionnaire de tâches Node.JS
Automatise les tâches récurrentes
Enormément de tâches dans NPM
Définition
Comment automatiser le développement d'un projet web SPA
14. tech.days 2015#mstechdays
Configuration dans un fichier Gruntfile.js
Tâches dans NPM ou en local
Simple !!
Comment ça marche ?
Comment automatiser le développement d'un projet web SPA
19. tech.days 2015#mstechdays
Gestionnaire de template de projets
Simplifie la création de projet et d’éléments
Force l’utilisation de bonnes pratiques
Définition
Comment automatiser le développement d'un projet web SPA
20. tech.days 2015#mstechdays
Générateurs dans NPM
Utilise Bower pour gérer les dépendances
Utilise Grunt pour gérer les tâches de compilation
Comment ça marche ?
Comment automatiser le développement d'un projet web SPA
21. Yeoman
# install yeoman
$ npm install –g yo
# install generator
$ npm install –g generator-backbone
# run generator
$ yo backbone
# run sub generator
$ yo backbone:model user
24. Create a simple Grunt Task
module.exports = function (grunt) {
grunt.registerTask("myCustomTask", function () {
// read package.json to get version
var pkg = grunt.file.readJSON("package.json");
// get the version.js content
var content = grunt.file.read("version.js");
// replace the tag {{version}} by the package’s version
content = content.replace("{{version}}", pkg.version);
// write the new content into version.js
grunt.file.write("version.js", content);
});
};
25. Create a multi Grunt Task
module.exports = function (grunt) {
grunt.registerMultiTask("myVersionTask", function () {
var pkg = grunt.file.readJSON("package.json");
// loop over configured files
this.files.forEach(function (file) {
// loop over src / dest match
file.src.forEach(function (src) {
var content = grunt.file.read(src);
content = content.replace("{{version}}", pkg.version);
grunt.file.write("version.js", file.dest);
});
});
});
};
26. Create a multi Grunt Task
module.exports = function (grunt) {
grunt.initConfig({
// task config
myVersionTask: {
dist: {
src: "app/**/*.js",
dest: "dist/"
}
}
});
// load task from local directory
grunt.loadTasks("tasks");
// alias task
grunt.registerTask("build", ["myVersionTask:dist"]);
};
34. tech.days 2015#mstechdays
Slides :
http://fr.slideshare.net/Touchify/grunt-bower-yeoman-ou-comment-
automatiser-un-projet-web-spa
Démo :
https://github.com/spatools/techdays2015
Documentations :
http://bower.io http://gruntjs.com http://yeoman.io
Liens
Comment automatiser le développement d'un projet web SPA
Projets web moderne
Beaucoup de librairies
Beaucoup de Javascript
Nécessité plus grande de travailler le javascript (compilation, concaténation, minification)
Beaucoup de librairies = long et fastidieux de gérer les versions
Beaucoup de javascript = énormément de tâches pour maintenir le javascript sain et léger
Tâches répétitives dans le développement = énormément de tâches répétitives (modèles, viewmodels, views, configuraiton)
Node.JS ? NPM ?
On fait du web donc on fait du javascript
Simple et puissant (beaucoup de package dans NPM)
Gestionnaires de librairies au même titre que NuGet ou NPM
Gère les versions et les dépendances
Registre pour recherche et informations sur les packages
Évite d’enregistrer les versions sur le repo
Requiert une seule version pour chaque package pour assurer la rapidité de chargement des page et force la vérification de la compatibilité des versions
Exemples de générateurs :
Webapp
Angular
MEAN
Backbone
Ember
Durandal
Bien fait Bonne pratiques
Maintient des bonnes pratiques grâces aux sub generators
Beaucoup de générateurs
Basé sur bower et grunt donc réutilisation des compétences
Run yo backbone in tmp
0.0.1 grunt serve
Run yo backbone:models user view router
0.0.3 grunt serve
Run model repository collection userrepo view repository
0.0.6 grunt serve
0.1.0 grunt serve (si -30min)