Files
2026-06-17 14:00:51 +02:00

138 lines
7.0 KiB
Plaintext

<!DOCTYPE html>
<html lang="fr">
<!-- Updated by Blorec Herv&#233; le 2016-08-14-->
<head>
<title>JMRI: Pratiques Recommand&#233;es</title>
<meta name="author" content="Bob Jacobsen">
<meta name="keywords" content="JMRI technical code standards recommendation Swing">
<!--#include virtual="/help/fr/parts/Style.shtml" -->
</head>
<body>
<!--#include virtual="/help/fr/parts/Header_fr.shtml" -->
<div id="mBody">
<!--#include virtual="Sidebar.shtml" -->
<div id="mainContent">
<!-- Page Body -->
<h1>JMRI: Pratiques Recommand&#233;es</h1>
Voici la page d'infos diverses et des pointeurs pour les d&#233;veloppeurs JMRI.
<h2>Class Library Preferences</h2>
<ul>
<li>
Nous utilisons Java Swing pour notre d&#233;veloppement de l'Interface Graphique Utilisateur (GUI). Il est beaucoup plus puissant
que l'AWT d'origine, et le prix est juste. Nous avons recommand&#233; un
mod&#232;le d'organisation et d'utilisation qui est document&#233; sur
<a href="Swing.shtml"> une autre page</a>.</li>
<li> JMRI utilise les biblioth&#232;ques RXTX pour soutenir les communications s&#233;rie sur Macintosh,
Linux et Windows. Sous Windows uniquement, le paquet de Serialio
<a href="http://Serialio.com"> Serialio.com</a> est &#233;galement utilis&#233;
pour &#234;tre en mesure d'utiliser la vitesse de transmission MS100. Pour ce faire, la
classe jmri.jmrix.loconet.ms100.MS100Adapter a &#233;t&#233; convertie pour utiliser la
r&#233;flexion de Java pour d&#233;cider si le paquet Serialio est
disponible; sur d'autres syst&#232;mes, il utilise RXTX.
Notez que notre licence de Serialio est limit&#233;e &#224; ce seul usage;
nous ne sommes pas autoris&#233;s &#224; distribuer les biblioth&#232;ques &#224; d'autres fins.</li>
<li>Prenez quelques instants pour en apprendre davantage sur les types diff&#233;rents de
<a href="http://java.sun.com/j2se/1.5.0/docs/guide/collections/overview.html"> collections Java</a>
qui sont disponibles
(<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/List.html">Liste</a>,
<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/HashMap.html">HashMap</a>,
etc)
dans le paquet
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/package-summary.html"> java.util</a>.
Tout ne doit pas &#234;tre un Vecteur ou un tableau.</li>
<li>
JMRI utilise largement les
<a href="http://java.sun.com/docs/books/tutorial/java/generics/index.html"> g&#233;n&#233;riques Java</a>
pour
<a href="http://java.sun.com/docs/books/tutorial/java/generics/generics.html"> r&#233;duire les erreurs et
am&#233;liorer la compr&#233;hension</a>.
Avec beaucoup de gens qui &#233;crivent et partagent le code, &#224; l'aide de
g&#233;n&#233;riques au lieu de casts, rend beaucoup plus facile la compr&#233;hension du code,
et permets au compilateur de corriger de nombreux malentendus sur la fa&#231;on dont les choses
devraient &#234;tre utilis&#233;es. La plupart des informations importantes &#224; leur sujet peuvent
&#234;tre trouv&#233;es sur
<a href="http://java.sun.com/docs/books/tutorial/java/generics/gentypes.html"> cette page</a> du Tutoriel Java.</li>
<li>
Si vous avez besoin d'utiliser les fichiers de variables s&#233;par&#233;es par des virgules (CSV),
s'il vous pla&#238;t utiliser les
<a href="https://commons.apache.org/proper/commons-csv/"> API Apache Commons CSV</a>
si possible. Nous utilisons d&#233;j&#224;, dans un certain nombred'endroit,
et probablement l'utiliser plus. Si cela ne donne pas
suffisamment de fonctionnalit&#233;s, nous pourrions &#233;ventuellement passer &#224; l'
<a href="http://opencsv.sourceforge.net/"> API opencsv</a>, mais comme nous voulons n'en utiliser qu'un
la conversion demandera beaucoup de travail.</li>
</ul>
<h2>Format du Code</h2>
Les
<a href="http://www.oracle.com/technetwork/java/codeconventions-150003.pdf"> Conventions Code Java </a>
pour les noms, mise en forme, etc sont vraiment utiles.
Si vous trouvez que vous ne pouvez pas lire un morceau de code, ceux-ci vous aideront &#224; mieux faire.
<p>
Notez que nous avons quelques conventions locales au-del&#224; de celles qui sont dans les recommandations Java.
Vous les trouverez sur d'autres pages dans cette section, mais par exemple, nous recommendons
que vous d&#233;finissiez le <a href="Logging.shtml">r&#233;f&#233;rence de journalisation</a> en bas de chaque fichier.
<h2>Code Obsol&#232;te</h2>
Comme le d&#233;veloppement se poursuit, parfois d'anciennes fa&#231;ons de faire les choses doivent &#234;tre remplac&#233;es par
de nouvelles fa&#231;ons.
Dans de nombreux cas, vous pouvez simplement changer tout le code utilis&#233; dans votre r&#233;pertoire
et avancer.
Pour les interfaces g&#233;n&#233;rales qui pourraient &#234;tre utilis&#233;s &#224; l'ext&#233;rieur de JMRI,
comme dans les scripts et les CATS,
il peut &#234;tre bon de laisser l'ancienne interface en place pendant un certain temps,
en la marquant comme "obsol&#232;te" de sorte que les gens peuvent d&#233;couvrir qu'elle
finira par dispara&#238;tre.
Apr&#232;s un nombre suffisant de cycles de parution,
l'Interface obsol&#232;te peut alors &#234;tre retir&#233;e.
<p>
Notez que l'interface obsol&#232;te est destin&#233;e &#224; travailler encore.
Obsol&#232;te devrait seulement dire que vous
ne pouvez pas compter sur l'interface obsol&#232;te pour travailler &#224; l'avenir,
de sorte qu'il serait bon de coder ailleurs, pendant que &#231;a fonctionne toujours.
<p>
Vous pouvez travailler avec les contr&#244;les relatifs &#224; l'obsolescence "on" lors de la compilation.
Pour ce faire, changez cette ligne de build.xml:
<code>
&lt;property name="deprecation" value="on" /&gt;
</code>
Cela vous permet d'&#234;tre attentif aux nouveaux avertissements de d&#233;sapprobation quand vous codez.
<p>
Il existe deux formes pour marquer quelque chose comme obsol&#232;te (tag Javadoc et Annotation),
et tous deux vous permettent d'ajouter des informations suppl&#233;mentaires. Une belle discussion
des techniques est
<a href="http://download.oracle.com/javase/1.5.0/docs/guide/javadoc/deprecation/deprecation.html">ici</a>.
Nous les utilisons de cette fa&#231;on:
<code>
* @ Deprecated 2.7.8
@ Deprecated // 2.7.8
</code>
o&#249; la ligne contenant la version dans laquelle la d&#233;valorisation est appliqu&#233;e.
Cela vous permet de savoir facilement depuis combien de temps elle a &#233;t&#233; d&#233;sapprouv&#233;e.
<!--#include virtual="/help/fr/parts/Footer_fr.shtml" -->
</div><!-- closes #mainContent-->
</div> <!-- closes #mBody-->
<script src="/js/help.js"></script>
</body>
</html>