Comme avec tous les langages de programmation, il y a certaines conventions de base imposées par la définition même du langage. Le but de cela est de permettre aux développeurs de mettre en place des habitudes de développement qui vont leur permettre d’être confortables au maximum avec le langage en question.
Certains langages sont plus flexibles que d’autres. Par exemple, le langage Python interprète l’espace devant une ligne comme critère déterminant si elle fait partie d’un bloc déclaratif. Un exemple supplémentaire serait une norme associée au langage de programmation JavaScript. La norme voulant laisser l’accolade ouvrante sur la même ligne que la déclaration. (ex. : if(1==1) { ).
D’ailleurs, l’intention de ce billet n’est pas de faire le long et très nombriliste état de la façon que je mets en place mon C#. Il s’agit plutôt d’introduire une question qui a été soulevée lors d’une revue de code.
Le code en question était lié à l’utilisation du mot clé using qui allait comme suit :
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using (var sftp = new SftpClient(Host, Username, Password)) | |
using (new EditContext(importSettings, SecurityCheck.Disable)) | |
{ | |
//du code ici | |
} |
Vous remarquerez que les lignes contenant le using sont collées et utilisent une seule paire d’accolades. L’idée derrière l’utilisation de la syntaxe de cette façon est qu’on économise en niveau d’indentation.
Le principal point de désaccord de ce point est que l’astuce derrière l’utilisation de cette syntaxe est à un saut de ligne de ne pas fonctionner comme il se doit. Dans le cas où l’on sépare les deux lignes using, la protection qu’offre le premier bloc ne sera plus appliquée de la même façon.
À la lumière de cette discussion, nous avons établi qu’il serait plus en règle avec notre standard déjà en place. J’insiste énormément à toujours ajouter les accolades à un bloc if et cela même s’il y a une seule ligne de code à l’intérieur de celui-ci.
Et puis toi, le programmeur lecteur, comment écris-tu tes blocs using?
Je me sers très peu de « using », je n’aime pas particulièrement cette syntaxe.
De plus, dans ton exemple courant, je trouve également très dangereux de ne pas utiliser d’accolades après la déclaration du using FTP.