En tant que développeur junior, j'avais parfois du mal à anticiper les conséquences de choix architecturaux, et je privilégiais parfois la simplicité et la lisibilité à ce que j'interprétais comme de la pureté théorique. La vie, bonne pédagogue, m'a donné l'occasion de constater la sagesse des principes SOLID. Les noms des principes forment un acronyme intéressant, mais sont un peu cryptiques pris…
As a junior developer I sometimes struggled to anticipate the consequences of architectural choices, favoring immediate simplicity and readability over (what I interpreted as) theoretical purity. Being a good teacher, life made sure that I got a chance to see the wisdom in SOLID principles. Even though the principle names make for a cool acronym collectively, they are quite cryptic individually.…
Cessez de mettre le bon code au mauvais endroit ! Il est facile de s'emballer en utilisant le scaffolding de Rails, mais dans certains cas un simple objet Ruby (un PORO) suffit amplement. Et les Form Objects sont particulièrement efficaces pour alléger les modèles et les contrôleurs, tout en regroupant des fonctionnalités qui vont ensemble dans des objets faciles à tester.
Stop putting the right code in the wrong place! It's easy to get carried away using Rails scaffolding, but sometimes a Plain Old Ruby Object (PORO) is more than appropriate. And Form Objects are very good at keeping models lean, controllers sharp, and grouping related code together in one object that's easy to test.
Jeudi dernier, j'ai assisté à l'atelier en ligne « Good Enough Testing » (juste ce qu'il faut de tests), animé par Lucian Ghinda, qui rédige l'infolettre Short Ruby. Je suis content d'avoir vu l'inscription peu après sa publication, car l'atelier s'est rempli en moins d'une journée ! J'ai pris le temps de combiner les connaissances acquises lors de l'atelier avec ce que j'ai appris au fil des…
Last Thursday, I attended "Good enough testing", an online workshop by Lucian Ghinda, curator of the Short Ruby Newsletter. I'm glad that I saw the registration soon after it was posted, because the workshop was sold out in less than a day! I took some time to combine the knowledge from the workshop with what I've learned over the years, in blogs and books.
Les validateurs Rails sont expressifs et puissants, tout en étant faciles à utiliser et à étendre. Une fonctionnalité intéressante est que les validateurs peuvent s'exécuter uniquement lorsqu'une condition est remplie (en utilisant `if:` et `unless:`), ou dans des contextes sélectionnés, en utilisant `on:`. Mais saviez-vous que vous pouvez également définir des contextes personnalisés ? Voici…
Rails validators are expressive and powerful, yet easy to use and extend. One interesting feature is that validators can run only when a condition is met (using `if:` and `unless:`), or in selected contexts, using `on:`. But did you know that you can also define custom contexts? Here's how to do it, and why that might be useful.
Il est possible d'utiliser Bundler pour installer des gemmes dans un script ruby, et c'est super pratique ! Voici comment empêcher Bundler d'afficher quoi que ce soit pendant l'installation des gemmes, et une solution pour un problème qui peut se produire quand on utilise cette option.
Bundler can be used in inline scripts, which is awesome! Here is how to silence Bundler so that your script doesn't start with Bundler's output, and a workaround for a little gotcha when silencing output.