Exemples minimalistes
Exemple minimaliste… mais qu’est-ce donc que cela ?
Un exemple minimaliste est un bout de code duquel plus rien ne peut être retiré.
Pourquoi être minimaliste ?
- Au plus l’exemple est simpliste, au plus vite ceux qui pourraient vous aider comprendront votre propos et vous apporteront une réponse.
- Réduire l’exemple à sa plus simple expression indique que vous avez déjà tenté par vous-même de trouver une solution. Des tonnes de lignes laissent à penser que celui qui les envoie se soucie guère de ce qui arrive.
- La génération d’un exemple minimaliste permet de comprendre ce qui se passe et évite la plupart du temps de signaler un problème qui, en réalité, n’existe pas : lorsqu’un « bogue » ne peut être reproduit dans le cadre d’un exemple minimal, il y a de fortes présomptions qu’il s’agisse d’une inadéquation entre l’utilisateur et LilyPond plutôt que réellement d’un « bogue ».
Comment être minimaliste ?
- Inclure une mention
\version
pour indiquer le numéro de version utilisée. - Être aussi bref et concis que possible. Si des problèmes concernant les espacements ou la mise en page peuvent nécessiter un certain nombre de mesures, la plupart des litiges peuvent se cantonner à moins d’une mesure.
- Lorsque vous créez un exemple minimal à partir de votre code, commencez
par commenter des portions de votre fichier – à l’aide de
%
ou%{ … %}
. Tout ce que vous mettez en commentaire et qui ne nuit pas à la démonstration est superflu ; suprimez-le ! - Évitez autant que faire se peut toute notation, tonalité ou métrique complexe, à moins que leur traitement ne soit précisément l’objet du litige.
- N’utilisez pas les commandes
\override
ou\set
à moins que le problème ne soit directement lié à leur utilisation. - Transmettez votre code sous la forme d’une pièce jointe à votre courriel – de nombreux courrieleurs ne gèrent pas correctement le code LilyPond, supprimant les sauts de ligne (ce qui le rend illisible) ou insérant des espaces insécables (ce qui rend le code incompilable).
- Le cas échéant, joignez une image de ce à quoi vous voulez arriver.
Jusqu’où pousser le minimalisme ?
En voici un exemple :
\version "2.14.1" \include "english.ly" \score { \new Staff { \key d \major \numericTimeSignature \time 2/4 <cs' d'' b''>16 <cs' d'' b''>8. %% Ici : la liaison des ré est bizarre. %% Trop haute ? Extrémité gauche décalée par rapport à celle du si ? ~ <cs' d'' b''>8 [ <b d'' a''> ] } }
C’est vrai, ce n’est pas très long. Mais on peut encore le réduire :
\version "2.14.1" { % la liaison du milieu est bizarre : <c' d'' b''>8. ~ <c' d'' b''>8 }
Les exemples minimalistes dépassant les dix lignes de code ne sont pas légion – quatre lignes suffisent bien souvent à indiquer le problème.