Libs, framework et CMS
Face à un besoin particulier.
Le langage et des librairies
Cas d'utilisation :
- Un petit service léger (API).
- Une tâche unique sur le système.
- Un besoin ou une envie de monter une architecture sur-mesure.
Une exception notable : Clojure. Il n'y a pas de framework web notamment. Tous les projets se font en composant des librairies en fonction des besoins.
En web on peut citer :
- Sinatra dans le monde Ruby
- Flask dans le monde Python
- Des clones de ces deux libs dans différents langages
Les frameworks
C'est un ensemble de librairies choisies et de conventions établies autour d'une documentation fournie.
Cas d'utilisation :
- Besoin de prototyper rapidement avec des règles métier sur-mesure.
- Avoir des conventions communes et une documentation établie pour une équipre
En web backend on peut citer :
- Ruby on Rails dans le monde Ruby
- Django dans le monde Python
- Symphony et Laravel dans le monde PHP
- Spring et Play dans le monde Java.
En web frontend, on peut citer :
- React + Redux, Vue.js, Angular, Ember dans le monde Javascript
- Elm
- Re-frame dans le monde ClojureScript
Les CMS
Ce sont des outils qui répondent souvent à un besoin particulier et exposent peu le code sous-jacent.
On peu citer Wordpress, Drupal et Joomla.
Tant que l'outil correspond au besoin, tout va bien. Les problèmes peuvent survenir lorsque l'on commence à tordre l'outil pour qu'il remplisse un besoin métier particulier ou qu'il faille développer un plugin sur-mesure.