<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Dev on bersace.cae.li</title>
    <link>https://bersace.cae.li/tags/dev/</link>
    <description>Recent content in Dev on bersace.cae.li</description>
    <generator>Hugo</generator>
    <language>fr-fr</language>
    <lastBuildDate>Mon, 20 Dec 2021 10:00:00 +0200</lastBuildDate>
    <atom:link href="https://bersace.cae.li/tags/dev/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Contre le typage statique dans Python</title>
      <link>https://bersace.cae.li/contre-le-typage-statique-dans-python.html</link>
      <pubDate>Mon, 20 Dec 2021 10:00:00 +0200</pubDate>
      <guid>https://bersace.cae.li/contre-le-typage-statique-dans-python.html</guid>
      <description>&lt;p&gt;Après l&amp;rsquo;asynchrone, le typage statique est la nouvelle tendance dans les
langages de programmations : TypeScript, Ruby 3, etc. Python n&amp;rsquo;y échappe pas et
voilà pourquoi ça m&amp;rsquo;agace.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;Grenade dégoupillé&#34; loading=&#34;lazy&#34; src=&#34;images/grenade.jpeg&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;ce-que-jaime-dans-python&#34;&gt;Ce que j&amp;rsquo;aime dans Python&lt;/h2&gt;
&lt;p&gt;J&amp;rsquo;ai commencé à développer en Python en 2006. C&amp;rsquo;était avant les décorateurs, les
générateurs, les gestionnaires de contextes, etc. Avant unittest et mock aussi.
Le Python de l&amp;rsquo;époque peut paraître rudimentaire aujourd&amp;rsquo;hui. J&amp;rsquo;avais le
sentiment d&amp;rsquo;écrire du code aussi simple qu&amp;rsquo;en C ou PHP, mais avec une syntaxe
plus élégante, plus expressive. On pouvait facilement remplacer du C, PHP, Perl
ou Java avec du Python avec moins de code et moins de bibliothèques tierces.&lt;/p&gt;</description>
    </item>
    <item>
      <title>JSON5</title>
      <link>https://bersace.cae.li/json5.html</link>
      <pubDate>Wed, 19 May 2021 17:00:00 +0200</pubDate>
      <guid>https://bersace.cae.li/json5.html</guid>
      <description>&lt;p&gt;Le monde des formats de fichier de configuration est foisonnant. C&amp;rsquo;est la course
aux standards. ini, xml, json, yaml, toml et py tout court : il y a déjà pas mal
de choix. Et pour combler le tout, je redécouvre &lt;a href=&#34;https://json5.org/&#34;&gt;json5&lt;/a&gt;. La
version 1.0 datant de 2018.&lt;/p&gt;
&lt;h2 id=&#34;fonctionnalités&#34;&gt;Fonctionnalités&lt;/h2&gt;
&lt;p&gt;Les fonctionnalités de JSON5 sont &lt;strong&gt;très&lt;/strong&gt; simples :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Les commentaires sur une ou plusieurs lignes.&lt;/li&gt;
&lt;li&gt;Guillemets optionnels pour les clefs d&amp;rsquo;objet.&lt;/li&gt;
&lt;li&gt;Virgule finale pour les objets et les tableaux.&lt;/li&gt;
&lt;li&gt;Chaînes de caractères multilignes.&lt;/li&gt;
&lt;li&gt;Guillemets simple ou double pour les chaînes de caractères.&lt;/li&gt;
&lt;li&gt;Les nombres hexadécimaux avec &lt;code&gt;0xff&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et une poignée d&amp;rsquo;autres extensions que vous trouverez décrites sur la page du
projet. Voici une illustration:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Les stratégies de test</title>
      <link>https://bersace.cae.li/strategies-de-test.html</link>
      <pubDate>Mon, 13 May 2019 17:00:00 +0200</pubDate>
      <guid>https://bersace.cae.li/strategies-de-test.html</guid>
      <description>&lt;p&gt;J&amp;rsquo;en peut plus des tests &lt;em&gt;soit-disant&lt;/em&gt; unitaires ! Tout le monde fait des &amp;ldquo;tests
unitaires&amp;rdquo; . C&amp;rsquo;est devenu un mot magique. Et ça ne veut plus rien dire. C&amp;rsquo;est
plutôt l&amp;rsquo;enfer des tests automatiques : lenteurs, invasion de mocks,
faux-positifs, découragement, dénigrement des tests unitaires, etc. Qui n&amp;rsquo;a pas
vécu ça au boulot ? Regardons ça de plus près.&lt;/p&gt;
&lt;h2 id=&#34;la-jungle-des-tests-automatiques&#34;&gt;La jungle des tests automatiques&lt;/h2&gt;
&lt;p&gt;Les tests automatiques ont des tas de variantes : test d&amp;rsquo;acceptation, test
bout-en-bout (&lt;em&gt;end to end&lt;/em&gt;), behaviour test, test fonctionnels, test de
régression, test de performance, test d&amp;rsquo;intégration, smoke test, pen test, test
de résilience, fuzzy test, etc. chaque année a sa nouvelle variante de test
automatique. Un test unitaire peut être un test de régression. Mais un test
d&amp;rsquo;intégration aussi. Parcontre, un test d&amp;rsquo;intégration ne peut pas être un test
unitaire. Pas facile de s&amp;rsquo;y retrouver.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pub-Sub avec Postgres</title>
      <link>https://bersace.cae.li/postgres-agent-message-dramatiq.html</link>
      <pubDate>Wed, 20 Feb 2019 18:00:00 +0200</pubDate>
      <guid>https://bersace.cae.li/postgres-agent-message-dramatiq.html</guid>
      <description>&lt;p&gt;Dès qu&amp;rsquo;une application web a besoin de déléguer une tâche lourde ou critique en
arrière-plan, on se retrouve avec &lt;a href=&#34;https://redis.io&#34;&gt;Redis&lt;/a&gt; pour stocker le
résultat des tâches et parfois &lt;a href=&#34;https://rabbitmq.com&#34;&gt;RabbitMQ&lt;/a&gt; pour gérer la
messagerie. La mode est maintenant d&amp;rsquo;utiliser Redis aussi pour la messagerie,
grâce à une procédure stockée en lua, ça économise le gros bousin qu&amp;rsquo;est
RabbitMQ.&lt;/p&gt;
&lt;p&gt;Postgres peut déjà remplacer Redis grâce à JSONb. Mais pour notifier, va-t-on
bourriner Postgres avec des &lt;code&gt;SELECT&lt;/code&gt; ? Heureusement non, grâce à
&lt;code&gt;LISTEN&lt;/code&gt;/&lt;code&gt;NOTIFY&lt;/code&gt; !&lt;/p&gt;</description>
    </item>
    <item>
      <title>Débuter avec Python en 2019</title>
      <link>https://bersace.cae.li/conseils-python-2019.html</link>
      <pubDate>Fri, 25 Jan 2019 09:00:00 +0200</pubDate>
      <guid>https://bersace.cae.li/conseils-python-2019.html</guid>
      <description>&lt;p&gt;De temps en temps, on me demande des conseils d&amp;rsquo;articles et de tutoriels pour
connaître l&amp;rsquo;état de l&amp;rsquo;art en Python sur tel ou tel sujet. Pas si facile quand on
baigne dedans et qu&amp;rsquo;on a déjà digéré l&amp;rsquo;essentiel des bonnes pratiques depuis des
années. Et puis ça bouge. Alors voici ma version 2019 !&lt;/p&gt;
&lt;h2 id=&#34;utiliser-python3&#34;&gt;Utiliser Python 3&lt;/h2&gt;
&lt;p&gt;Vous découvrez Python et on vous a pris la tête avec Python 2 vs Python 3 ? Pour
2019, c&amp;rsquo;est plus simple : partez directement sur Python 3, au minimum 3.4. Si
vraiment on vous demande d&amp;rsquo;être compatible Python 2, le portage ne sera pas bien
compliqué à faire après coup.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
