gem-graph-client/2024-07 audit proto-gg.html

804 lines
30 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="" lang=""><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>-</title>
<style>
html {
line-height: 1.5;
font-family: Georgia, serif;
font-size: 20px;
color: #1a1a1a;
background-color: #fdfdfd;
}
body {
margin: 0 auto;
max-width: 36em;
padding-left: 50px;
padding-right: 50px;
padding-top: 50px;
padding-bottom: 50px;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 1em;
}
h1 {
font-size: 1.8em;
}
}
@media print {
body {
background-color: transparent;
color: black;
font-size: 12pt;
}
p, h2, h3 {
orphans: 3;
widows: 3;
}
h2, h3, h4 {
page-break-after: avoid;
}
}
p {
margin: 1em 0;
}
a {
color: #1a1a1a;
}
a:visited {
color: #1a1a1a;
}
img {
max-width: 100%;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 1.4em;
}
h5, h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol, ul {
padding-left: 1.7em;
margin-top: 1em;
}
li > ol, li > ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2px solid #e6e6e6;
color: #606060;
}
code {
font-family: Menlo, Monaco, 'Lucida Console', Consolas, monospace;
font-size: 85%;
margin: 0;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: #1a1a1a;
border: none;
height: 1px;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1px solid #1a1a1a;
border-bottom: 1px solid #1a1a1a;
}
th {
border-top: 1px solid #1a1a1a;
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC > ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
ul.task-list li input[type="checkbox"] {
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
</style>
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="gem-graph-client">Gem-graph client</h1>
<p>version <code>0.0</code> commit
<code>8ce7191df3652ddd6284c4ac6d8d42c3cf32d2d5</code></p>
<h2 id="audit-de-code-source-et-structure-de-projet">Audit de code
source et structure de projet</h2>
<h3 id="arborescence-des-sources">Arborescence des sources</h3>
<p>Voici larborescence de la version actuelle du projet.</p>
<pre><code>├── data
│ ├── dimers random walk.xml
│ ├── image
│ │ ├── [...]
│ └── text
│ ├── [...]
├── include
│ ├── automat.h
│ ├── base.h
│ ├── calls.h
│ ├── graph.h
│ ├── parse.h
│ └── widgets.h
├── Makefile
├── manifest.scm
├── [...]
└── src
├── automat.c
├── calls.c
├── graph.c
│ ├── area.c
│ ├── draw.c
│ ├── grid.c
│ ├── init.c
│ ├── shader.frag
│ ├── shader.vert
│ └── stack.c
├── main.c
├── parse.c
└── widget.c
├── heads.c
├── labo.c
├── rules.c
├── state.c
├── stock.c
└── tree.c
8 dossiers, 46 fichiers</code></pre>
<p>Un certain nombre délements doivent être respectés :</p>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled" checked="checked">séparation
code/headers</li>
<li><input type="checkbox" disabled="disabled" checked="checked">séparation
data/code</li>
<li><input type="checkbox" disabled="disabled" checked="checked">prise en compte de
la structure dans le Makefile</li>
<li><input type="checkbox" disabled="disabled" checked="checked">1 header = 1
sous-dossier ou fichier de <code>src</code>, excepté
<code>base.h</code></li>
<li><input type="checkbox" disabled="disabled" checked="checked">chaque sous-dossier
de <code>src</code> constitue un module clairement défini</li>
</ul>
<p>Erreurs critiques :</p>
<ul>
<li>les sous-dossiers de <code>src</code> sont nommés comme des fichiers
(<code>*.c</code>)</li>
<li>le module <code>widget</code> est mal nommé car il est pointé par le
header <code>widgets.h</code></li>
</ul>
<h3 id="analyse-formelle-des-sources">Analyse formelle des sources</h3>
<p>Généralités :</p>
<ul>
<li>le style du code manque de systématisme
<ul>
<li>la longueur des tabulations varie entre les fichiers</li>
</ul></li>
<li>beaucoup de problèmes critiques (voir ci-après)</li>
</ul>
<h4 id="analyse-des-headers">Analyse des headers</h4>
<p>Problèmes critiques relevés :</p>
<ul>
<li>3 headers sont mal nommés</li>
<li>6 headers contiennent un en-tête de licence valide selon la norme
SPDX</li>
<li>4 headers ne contiennent une directive <code>pragma once</code></li>
<li>0 headers incluent <code>base.h</code> indûment</li>
<li>1 headers nont pas un style de commentaire minimal et
systématique</li>
<li>5 headers nont pas un style de code/déclaration du projet
respecté</li>
<li>1 headers ne présentent pas des commentaires clairs et utiles</li>
<li>5 headers ont au moins une fonction non documentée</li>
<li>3 headers nomment mal les fonctions du module</li>
</ul>
<h5 id="baseh-critique-à-retravailler">base.h <code>[critique]</code>
<code>[à retravailler]</code></h5>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled" checked="checked">le nom est clair et
correspond à une fonctionnalité</li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">contient une
directive <code>pragma once</code></li>
<li><input type="checkbox" disabled="disabled">ninclut pas
<code>base.h</code></li>
<li><input type="checkbox" disabled="disabled">style de commentaire minimal et
systématique<ul>
<li>commentaires au style non systématiques</li>
<li>symboles inutiles (&lt;)</li>
<li>espacement incorrect</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>enum et struct invalides</li>
</ul></li>
<li><input type="checkbox" disabled="disabled" checked="checked">clarté et utilité
des commentaires</li>
<li><input type="checkbox" disabled="disabled" checked="checked">chaque fonction est
documentée</li>
<li><input type="checkbox" disabled="disabled" checked="checked">chaque fonction est
nommée selon le module (non applicable)</li>
</ul>
<h5 id="automath-critique-à-retravailler">automat.h
<code>[critique]</code> <code>[à retravailler]</code></h5>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled">le nom est clair et correspond
à une fonctionnalité<ul>
<li>automate est un terme français non traduisible pour ce contexte</li>
<li>le terme habituel en informatique est Finite State Machine</li>
<li>fsm.h ? (serait compris par le plus grand nombre)</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled">contient une directive
<code>pragma once</code></li>
<li><input type="checkbox" disabled="disabled" checked="checked">ninclut pas
<code>base.h</code></li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>enum invalides</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li><code>xor</code> est totalement incompréhensible et inutile</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">chaque fonction est
documentée</li>
<li><input type="checkbox" disabled="disabled">chaque fonction est nommée
selon le module<ul>
<li>les fonctions ne portent pas le préfixe <code>automat_</code></li>
</ul></li>
</ul>
<h5 id="callsh-critique-à-retravailler">calls.h <code>[critique]</code>
<code>[à retravailler]</code></h5>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled">le nom est clair et correspond
à une fonctionnalité<ul>
<li>calls != callbacks, titre trompeur</li>
<li>calls =&gt; syscalls… or ça na rien à voir !!!</li>
<li>GTK appelle callbacks ce que la théorie nomme évènements (voir
“programmation évenementielle”)</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled">contient une directive
<code>pragma once</code></li>
<li><input type="checkbox" disabled="disabled" checked="checked">ninclut pas
<code>base.h</code></li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement de la limite de 80 caractères par ligne</li>
</ul></li>
<li><input type="checkbox" disabled="disabled" checked="checked">clarté et utilité
des commentaires</li>
<li><input type="checkbox" disabled="disabled">chaque fonction est
documentée</li>
<li><input type="checkbox" disabled="disabled" checked="checked">chaque fonction est
nommée selon le module<ul>
<li>les fonctions portent le préfixe <code>on_</code>, courant pour un
module dévènements</li>
</ul></li>
</ul>
<h5 id="graphh-critique-à-retravailler">graph.h <code>[critique]</code>
<code>[à retravailler]</code></h5>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled">le nom est clair et correspond
à une fonctionnalité<ul>
<li>graph != graphics, titre trompeur</li>
<li>en anglais, graph est un mot complet et pas labbréviation de
graphics</li>
<li>confusion avec le graph de gem-graph…</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">contient une
directive <code>pragma once</code></li>
<li><input type="checkbox" disabled="disabled" checked="checked">inclut
<code>base.h</code> (ok car types utilisés)</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement de la limite de 80 caractères par ligne</li>
</ul></li>
<li><input type="checkbox" disabled="disabled" checked="checked">clarté et utilité
des commentaires</li>
<li><input type="checkbox" disabled="disabled">chaque fonction est
documentée</li>
<li><input type="checkbox" disabled="disabled" checked="checked">chaque fonction est
nommée selon le module<ul>
<li>les fonctions portent le préfixe <code>graph_</code></li>
</ul></li>
</ul>
<h5 id="parseh-critique-à-retravailler">parse.h <code>[critique]</code>
<code>[à retravailler]</code></h5>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled" checked="checked">le nom est clair et
correspond à une fonctionnalité</li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled">contient une directive
<code>pragma once</code></li>
<li><input type="checkbox" disabled="disabled" checked="checked">ninclut pas
<code>base.h</code></li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de
code/déclaration du projet respecté</li>
<li><input type="checkbox" disabled="disabled" checked="checked">clarté et utilité
des commentaires</li>
<li><input type="checkbox" disabled="disabled">chaque fonction est
documentée</li>
<li><input type="checkbox" disabled="disabled">chaque fonction est nommée
selon le module<ul>
<li>les fonctions ne portent pas le préfixe <code>parse_</code></li>
</ul></li>
</ul>
<h5 id="widgetsh-critique-à-retravailler">widgets.h
<code>[critique]</code> <code>[à retravailler]</code></h5>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled" checked="checked">le nom est clair et
correspond à une fonctionnalité</li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled">contient une directive
<code>pragma once</code></li>
<li><input type="checkbox" disabled="disabled" checked="checked">ninclut pas
<code>base.h</code></li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement de la limite des 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled" checked="checked">clarté et utilité
des commentaires</li>
<li><input type="checkbox" disabled="disabled">chaque fonction est
documentée</li>
<li><input type="checkbox" disabled="disabled">chaque fonction est nommée
selon le module<ul>
<li>les fonctions ne portent pas toutes le préfixe
<code>widget_</code></li>
</ul></li>
</ul>
<h4 id="analyse-du-code">Analyse du code</h4>
<p>Problèmes critiques relevés :</p>
<ul>
<li>9 fichiers de code ou module sont mal nommés</li>
<li>15 fichiers de code contiennent un en-tête de licence valide selon
la norme SPDX</li>
<li>3 fichiers de code nont pas un style de commentaire minimal et
systématique</li>
<li>12 fichiers de code nont pas un style de code/déclaration du projet
respecté</li>
<li>13 fichiers de code ne présentent pas des commentaires clairs et
utiles</li>
</ul>
<h5 id="mainc-critique-à-retravailler">main.c <code>[critique]</code>
<code>[à retravailler]</code></h5>
<ul>
<li><p><input type="checkbox" disabled="disabled" checked="checked">le nom est clair
et correspond à une fonctionnalité</p></li>
<li><p><input type="checkbox" disabled="disabled">contient un en-tête de
licence valide selon la norme SPDX</p></li>
<li><p><input type="checkbox" disabled="disabled" checked="checked">style de
commentaire minimal et systématique</p></li>
<li><p><input type="checkbox" disabled="disabled" checked="checked">style de
code/déclaration du projet respecté</p></li>
<li><p><input type="checkbox" disabled="disabled" checked="checked">clarté et utilité
des commentaires</p></li>
<li><p><code>@:340</code> lid de lapplication est incohérent</p></li>
</ul>
<h5 id="automatc-critique-à-retravailler">automat.c
<code>[critique]</code> <code>[à retravailler]</code></h5>
<ul>
<li><input type="checkbox" disabled="disabled">le nom est clair et correspond
à une fonctionnalité</li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement de la limite de 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>commentaires inline complètement incompréhensibles/cryptiques</li>
<li>documentation des fonctions statiques absente</li>
</ul></li>
<li>le formattage de variables en mi-minuscule mi-majuscule est
illisible</li>
<li>lutilisation du terme “prescribed” est inhabituel et
incompréhensible</li>
<li><code>@:101:get_str_STATE_RULES_DATA()</code> très sous-optimal
<ul>
<li>on ne devrait jamais retourner des chaînes de caractères.</li>
<li>un tableau de hashage ferait mieux laffaire quune fonction avec un
switch</li>
</ul></li>
</ul>
<h5 id="callsc-critique-à-retravailler">calls.c <code>[critique]</code>
<code>[à retravailler]</code></h5>
<ul>
<li><input type="checkbox" disabled="disabled">le nom est clair et correspond
à une fonctionnalité</li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement de la limite de 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>documentation des fonctions statiques absente</li>
<li>certains commentaires perfectibles</li>
</ul></li>
<li>le formattage de fonction en mi-minuscule mi-majuscule est
illisible</li>
<li>de manière générale, le nommage des évènements est peu clair
<ul>
<li>il faut séparer loutil de ce quil représente (bouton vs
états)</li>
</ul></li>
<li><code>@:249:switch_STATE_RULES_DATA()</code>
<ul>
<li>le switch pourrait être remplacé par une table de hashage de
pointeurs sur fonction (beaucoup plus optimal)</li>
<li>le nommage de cette fonction est trompeur (ça ne switch pas
létat)</li>
</ul></li>
</ul>
<h5 id="parsec-critique-à-retravailler">parse.c <code>[critique]</code>
<code>[à retravailler]</code></h5>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled" checked="checked">le nom est clair et
correspond à une fonctionnalité</li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement de la limite de 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>documentation des fonctions statiques absente</li>
</ul></li>
</ul>
<h5 id="module-graphc-critique-à-retravailler">module graph.c
<code>[critique]</code> <code>[à retravailler]</code></h5>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled">le nom est clair et correspond
à une fonctionnalité</li>
</ul>
<h6 id="areac-critique-à-retravailler">area.c <code>[critique]</code>
<code>[à retravailler]</code></h6>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled">le nom est clair et correspond
à une fonctionnalité<ul>
<li>ne gère pas une “area” mais gère une pile darea et leurs
environnements</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement de la limite de 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>manque pas mal de commentaires, des fonctions sont documentés au
mauvais endroit</li>
</ul></li>
</ul>
<h6 id="drawc-critique-à-retravailler">draw.c <code>[critique]</code>
<code>[à retravailler]</code></h6>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled">le nom est clair et correspond
à une fonctionnalité<ul>
<li>ne gère pas une “area” mais gère une pile darea et leurs
environnements</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement de la limite de 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>manque pas mal de commentaires, des fonctions sont documentés au
mauvais endroit</li>
</ul></li>
</ul>
<h6 id="gridc-critique-à-retravailler">grid.c <code>[critique]</code>
<code>[à retravailler]</code></h6>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled" checked="checked">le nom est clair et
correspond à une fonctionnalité</li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled">style de commentaire minimal et
systématique<ul>
<li>les commentaires inline sont mal formatés</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement de la limite de 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>QUASI RIEN !</li>
</ul></li>
</ul>
<h6 id="initc-critique-à-retravailler">init.c <code>[critique]</code>
<code>[à retravailler]</code></h6>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled" checked="checked">le nom est clair et
correspond à une fonctionnalité</li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement de la limite de 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled" checked="checked">clarté et utilité
des commentaires<ul>
<li>peut toujours mieux faire mais ok</li>
</ul></li>
</ul>
<h6 id="shaderfrag-critique-à-retravailler">shader.frag
<code>[critique]</code> <code>[à retravailler]</code></h6>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled" checked="checked">le nom est clair et
correspond à une fonctionnalité</li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de
code/déclaration du projet respecté</li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>à commenter</li>
</ul></li>
</ul>
<h6 id="shadervert-critique-à-retravailler">shader.vert
<code>[critique]</code> <code>[à retravailler]</code></h6>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled" checked="checked">le nom est clair et
correspond à une fonctionnalité</li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de
code/déclaration du projet respecté</li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>à commenter</li>
</ul></li>
</ul>
<h6 id="stackc-critique-à-retravailler">stack.c <code>[critique]</code>
<code>[à retravailler]</code></h6>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled" checked="checked">le nom est clair et
correspond à une fonctionnalité</li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de
code/déclaration du projet respecté</li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>il faut commenter davantage, cest trop peu</li>
</ul></li>
</ul>
<h5 id="module-widgetc-critique-à-retravailler">module widget.c
<code>[critique]</code> <code>[à retravailler]</code></h5>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled" checked="checked">le nom est clair et
correspond à une fonctionnalité</li>
</ul>
<h6 id="headsc-critique-à-retravailler">heads.c <code>[critique]</code>
<code>[à retravailler]</code></h6>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled">le nom est clair et correspond
à une fonctionnalité<ul>
<li>heads != headers…</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement limite 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>il faut commenter, quasi rien de fait</li>
</ul></li>
</ul>
<h6 id="laboc-critique-à-retravailler">labo.c <code>[critique]</code>
<code>[à retravailler]</code></h6>
<p><em>You who enter here, leave all hope of an understandable
code</em></p>
<p>Ok, je saute.</p>
<h6 id="rulesc-critique-à-retravailler">rules.c <code>[critique]</code>
<code>[à retravailler]</code></h6>
<ul>
<li><input type="checkbox" disabled="disabled">le nom est clair et correspond
à une fonctionnalité<ul>
<li>confusion entre loutil (les arbres, les treeview, etc) et la
structure de données affichée (règles).</li>
<li>à nommer différemment, selon la fonction réelle</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement limite 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>il faut commenter, quasi rien de fait</li>
</ul></li>
<li><code>@:32</code> En GTK4, il ne faut jamais utiliser la taille de
fenêtre comme comme référence ou aide au layout. Ce nest pas dans
lesprit de lAPI. On utilisera plutôt les méthodes de layout (GtkGrid
par exemple).</li>
<li>de manière générale : les fonctions commençant par <code>get</code>
devraient être des des getters. Cest à dire renvoyer des valeurs et non
pas des widgets ! Cest un nommage trompeur et problématique.</li>
</ul>
<h6 id="statec-critique-à-retravailler">state.c <code>[critique]</code>
<code>[à retravailler]</code></h6>
<ul>
<li><input type="checkbox" disabled="disabled">le nom est clair et correspond
à une fonctionnalité<ul>
<li>nom trop commun et pas assez clair</li>
<li>state machine (cest ce que cest) mais en terme de widget ?</li>
<li>séparer la logique des widgets est nécessaire</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled">style de commentaire minimal et
systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement limite 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>il faut commenter, quasi rien de fait</li>
</ul></li>
<li><code>@:34</code> En GTK4, il ne faut jamais utiliser la taille de
fenêtre comme comme référence ou aide au layout. Ce nest pas dans
lesprit de lAPI. On utilisera plutôt les méthodes de layout (GtkGrid
par exemple).</li>
<li>de manière générale : les fonctions commençant par <code>get</code>
devraient être des des getters. Cest à dire renvoyer des valeurs et non
pas des widgets ! Cest un nommage trompeur et problématique.</li>
</ul>
<h6 id="stockc-critique-à-retravailler">stock.c <code>[critique]</code>
<code>[à retravailler]</code></h6>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled">le nom est clair et correspond
à une fonctionnalité<ul>
<li>???</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled" checked="checked">style de commentaire
minimal et systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement limite 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>pas du tout commenté</li>
</ul></li>
</ul>
<h6 id="treec-critique-à-retravailler">tree.c <code>[critique]</code>
<code>[à retravailler]</code></h6>
<ul class="task-list">
<li><input type="checkbox" disabled="disabled" checked="checked">le nom est clair et
correspond à une fonctionnalité</li>
<li><input type="checkbox" disabled="disabled">contient un en-tête de licence
valide selon la norme SPDX</li>
<li><input type="checkbox" disabled="disabled">style de commentaire minimal et
systématique</li>
<li><input type="checkbox" disabled="disabled">style de code/déclaration du
projet respecté<ul>
<li>dépassement limite 80 caractères</li>
</ul></li>
<li><input type="checkbox" disabled="disabled">clarté et utilité des
commentaires<ul>
<li>pas assez commenté</li>
</ul></li>
</ul>
</body></html>