Un tuto qui introduit plein de manières de créer son parser/lexer en Java à partir d'une quinzaine de frameworks différents.
Tiré d'une traduction de Joël Sposky (cet homme est un vrai génie) :
Traduction un peu adaptée de l’article Why I hate framework de Joel Spolsky
J’ai voulu construire une petite étagère pour y ranger les condiments.
Ayant fait un peu de menuiserie avant, j’avais une bonne idée de ce dont j’avais besoin : un peu de bois et quelques outils de base. Un mètre, une scie, un niveau et un marteau.
D’ailleurs, si je voulais construire toute une maison, j’en aurais besoin également. Du coup je suis allé dans une quincaillerie, et j’ai demandé au vendeur où je pouvais trouver un marteau.
“- Un marteau ?”, me répondit-il. “Plus personne n’achète des marteaux de nos jours vous savez. Ils sont un peu vieux jeu.”
Surpris, je lui demande pourquoi.
– “Et bien, le problème avec les marteaux, c’est qu’il y en a plein de différents types. Des marteaux arrache-clou, des masses, des marteaux de tapissier… Que se passerait-il si vous achetiez un type de marteau et réalisiez que vous avez besoin d’un autre type plus tard ? Vous devriez achetez un autre marteau pour votre prochaine tâche. Il se trouve que la plupart des gens veulent vraiment un seul marteau qui peut être utilisé pour la majorité des tâches qu’ils peuvent rencontrer dans leur vie.”
– “Ça me parait logique. Pouvez-vous me dire où je peux trouver un marteau universel ?”
– “Non, nous ne les vendons plus. Ils sont obsolètes.”
– “Vraiment ? Je pensais que vous veniez de dire que le marteau universel était l’avenir.”
– “Il se trouve que, si vous faites un seul marteau qui puisse être utilisé pour toutes sortes de tâches, il n’est vraiment bon, à aucune d’entre elles. Enfoncer un clou avec une masse n’est pas très efficace. Et pour tuer votre petite amie, rien ne vaut un marteau de tapissier.”
– “C’est clair ! Donc, si plus personne n’achète des marteaux universels, et que vous ne vendez plus de marteaux à l’ancienne, quels marteaux vendez-vous ?”
– “En fait, nous n’en vendons pas.”
– “Alors…”
– “D’après nos recherches, ce dont les gens ont besoin n’est pas un marteau universel du tout. Il vaut toujours mieux avoir le bon marteau pour le bon boulot. Donc, nous avons commencé à vendre des fabriques de marteau, capable de produire n’importe quel marteau qui pourrait vous intéresser. Tout ce dont vous avez besoin est de remplir la fabrique de travailleurs, lancer la machinerie, acheter les matériaux de base, payer les charges et hop, vous avez exactement le type de marteau dont vous avez besoin en un clin d’œil.”
– “Mais je ne veux pas acheter une fabrique de marteaux…”
– “Parfait. Car nous n’en vendons plus.”
– “Attendez, vous venez de me dire que…”
– “Nous avons découvert que la plupart des gens n’ont pas besoin d’une fabrique complète de marteaux. Certains, par exemple, n’auront jamais besoin d’un marteau de tapissier. (Peut être qu’ils n’ont pas d’ex. Ou peut être qu’ils les ont tué avec des pics à glace.). Donc il n’y a aucune raison pour quelqu’un d’acheter une fabrique de marteaux pour tous les types de marteaux.”
– “Oui, c’est sûr.”
– “Donc, à la place, on a commencé à vendre les plans de constructions de la fabrique de marteaux, afin que nos clients puissent construire leurs propres fabriques, complètement personnalisées pour produire uniquement les types de marteaux dont ils ont besoin.”
– “Laissez-moi deviner. Vous ne les vendez plus.”
– “Non. Bien entendu. Il se trouve que les gens ne veulent pas construire toute une fabrique juste pour faire quelques marteaux. Laissez la construction des fabriques aux experts de construction de fabriques, c’est ce que je dis toujours !!”
– “Et je vous approuve sur ce point.”
– “Et oui. Donc nous avons arrêté de vendre ces plans et nous avons commencé à vendre des fabriques de fabriques de marteaux. Chacune d’elle est construite par nos experts dans le business de fabrique de fabrique de marteaux, afin que vous n’ayez pas à vous inquiéter des détails triviaux de la construction d’une fabrique. Malgré cela, vous avez tous les bénéfices d’avoir votre propre fabrique personnalisée, produisant vos propres marteaux personnalisés, collant à vos designs spécifiques en matière de marteau.”
– “Heu, ça ne me semble pas vraiment…”
– “Je sais ce que vous allez dire !! … et nous ne les vendons d’ailleurs plus. Apparemment, peu de gens achetaient ces fabriques de fabrique de marteaux, donc nous avons trouvé une solution à ce problème.”
– “Hum.”
– “Nous avons pris le temps de faire le bilan de notre infrastructure technique, et nous avons déterminé que les gens développaient une frustration à avoir à gérer et opérer une fabrique de fabrique de marteaux, tout comme la fabrique qu’elle produisait. Ce genre de contrainte additionnelle peut se révéler fastidieux quand vous vous retrouvez dans un scénario où vous utilisez également une fabrique de fabrique de mètres, une fabrique de fabrique de scies et une fabrique de fabrique de niveaux. Sans compter un conglomérat de transformation du bois. Nous avons objectivement évalué la situation, et déterminé que c’était trop complexe pour quelqu’un qui voulait juste créer une étagère pour condiments”.
– “Non, sans blague ?”
– “Du coup cette semaine, nous mettons sur le marché une fabrique de fabrique de fabrique de création d’outils en tout genre, pour qu’ainsi vos différentes fabriques de fabrique à outils puissent être créées à partir d’une seule fabrique unifiée. La fabrique de fabrique de fabrique produira uniquement la fabrique de fabrique dont vous avez réellement besoin, et ainsi ces fabriques de fabrique produiront une seule fabrique basée sur vos spécifications d’outils personnalisés. Vous aurez exactement le marteau dont vous avez besoin, et exactement le bon mètre pour votre tâche, juste en appuyant sur un bouton (même si vous aurez probablement quelques fichiers de configuration pour que tout fonctionne selon vos attentes).
– “Donc, vous n’avez pas de marteaux ? Pas du tout ?”
– “Non. Si vous voulez vraiment une étagère à condiments de haute qualité, de standard industriel, vous avez vraiment besoin de quelque chose de plus sophistiqué qu’un simple marteau acheté à la quincaillerie du coin.”
– “Ok… Bon. Il faut ce qu’il faut. Si c’est comme ça qu’on fait maintenant, il faut bien que je m’y mette.”
– “Excellent !!”
– “Ça vient avec une documentation, pas vrai ?”
GraphQL est une alternative très sérieuse à RESTful. Ce qui me pose encore problème pour l'adopter définitivement c'est la carence en frameworks afin de parser/lexer les requêtes reçues via HTTP et d'en assurer le mapping côté base de données.
Ici GraphQL Java apporte une première pierre à cet édifice avec un exemple d'implémentation simple mais concret.
Je viens de découvrir que JPA vous permet d'annoter les méthodes de vos entités (avec des annotations particulières), afin de les exécuter durant le cycle de vie de leur enregistrement :
- @javax.persistence.PrePersist
- @javax.persistence.PreRemove
- @javax.persistence.PreUpdate
- @javax.persistence.PostLoad
- @javax.persistence.PostPersist
- @javax.persistence.PostRemove
- @javax.persistence.PostUpdate
Je trouve que c'est une très bonne idée car cela peut être pratique, mais c'est aussi terrible car cela ajoute de la complexité à quelque chose comme Hibernate qui est trèèèèèèèèès loin d'être un framework simple à la prise en main.
Milligram pèse 2Ko gzippé. C'est bien moins que Bulma et il semble faire le taf. Pourquoi pas.
A curated list of awesome frameworks, libraries and software for the Java programming language.
Une liste gigantesque reprenant un par un les différents frameworks s'exécutant sur JVM.
Toutes les actus cools sur Kotlin et ses frameworks avec plein de liens et de tutos
The magical disappearing UI framework.
Le principe de Svelte me plaît beaucoup : vous codez votre GUI et il n'y a pas de framework, juste du code transpilé par Svelte.
Dit autrement, avec Aurelia ou Angular, nous avons besoin, au moment du run, de télécharger 250Ko à 950Ko de sources qui appartiennent au framework, ensuite seulement nous pouvons afficher notre SPA.
Svelte n'est pas un framework mais un transpiler qui va modifier votre code pour qu'il s'exécute directement, sans lib en pré-requis.
C'est plus léger à télécharger et cela évite l'overhead au run. En tant que DevOps, j'ajouterais que cela doit rendre la regénération de la SPA plus rapide avec un Gulp watcher + BrowserSync puisque moins d'étapes et moins de code à traiter.
Pour Chlouchloutte et Lenny... Votre avis ?
Plein d'effets en CSS, via un shaarliste.
@Doudou : pour effectuer des conversions rapides entre Beans <=> DTO, mieux que Dozer il y a Selma !
Et le petit benchmark des familles qui montre que Selma enterre tous ses copains.
Comment mixer AureliaJS et ThreeJS dans un même projet. Pour toi Lenny, je sais que tu vas en avoir besoin.
Plein d'exemple de code (de convertisseurs notamment) écrit en Aurelia. Parfait pour se construire une codebase autour de ce framework.
Un framework de test pour ses scripts Bash : shunit2
Ici, le tuto compare les performances de StringBuffer et StringBuilder avec JMH
Framework CSS faciles à apprendre.
Imaginez un framework CSS, en français et en anglais, modulaire, disposant d'un builder vous permettant de sélectionner les modules que vous souhaitez ainsi que le thème de couleurs par défaut de votre site (histoire que celui-ci soit intégré au framework et non surchargé a la mano). Imaginez le tout libre, inter-opérable et responsive. Vous avez ROCSSTI
Un tuto (esquisse de tuto) sur Sprint Test et les tests d'intégrations.
Ohhh (O_O) moi qui cherchais un framework CSS pour dégager Bootstrap, le remplacer par les FlexBox (plus léger, plus rapide, plus facile) et qui soit compréhensible par un néophyte je suis servie avec Bulma qui fait comme Bootstrap, en s'appuyant sur les FlexBox et en produisant des classes CSS toutes prêtes.
Animal, il faut que tu utilises ça pour ton site.
Roudoudoutte, idem pour ton projet.
En tout cas c'est une techno web à regarder !
Je recherchais un framework CSS responsive qui fasse comme Bootstrap mais en plus léger (4 Ko au lieu de 320 Ko). Je suis contente d'avoir trouvé Pure (développé par Yahoo) !