saloon : débuter simplement une application web avec erlang et angular

Posté par (page perso) . Édité par Benoît Sibaud, Nÿco, palm123 et Bruno Michel. Modéré par tuiu pol. Licence CC by-sa
17
4
fév.
2016
Programmation fonctionnelle

Le problème des piles pour applications web

Si vous avez déjà cherché à développer une appli web moderne, vous avez déjà dû vous heurter à la question de choisir les bons composants parmi la foultitude de ceux existants… et surtout les faire fonctionner.

Premièrement, quand je parle d'applis web modernes, il faut savoir qu'elles partagent en général cette architecture :

  • un serveur HTTP,
  • un cadriciel pour exposer des API REST,
  • un cadriciel JavaScript pour la partie frontend: il consomme les API REST et met en forme les données en HTML,
  • un système de construction (build), ou plutôt des, la partie serveur et la partie frontend utilisant en général un système différent.

Bref, il fait fonctionner tout cela ensemble, vérifier les incompatibilités, etc.

Les générateurs d'applications yeoman

Le projet yeoman vise à fournir des générateurs d'applications qui intègrent des piles complètes et prêtes à l'emploi dans le domaine des applis web. Même si le projet est issu de la communauté node.js, on peut aisément écrire des générateurs pour n'importe quelle techno.

saloon, faites entrer le cowboy

Le générateur saloon (licence Apache v2) est un générateur yeoman pour débuter simplement une application web avec erlang et angular.

Il intègre les composants suivants:

  • partie serveur:
  • partie frontend:
    • bootstrap pour des composants graphiques pas trop moches,
    • angular.js, le cadriciel bien connu pour faire des applis web dynamiques,
    • Sass pour faciliter l'écriture de CSS,
  • intégration / construction: un projet généré avec saloon est construit avec make et intègre:
    • pour la partie serveur: erlang.mk, l'excellent Makefile pour erlang,
    • pour la partie javascript:
    • Bower pour les dépendances javascript,
    • Grunt pour la partie javascript qui a besoin d'être construite.

Comment se lancer ?

Il vous suffit de lancer yo saloon dans un répertoire vide, puis de lancer make. Vous avez alors une appli prête à l'emploi que vous pouvez modifier / étendre comme bon vous semble. Mais toutes les bases sont là et fonctionnelles.

  • # Et après ?

    Posté par . Évalué à 7.

    Non, vu comme cela, c'est tentant. C'est une belle mise en bouche. Mais après, je fais quoi ? Je modifie quoi ?

    Je n'ai pas, rapidement, trouvez une doc pour faire un simple helloworld. Je reste un peu sur ma fain.

    • [^] # Re: Et après ?

      Posté par (page perso) . Évalué à 1.

      Pour le moment, je conseillerais de vous reporter à la documentation respective de:

      … pour étendre la partie backend.

      Et angular / bootstrap pour la partie frontend.

      Bien sûr, il serait mieux d'inclure une documentation qui explique précisément où étendre le code.

      Dans tous les cas, le but du générateur est plus d'avoir les bons outils en place que d'écrire l'application à votre place.

  • # Un peu HS, phoenix / elixir

    Posté par (page perso) . Évalué à 1.

    Un peu HS puisque le framework phoenix est écrit en elixir qui tourne sur la VM erlang.

    Phoenix utilise ecto, cowboy et tout un tas d'autres projets erlang éprouvés, dans un bel écrin d'outils et de convention issues de ruby on rails (parenté oblige). L'outil mix permet donc de générer un modèle d'application bien structuré, avec models, vues, streams, tests, migrations, config, asset pipeline (brunch) …

    C'est très agréable ce mélange de nouveauté et de maturité.

    • [^] # Re: Un peu HS, phoenix / elixir

      Posté par . Évalué à 2.

      Je confirme, je suis en train de porter une appli vers phoenix et c'est un écosytème extrèmement agréable.

      Toute la partie OTP venant d'Erlang permet des architectures que je n'aurait jamais osé implémenter avec d'autres stacks. Erlang/Elixir c'est du robuste.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.