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 :

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 = [
'
',
'
',
'
',
'
'].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 :

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.