<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
pre
        {mso-style-priority:99;
        mso-style-link:"Préformaté HTML Car";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.PrformatHTMLCar
        {mso-style-name:"Préformaté HTML Car";
        mso-style-priority:99;
        mso-style-link:"Préformaté HTML";
        font-family:"Consolas",serif;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FR-CH" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Salut à tous,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">En examinant le code de ProductOpener afin de me préparer au hackaton, je constate que l'architecture actuelle n'est pas du tout orientée-objet
: chaque module expose une collection de routines et importe de large pans des routines d'autres modules; l'état de l'app est dans des variables globales ou dans les hashmaps passés entre modules. L'introduction d'une architecture OO à travers Corinna (ou
Moose, ou des Plain Old Perl Objects) serait très certainement bénéfique, mais ça demande un travail de conception sur l'organisation OO souhaitée (classes, méthodes, héritage, etc). Sujet passionnant mais ambitieux pour un week-end !<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Si Corinna sert uniquement à "sécuriser les hashmaps", c'est à mon avis un peu overkill; un mécanisme comme Hash::Util::lock_keys permettrait
déjà de réduire les risques d'erreurs sans forcer une montée en version de Perl.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Just my 2 cents .. je me réjouis d'en discuter ce week-end !<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">A bientôt, L. Dami<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin-left:35.4pt"><b><span lang="FR" style="font-size:11.0pt;font-family:"Calibri",sans-serif">De :</span></b><span lang="FR" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> perl-bounces@mongueurs.net <perl-bounces@mongueurs.net>
<b>De la part de</b> Alex Garel<br>
<b>Envoyé :</b> dimanche 17 mars 2024 22:46<br>
<br>
</span><o:p></o:p></p>
</div>
</div>
<div>
<p style="margin-left:35.4pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Le 17/03/2024 à 18:45, Sébastien Feugère a écrit :<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre style="margin-left:35.4pt"><o:p> </o:p></pre>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre style="margin-left:35.4pt">* utilisation de corinna pour remplacer les hashmap par des objets dans le code<o:p></o:p></pre>
</blockquote>
<pre style="margin-left:35.4pt"><span style="color:#1F497D">[.. Corinna ]</span><o:p></o:p></pre>
</blockquote>
<p style="margin-left:35.4pt">Hello, <o:p></o:p></p>
<p style="margin-left:35.4pt">Clairement l'idée est plutôt d'aller sur du code qui parte rapidement en production.<o:p></o:p></p>
<p style="margin-left:35.4pt">je pense que l'on partira plutôt sur Perl >= 5.38. Après c'est à l'équipe qui prendra le sujet en main de décider :-)<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:35.4pt">Actuellement on est en Perl 5.32 donc j'imagine que la montée de version sera plutôt facile en soit (peut-être en partant de l'<a href="https://hub.docker.com/_/perl">image Docker adéquat</a>, au moins pour les
tests). <o:p></o:p></p>
<p style="margin-left:35.4pt">En production (qui est une installe LXC/container proxmox), on est encore sur debian bullseye, est-il difficile d'installer une version de perl différente de celle officielle ? (<a href="https://github.com/perl/docker-perl/blob/eda25fcceccf8e178bf1e41ce4d4196ab3e8f8af/5.038.002-main-bookworm/Dockerfile">le
dockerfile de l'image ci-dessus</a> peut servir d'exemple)<o:p></o:p></p>
<p style="margin-left:35.4pt">++Alex<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
</div>
</body>
</html>