URL: https://linuxfr.org/users/epeios/journaux/le-developpement-full-stack-facilite Title: Le développement full-stack facilité Authors: Claude SIMON Date: 2018年07月26日T15:30:17+02:00 License: CC By-SA Tags: fullstack, développement_web, nodejs et php Score: 5 - [Introduction](#introduction) - [*Hello, World!*](#hello-world) - [*TodoMVC*](#todomvc) - [Quelques liens](#quelques-liens) # Introduction En avant-première, voici le prototype de la nouvelle version d'une bibliothèque permettant de gérer *front-end* et *back-end* à partir de la même base de code, facilitant ainsi le développement *fullstack* (pour utiliser un terme à la mode). La version présentée ici est pour *Node.js*, mais les versions *Java* et *PHP* (en attendant d'autres langages) devraient suivre sous peu (un journal sera publié le moment venu). # *Hello, World!* Pour faciliter la compréhension des principes de base, j'ai développé un genre de [*Hello, World*](https://fr.wikipedia.org/wiki/Hello_world), qui ressemble à ça : ![Hello, World! with the Atlas toolkit](https://q37.info/download/assets/Hello.gif "Hello, World!") Pour l'essayer, c'est très simple : - Installez, si ce n'est déjà fait, [*Node.js*](https://nodejs.org/), - installez le module [*atlastk*](https://www.npmjs.com/package/atlastk) (`npm install atlastk`), - dans le même répertoire, créez un fichier appelé `Hello.js` avec le contenu suivant (ou récupérez ce fichier directement [ici](https://q37.info/download/assets/Hello.js)) : ```javascript const atlas = require( 'atlastk' ); const head = [ '"Hello, World !" example', '', ].join('\n'); const body = [ '
', '
', '
', ' ', ' ', ' ', '
', '

', ' Hello ', ' ', ' !', '

', ' ', '
', '
'].join('\n'); const callbacks = { "Connect": (dom, id) => dom.headUp(head, () => dom.setLayout("", body)), "Typing": (dom, id) => dom.getContent(id, (name) => dom.setContent("name", name)), "Clear": (dom, id) => dom.confirm("Are you sure ?", (answer) => { if (answer) dom.setContents({ "input": "", "name": "" }) }), }; atlas.launch(() => new atlas.DOM(), "Connect", callbacks); ``` - lancez, toujours du même répertoire, `node Hello.js`. # *TodoMVC* Comme exemple plus évolué, il y a l'application du projet [*TodoMVC*](https://todomvc.com), qui ressemble à ça : ![The TodoMVC app. with the Atlas toolkit](https://q37.info/download/assets/TodoMVC.gif "TodoMVC") Pour l'essayer, ce n'est guère plus compliqué. Avec *Node.js* déjà d'installé : - récupérer le contenu du *repository* (avec *git* d'installé : `git clone https://github.com/epeios-q37/todomvc-node`), - lancer, de l'intérieur du *repository* récupéré, `npm install`, - lancer, toujours du même endroit, `node main.js`. # Quelques liens Une documentation de l'*API* de cette bibliothèque est disponible à l'adresse . Le reste du site n'a pas encore été mis à jour ; il le sera lorsque cette nouvelle *API* sera également disponible pour *Java* et *PHP*. En particulier, contrairement à ce qui indiqué sur le site, l'utilisation de *XSL(T)* n'est plus obligatoire (mais néanmoins toujours possible) ; vous pouvez générer le code *HTML* nécessaire *a la mano*, ou avec le moteur de *template* de votre choix. Voici les liens vers les sources des différents composants logiciels : - - - - Les deux premiers sont installés localement, mais seul le code *JavaScript* destiné à être exécuté par *Node.js* est utilisé (le code source *C++* contenu dans le répertoire `src` n'est, lui, pas utilisé). Les deux derniers contiennent du code natif, mais ne sont pas installés localement.

AltStyle によって変換されたページ (->オリジナル) /