<?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: Yann Morgan</title>
    <description>The latest articles on DEV Community by Yann Morgan (@yann_morgan_d6d4668f65951).</description>
    <link>https://dev.to/yann_morgan_d6d4668f65951</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%2Fuser%2Fprofile_image%2F3758489%2F7d09099e-d3b3-4eed-9b1c-54cab7c0a0b4.jpg</url>
      <title>DEV Community: Yann Morgan</title>
      <link>https://dev.to/yann_morgan_d6d4668f65951</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yann_morgan_d6d4668f65951"/>
    <language>en</language>
    <item>
      <title>J’ai perdu 3 heures à débugger une section Shopify… pour une virgule</title>
      <dc:creator>Yann Morgan</dc:creator>
      <pubDate>Sat, 02 May 2026 15:39:02 +0000</pubDate>
      <link>https://dev.to/yann_morgan_d6d4668f65951/jai-perdu-3-heures-a-debugger-une-section-shopify-pour-une-virgule-2e0h</link>
      <guid>https://dev.to/yann_morgan_d6d4668f65951/jai-perdu-3-heures-a-debugger-une-section-shopify-pour-une-virgule-2e0h</guid>
      <description>&lt;h1&gt;
  
  
  J’ai passé 3 heures à débugger une section Shopify… pour une virgule manquante
&lt;/h1&gt;

&lt;p&gt;Oui, une seule virgule.&lt;/p&gt;

&lt;p&gt;Pas une logique complexe.&lt;br&gt;
Pas un bug JS.&lt;br&gt;
Juste… une virgule oubliée dans un schema.&lt;/p&gt;

&lt;p&gt;Et la section ne s’affichait plus.&lt;/p&gt;


&lt;h2&gt;
  
  
  Si tu fais du Shopify, tu connais déjà cette histoire
&lt;/h2&gt;

&lt;p&gt;Tu ajoutes une section.&lt;br&gt;
Tu refresh.&lt;br&gt;
👉 Rien.&lt;/p&gt;

&lt;p&gt;Pas d’erreur claire.&lt;br&gt;
Pas de stack trace.&lt;br&gt;
Juste… du silence.&lt;/p&gt;

&lt;p&gt;Alors tu commences :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tu inspectes le code&lt;/li&gt;
&lt;li&gt;tu regardes le schema&lt;/li&gt;
&lt;li&gt;tu commentes des blocs&lt;/li&gt;
&lt;li&gt;tu refresh encore&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et au bout d’un moment :&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;tu trouves une petite erreur ridicule.&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Le vrai problème (que personne ne dit)
&lt;/h2&gt;

&lt;p&gt;Shopify est puissant.&lt;/p&gt;

&lt;p&gt;Mais côté dev :&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;il est extrêmement fragile.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Un petit problème et :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;la section casse&lt;/li&gt;
&lt;li&gt;le rendu disparaît&lt;/li&gt;
&lt;li&gt;et tu dois jouer au détective&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Et ça arrive tout le temps
&lt;/h2&gt;

&lt;p&gt;Les bugs les plus fréquents :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSON invalide dans &lt;code&gt;{% schema %}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;tag Liquid non fermé&lt;/li&gt;
&lt;li&gt;structure incohérente&lt;/li&gt;
&lt;li&gt;champ manquant&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Rien de “complexe”… mais ultra coûteux en temps.&lt;/p&gt;


&lt;h2&gt;
  
  
  Le déclic
&lt;/h2&gt;

&lt;p&gt;Après avoir corrigé ce genre d’erreur pour la 50e fois, je me suis dit :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Pourquoi je fais ça à la main ?”&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  J’ai donc construit un petit outil
&lt;/h2&gt;

&lt;p&gt;Au départ, juste pour moi.&lt;/p&gt;

&lt;p&gt;Un CLI capable de :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;générer des sections Shopify&lt;/li&gt;
&lt;li&gt;les valider&lt;/li&gt;
&lt;li&gt;et surtout… les réparer automatiquement&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Le moment où tout a changé
&lt;/h2&gt;

&lt;p&gt;J’ai testé sur une section cassée.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx section-factory repair broken-section.liquid
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Résultat :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSON corrigé&lt;/li&gt;
&lt;li&gt;structure fixée&lt;/li&gt;
&lt;li&gt;section fonctionnelle&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 en quelques secondes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Exemple réel
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ❌ Avant
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight liquid"&gt;&lt;code&gt;&lt;span class="cp"&gt;{%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;schema&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;%}&lt;/span&gt;
{
  "name": "Hero",
  "settings": [
    {
      "type": "text",
      "id": "title"
      "label": "Title"
    }
  ]
}
&lt;span class="cp"&gt;{%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;endschema&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Une virgule manquante → tout casse&lt;/p&gt;




&lt;h3&gt;
  
  
  ✅ Après
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight liquid"&gt;&lt;code&gt;&lt;span class="cp"&gt;{%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;schema&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;%}&lt;/span&gt;
{
  "name": "Hero",
  "settings": [
    {
      "type": "text",
      "id": "title",
      "label": "Title"
    }
  ]
}
&lt;span class="cp"&gt;{%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;endschema&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;%}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;✔ corrigé&lt;br&gt;
✔ valide&lt;br&gt;
✔ prêt à utiliser&lt;/p&gt;




&lt;h2&gt;
  
  
  Ce que fait vraiment cet outil
&lt;/h2&gt;

&lt;p&gt;Ce n’est pas juste un générateur.&lt;/p&gt;

&lt;p&gt;C’est un &lt;strong&gt;pipeline&lt;/strong&gt; :&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Génération
&lt;/h3&gt;

&lt;p&gt;Créer des sections propres&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Validation
&lt;/h3&gt;

&lt;p&gt;Détecter les erreurs avant qu’elles cassent tout&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Repair
&lt;/h3&gt;

&lt;p&gt;Corriger automatiquement ce qui ne va pas&lt;/p&gt;




&lt;h2&gt;
  
  
  Pourquoi c’est important
&lt;/h2&gt;

&lt;p&gt;Parce qu’aujourd’hui :&lt;/p&gt;

&lt;p&gt;👉 une grosse partie du dev Shopify =&lt;br&gt;
&lt;strong&gt;debug de problèmes évitables&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Et si on arrêtait ça ?
&lt;/h2&gt;

&lt;p&gt;Au lieu de :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;copier/coller&lt;/li&gt;
&lt;li&gt;tester à l’aveugle&lt;/li&gt;
&lt;li&gt;corriger à la main&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On pourrait :&lt;/p&gt;

&lt;p&gt;👉 générer → valider → réparer automatiquement&lt;/p&gt;




&lt;h2&gt;
  
  
  L’objectif
&lt;/h2&gt;

&lt;p&gt;Pas remplacer les devs.&lt;/p&gt;

&lt;p&gt;Mais enlever :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;la frustration&lt;/li&gt;
&lt;li&gt;la répétition&lt;/li&gt;
&lt;li&gt;les bugs stupides&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Aujourd’hui
&lt;/h2&gt;

&lt;p&gt;Le projet est encore en cours.&lt;/p&gt;

&lt;p&gt;Mais le cœur fonctionne déjà :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;génération&lt;/li&gt;
&lt;li&gt;validation&lt;/li&gt;
&lt;li&gt;repair&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  J’ai besoin de toi
&lt;/h2&gt;

&lt;p&gt;Si tu es dev Shopify :&lt;/p&gt;

&lt;p&gt;👉 dis-moi :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;c’est quoi ton bug le plus chiant ?&lt;/li&gt;
&lt;li&gt;qu’est-ce que tu répètes tout le temps ?&lt;/li&gt;
&lt;li&gt;qu’est-ce que tu automatiserais en premier ?&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  L’idée derrière tout ça
&lt;/h2&gt;

&lt;p&gt;Rendre le dev Shopify :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;plus rapide&lt;/li&gt;
&lt;li&gt;plus fiable&lt;/li&gt;
&lt;li&gt;moins frustrant&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Et toi ?
&lt;/h2&gt;

&lt;p&gt;Tu as déjà perdu combien de temps pour… une virgule ?&lt;/p&gt;




&lt;p&gt;👉 &lt;a href="https://github.com/morgan2023972/section-factory.git" rel="noopener noreferrer"&gt;https://github.com/morgan2023972/section-factory.git&lt;/a&gt;&lt;/p&gt;

</description>
      <category>shopify</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>programming</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Yann Morgan</dc:creator>
      <pubDate>Sat, 02 May 2026 14:44:53 +0000</pubDate>
      <link>https://dev.to/yann_morgan_d6d4668f65951/-2jia</link>
      <guid>https://dev.to/yann_morgan_d6d4668f65951/-2jia</guid>
      <description></description>
    </item>
  </channel>
</rss>
