Bonnes pratiques de programmation en Pascal
Un débat pour rassembler les meilleurs conseils de programmation

Les rubriques (actu, forums, tutos) de Développez
Tags
Réseaux sociaux


 Discussion forum

Le , par Alcatîz, Responsable Pascal
Bonjour à toutes et à tous,

Le forum Pascal regorge de conseils et de bonnes pratiques de programmation. Force est de constater qu'il faut beaucoup de recherches pour les retrouver et que certains conseils doivent sans cesse être répétés aux développeurs qui débutent en Pascal.
D'où l'idée de les regrouper dans un unique fil de discussion.

Nous en profitons pour vous rappeler l'article de Philippe Gormand sur l'écriture de code Pascal, qui contient plein de conseils d'indentation et de mise en forme, de choix d'identificateurs, etc.

Nous vous invitons à partager avec tous les membres du forum vos meilleures pratiques. Lorsqu'il y aura suffisamment de matière, nous pourrons rassembler tous vos conseils dans un véritable guide.



Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de CapJack CapJack
http://www.developpez.com
Membre émérite
le 26/08/2011 16:53
Citation Envoyé par droggo  Voir le message
Mau,
Code :
1
2
var 
    nomFichier : string;

Grrr...

Code :
1
2
var 
    FileName: string;


Plus généralement, on a tous nos petites habitudes, ça fait aussi partie de la liberté tant que le code est lisible et compréhensible. Et pour ça, trois règles : indenté, léger, commenté. Après, 'faut pas tomber dans l'intégrisme. J'écris ça de façon générale, hein, ça n'est adressé à personne en particulier, bien évidemment...
Avatar de EpiTouille EpiTouille
http://www.developpez.com
Membre chevronné
le 26/08/2011 17:09
Pardon, j'avais penser au début à mettre une boucle for

Code :
1
2
3
4
5
for i := 1 to 10 do begin 
  instruction; 
  ... 
  ... 
end;
Je prefère cette notation car on a bien le for et le end indenté pareil. On voit donc bien les limites de la boucle. Et donc, même principe pour les procedures

alors que

Code :
1
2
3
4
5
6
for i := 1 to 10 do 
 begin 
   instruction; 
   ... 
   ... 
 end;
on a un espace vide entre le end et a marge. Je trouve qu'on ne voit pas forcement au premier coup d'oeil, ce que délimitent les begin/end.

Après c'est un choix personnel.
Avatar de droggo droggo
http://www.developpez.com
Expert Confirmé Sénior
le 26/08/2011 17:58
Qia,
Citation Envoyé par CapJack  Voir le message
Grrr...

Code :
1
2
var 
    FileName: string;

Désolé, mais je ne vois aucune raison convaincante d'utiliser des mots anglais pour définir les noms.

Si mes programmes doivent être repris par quelqu'un d'autre, il faudra forcément qu'il/elle comprenne assez bien le français, car toutes les applications que je développe sont sont des commandes faites par des sociétés/associations... françaises (en sus des applis perso, bien entendu), et ceux/celles qui auront malgré tout l'occasion de les lire - en principe, personne - n'auront qu'à faire l'effort, il n'y a pas de raison que ce soit toujours dans le même sens (je te vois venir : "l'anglais est la langue internationale, ...", mais pffft ).

Pour le reste, il est clair que les préférences personnelles interviennent fortement, et que notre œil s'habitue à ... nos habitudes.
Avatar de CapJack CapJack
http://www.developpez.com
Membre émérite
le 26/08/2011 18:32
Eh bien, en plus du fait que l'anglais soit effectivement international (), il y a aussi une autre raison, esthétique celle-là. Si seulement les mots-clés pouvaient être localisés... mais ce n'est pas le cas, alors :

Code :
  if IsDefined(PointsArray) then...
est agréable, tandis que

Code :
if EstDefini(TableauPoints) then...
m'a toujours fait bondir au plafond. C'est quoi, ce franglais ? 'Pi, pas d'accents en plus ! Je sais, Delphi permet les accents depuis un certain temps, mais ce n'a pas été toujours le cas.
Enfin voilà, c'est aussi purement esthétique. J'dois être artiss', quèqu'part.
Avatar de M.Dlb M.Dlb
http://www.developpez.com
Rédacteur/Modérateur
le 26/08/2011 22:20
Citation Envoyé par CapJack  Voir le message
Eh bien, en plus du fait que l'anglais soit effectivement international (), il y a aussi une autre raison, esthétique celle-là. Si seulement les mots-clés pouvaient être localisés... mais ce n'est pas le cas, alors :

Code :
  if IsDefined(PointsArray) then...
est agréable, tandis que

Code :
if EstDefini(TableauPoints) then...
m'a toujours fait bondir au plafond. C'est quoi, ce franglais ? 'Pi, pas d'accents en plus ! Je sais, Delphi permet les accents depuis un certain temps, mais ce n'a pas été toujours le cas.
Enfin voilà, c'est aussi purement esthétique. J'dois être artiss', quèqu'part.

Même si ca doit en faire bondir plus d'un, je soutiens Capjack sur ce point... Tous les noms des procédures, fonctions incluses dans Pascal (et plus généralement dans quasiment tous les langages de programmation) sont en anglais, et mélanger français et anglais c'est juste moche !
Avatar de ALT ALT
http://www.developpez.com
Membre Expert
le 01/01/2012 22:56
L'argument contraire pourrait être du style : j'ai besoin de trois variables début, inter[médiaire] & fin pour un traitement (ça m'est arrivé plus d'une fois).
Avec les mots en rosbif, je risque d'avoir un conflit avec le compilateur. À moins de préfixer mes mots (du style procBegin, stringEnd...) ce qui alourdit l'écriture sans le moindre avantage.
Et des exemples comme ça, on peut en trouver d'autres, le nombre de fonctions fournies avec les compilateurs modernes augmentant régulièrement. Le risque de conflit de noms est donc de plus en plus important, sans que le compilateur y trouve à redire, puisque ce ne sont pas des mots-clés.
Et puis on peut préférer des mots français, même sans accents, à des borborygmes étrangers.
Na !
Non mais ! C'est vrai, quoi !
Avatar de droggo droggo
http://www.developpez.com
Expert Confirmé Sénior
le 02/01/2012 5:06
Wie,

De plus, utiliser le français dans mes programmes a un avantage, trop souvent négligé à mon avis :

comme presque tout le reste utilise des mots anglais, je sais au premier coup d'oeil que ces termes viennent de mes sources. Sur les gros projets, ce n'est pas négligeable.

Maintenant, si vous tenez à utiliser l'anglais, libre à vous, mais ne venez pas dire que ça devrait faire partie des règles d'une programmation propre, car ce n'est que votre avis.
Avatar de Paul TOTH Paul TOTH
http://www.developpez.com
Expert Confirmé Sénior
le 02/01/2012 6:07
je pense que le choix de la langue est plus une culture d'entreprise (ou un choix personnel) qu'une règle de programmation "propre" en effet

mais je préfère utiliser l'anglais car il me semble plus logique d'écrire if GetPixel = False then ResetBitmap que le franglais if LirePixel = False then ReinitBitmap.

Et la suppression des accents peut poser un problème if Termine then...termine ou terminé ? if not Terminated then Terminate...ou pourra évidement écrire if not EstTermine then Termine mais l’ambiguïté restera sur un "Termine" seul.
Avatar de ALT ALT
http://www.developpez.com
Membre Expert
le 02/01/2012 12:19
Ce genre d'ambiguïté existe aussi en "gros mots". Un simple exemple, même si ce n'est pas nécessairement le plus judicieux : exit. On doit le comprendre comment : sortie, sortir ou sors ?
Dans la plupart des cas, avec cet exemple, ça ne prêtera pas vraiment à conséquence. Mais des exemples plus pertinents (désolé, je n'en trouve pas : mon neurone est encore embrumé ) montreraient que les quiproquos sont légion, aussi.
Donc, argument irrecevable.
Et donc vive le français !
Avatar de Paul TOTH Paul TOTH
http://www.developpez.com
Expert Confirmé Sénior
le 02/01/2012 13:18
Citation Envoyé par ALT  Voir le message
Ce genre d'ambiguïté existe aussi en "gros mots". Un simple exemple, même si ce n'est pas nécessairement le plus judicieux : exit. On doit le comprendre comment : sortie, sortir ou sors ?

exit est un mot réservé en Pascal, donc pas d'hésitation ^^

non le seul truc qui m'embête avec l'anglais c'est le vocabulaire...je ne connais pas toujours le mot anglais ^^

quand je développe en OpenSource je ne prend pas toujours soins de mettre les libellés en anglais...mais je m'assure généralement que le nom des composants permette à un développeur qui ne connais pas le français de s'en sortir...exemple le bouton Quitter s'appellera btnQuit, le libellé "profile utilisateur" sera sur un TLabel lblUserName, etc...
Avatar de richard richard
http://www.developpez.com
Membre expérimenté
le 02/01/2012 14:21
Bonjour,

Pour ma part j'utilise le français à chaque fois que je le peux pour des raisons personnelles même si je lis l'anglais (et pas seulement l'anglais technique) sans difficulté.
Pour l'exemple "Terminé / Termine/ etc." pourquoi ne pas utiliser le mot "fini/finir" qui dissipe totalement l'ambiguïté ? Le français est riche en synonymes, cela ne m'a jamais posé de problème.
Donc je rejoins Droggo sur le fait que c'est un choix personnel qui n'a rien à voir avec une prétendue "bonne habitude" de programmation.
Offres d'emploi IT
Intégrateur webdesigner en alternance
Alternance
IP-FORMATION - Ile de France - Paris (75000)
Parue le 04/08/2014
programmeur circuit intégré (assembleur)
Mission
GD-Audio - Belgique - Bruxelles
Parue le 29/08/2014
Administrateur système h/f
CDI
Cellfish Media - Ile de France - Île-de-France
Parue le 19/08/2014

Voir plus d'offres Voir la carte des offres IT
 
 
 
 
Partenaires

PlanetHoster
Ikoula