Mon Code
Le code ici a été développé sur une période de plus de quinze
ans ; certaines parties ont été originalement écrites en C,
même avant que je n'aie commencé en C++. Leur mise à jour s'est fait
de façon sporadique, selon le temps disponible et mes besoins du
moment. Du coup, le code est dans l'état où il est ; je ne
prétends pas qu'il soit d'une qualité acceptable pur un usage
professionnel. En plus, la qualité varie beaucoup selon le
composant ; certains composants me servent beaucoup, et donc
reçoivent une maintenance plus rigueureuse que d'autres.
Le code ici est actuellement dans un état de désorganisation assez
notablem, de fait que je me trouve au milieu de trois modifications
structurelles importantes :
-
Je suis en train d'en reorganiser la documentation.
Originalement, toute la documentation se trouvait dans les
en-têtes, parfois en anglais, parfois en français et parfois dans
les deux. Pour diverses raisons, je me suis dit qu'il faudrait le
passer à Doxygen. Et de le faire systèmatiquement en deux, et plus
tard trois langues. Alors, il s'est avéré très rapidement que
systèmatiquement, maintenir systèmatiquement plusieurs langues
dans les en-têtes, surtout en format Doxygen, n'était pas tenable.
Du coup, je me suis mis à convertir la documentation pour
utiliser des fichiers séparés, un par langue – c'est
la situation d'un certain nombre de composants ici. Mais cette
solution non plus n'est pas sans poser des problèmes, et pour
l'instant, certains composants ont une documentation Doxygen dans
les en-têtes, parfois bilingue, parfois non, d'autres ont de la
documentation dans des fichiers à part, avec des noms
composant.fr ou composant.en (avec
parfois la documentation en anglais qui manque), et finalement
d'autres avec la documentation d'autrefois, dans les en-têtes,
en français, en anglais, ou en les deux, mais pas en format
Doxygen. Si quelqu'un connaît une bonne solution pour la
documentation multi-langue sous Doxygen, je suis intéressé. Parce
qu'en attendant, la confusion règne, et elle ne risque pas de
disparaître tant que je ne sais pas exactement ce qu'il faut.
-
J'expérimente un peu avec la gestion des versions dans l'espace
référentiel. Tant que j'étais seul à me servir de la bibliothèque,
la gestion des versions n'était pas un vrai problème. J'avais
accès à tout le code utilisateur, et je pouvais modifier le code
utilisateur si je changais une interface. Du moment que je rends
le code disponible, j'ai une obligation d'une certaine stabilité.
Mais de l'autre part, je ne veux pas interdire toute évolution. Du
coup, il faut une gestion des versions, pour que le code compilé
avec une version ne soit pas linké avec une autre.
-
La structure initiale des fichiers de make est arrivée un peu à
ces limites. J'en ai créé une plus structurée dans une autre
application, que j'ai envie d'appliquer ici. Pour l'instant,
l'effet n'en est pas visible, mais ça viendra. En attendant, en
revanche, je n'ai effectué qu'une maintenance minimal sur
l'existant, et du coup, ce n'est pas aussi lisible que ça pourrait
l'être.
Il y a plusieurs pages de documentation dans la bibliothèque
elle-même, certaines en HTML, et d'autres du texte pur :
Finallement, pour des exécutables qui pourraient avoir un intérêt,
il y a aussi des pages de man, en format HTML (tous en
anglais) :