<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Darkwood</title>
    <description>The latest articles on DEV Community by Darkwood (@darkwood-com).</description>
    <link>https://dev.to/darkwood-com</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F3923%2F94f64424-95ed-491f-93c2-1e841a1d1b65.png</url>
      <title>DEV Community: Darkwood</title>
      <link>https://dev.to/darkwood-com</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/darkwood-com"/>
    <language>en</language>
    <item>
      <title>🎨 Pipe Programming : linéariser la complexité des graphes</title>
      <dc:creator>Mathieu Ledru</dc:creator>
      <pubDate>Sun, 14 Sep 2025 17:11:06 +0000</pubDate>
      <link>https://dev.to/darkwood-com/pipe-programming-lineariser-la-complexite-des-graphes-5bok</link>
      <guid>https://dev.to/darkwood-com/pipe-programming-lineariser-la-complexite-des-graphes-5bok</guid>
      <description>&lt;p&gt;&lt;a href="https://youtu.be/h8wUcALEpNA" rel="noopener noreferrer"&gt;Youtube&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dans de nombreux outils d’automatisation et de dataflow, la logique est représentée sous forme de graphes de nœuds. Cette approche est intuitive au premier abord : chaque nœud représente une opération, et les flèches matérialisent les flux de données. Mais dès que la complexité augmente, la lisibilité diminue fortement. La programmation fonctionnelle offre une alternative élégante : le pipe, une construction linéaire où les transformations s’enchaînent naturellement, de haut en bas, comme la lecture d’un texte.&lt;/p&gt;

&lt;p&gt;Le graph de nœuds : intuitif mais vite complexe&lt;br&gt;
Représentation en deux dimensions.&lt;br&gt;
Facile pour de petits prototypes.&lt;br&gt;
Mais : ambiguïtés (quand les données “pop” ?), contraintes visuelles (arêtes qui s’entrecroisent), coût cognitif croissant à mesure que le graph grandit.&lt;br&gt;
Exemple minimal :&lt;/p&gt;

&lt;p&gt;[Source A] →&lt;br&gt;&lt;br&gt;
               ↘&lt;br&gt;
                 [ Merge ] → [ Transform ] → [ Output ]&lt;br&gt;
               ↗&lt;br&gt;
 [Source B] →&lt;br&gt;
Le pipe : une lecture linéaire et concise&lt;br&gt;
En programmation fonctionnelle, le même processus peut être représenté sous forme de pipeline :&lt;/p&gt;

&lt;p&gt;use Flow\Flow;&lt;/p&gt;

&lt;p&gt;$result = Flow::pipe(&lt;br&gt;
    yield emit(['foo', 'bar']),    // Source A&lt;br&gt;
    yield emit(['baz']),           // Source B&lt;br&gt;
    yield merge(),                 // Merge&lt;br&gt;
    yield transform(),             // Transform&lt;br&gt;
    yield output()&lt;br&gt;
);&lt;/p&gt;

&lt;p&gt;echo $result; // "FOO, BAR, BAZ"&lt;br&gt;
Les avantages du pipe&lt;br&gt;
Clarté : une seule direction, de haut en bas, comme une phrase que l’on lit.&lt;br&gt;
Concision : moins de bruit visuel, seules les transformations apparaissent.&lt;br&gt;
Maintenabilité : ajouter ou retirer une étape = ajouter ou retirer une ligne. Pas besoin de redessiner un graphe.&lt;br&gt;
Prévisibilité : chaque étape est le résultat des précédentes, aucun flottement sur “où en est le flux”.&lt;br&gt;
Quand préférer le pipe au graph ?&lt;br&gt;
Pour des transformations de données séquentielles.&lt;br&gt;
Pour des pipelines évolutifs où l’on ajoute souvent des étapes.&lt;br&gt;
Pour un code versionné : un pipe est diffable dans Git, là où un graphe binaire/visuel ne l’est pas.&lt;br&gt;
Conclusion&lt;br&gt;
Le graph de nœuds reste pertinent pour le prototypage visuel ou les utilisateurs non-développeurs. Mais dès que la logique grandit, la représentation 2D devient vite un fardeau. Le pipe programming, tel qu’implémenté dans Flow (flow.darkwood.com), offre une alternative puissante : linéaire, concise, facile à maintenir, et surtout lisible comme un texte.&lt;/p&gt;

&lt;p&gt;Message clé :&lt;/p&gt;

&lt;p&gt;Avec un pipe, la logique est dans le code, pas dans les câbles.&lt;/p&gt;

&lt;p&gt;🎁 Je propose des séances de coaching gratuites de 30 minutes pour aider les créateurs comme vous à automatiser leurs processus et à gagner du temps ⏱️&lt;/p&gt;

&lt;p&gt;👉 Réservez votre séance gratuite ici : &lt;a href="https://www.bonzai.pro/matyo91/lp/4471/je-taide-a-automatiser-tes-process" rel="noopener noreferrer"&gt;https://www.bonzai.pro/matyo91/lp/4471/je-taide-a-automatiser-tes-process&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Merci de votre lecture ! Créons ensemble des workflows intelligents, rapides et automatisés 💻⚡&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Railway FBP v1.0.8 is released 🎉</title>
      <dc:creator>Mathieu Ledru</dc:creator>
      <pubDate>Sat, 02 Oct 2021 08:04:57 +0000</pubDate>
      <link>https://dev.to/darkwood-com/railway-fbp-v1-0-8-is-released-1kn2</link>
      <guid>https://dev.to/darkwood-com/railway-fbp-v1-0-8-is-released-1kn2</guid>
      <description>&lt;p&gt;Railway FBP v1.0.8 introduce Monads.&lt;/p&gt;

&lt;p&gt;A rework was done on this release when deepen into monads theory and their implementation in PHP. This could give the project deeper approach when considering the implementation to get much cleaner way to use it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/darkwood-fr/railway-fbp/releases/tag/v1.0.8" rel="noopener noreferrer"&gt;https://github.com/darkwood-fr/railway-fbp/releases/tag/v1.0.8&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Railway FBP v1.0.3 is released 🎉</title>
      <dc:creator>Mathieu Ledru</dc:creator>
      <pubDate>Thu, 29 Apr 2021 15:54:35 +0000</pubDate>
      <link>https://dev.to/darkwood-com/railway-fbp-v1-0-3-is-released-3jpf</link>
      <guid>https://dev.to/darkwood-com/railway-fbp-v1-0-3-is-released-3jpf</guid>
      <description>&lt;p&gt;Railway FBP v1.0.3 is now released and introduce Ip Strategy that allow sequencing the order of processing Ip.&lt;br&gt;
This is useful to get a granular control of your asynchronous Job. You can then decide to prioritize witch Ip should be processed by define a strategy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/darkwood-fr/railway-fbp/releases/tag/v1.0.3" rel="noopener noreferrer"&gt;https://github.com/darkwood-fr/railway-fbp/releases/tag/v1.0.3&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Symfony Live Online 2021</title>
      <dc:creator>Mathieu Ledru</dc:creator>
      <pubDate>Fri, 09 Apr 2021 17:59:51 +0000</pubDate>
      <link>https://dev.to/darkwood-com/symfony-live-online-2021-3nk5</link>
      <guid>https://dev.to/darkwood-com/symfony-live-online-2021-3nk5</guid>
      <description>&lt;p&gt;Nouvel article sur le blog&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.darkwood.fr/article/symfony-live-online-2021" rel="noopener noreferrer"&gt;https://blog.darkwood.fr/article/symfony-live-online-2021&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Railway FBP v1.0.0 released</title>
      <dc:creator>Mathieu Ledru</dc:creator>
      <pubDate>Sun, 04 Apr 2021 14:24:06 +0000</pubDate>
      <link>https://dev.to/darkwood-com/railway-fbp-v1-0-0-released-4d29</link>
      <guid>https://dev.to/darkwood-com/railway-fbp-v1-0-0-released-4d29</guid>
      <description>&lt;p&gt;🎉 Glad to annonce the release of Railway FBP v1.0.0 🚀&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/darkwood-fr/railway-fbp/releases/tag/v1.0.0" rel="noopener noreferrer"&gt;https://github.com/darkwood-fr/railway-fbp/releases/tag/v1.0.0&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Railway Flow Based Programming en PHP</title>
      <dc:creator>Mathieu Ledru</dc:creator>
      <pubDate>Fri, 26 Mar 2021 20:16:20 +0000</pubDate>
      <link>https://dev.to/darkwood-com/railway-flow-based-programming-en-php-42cm</link>
      <guid>https://dev.to/darkwood-com/railway-flow-based-programming-en-php-42cm</guid>
      <description>&lt;p&gt;Nouvel article du blog sur la présentation du Railway Flow Based Programming et de son implémentation en PHP.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.darkwood.fr/article/php-railway-flow-based-programming" rel="noopener noreferrer"&gt;https://blog.darkwood.fr/article/php-railway-flow-based-programming&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
