Je suis récemment diplômé en IA (environ 2 ans) travaillant pour une opération modeste. C'est à moi (principalement comme je suis le premier «adoptant» du département) de créer un document de normes de codage C # de base (lu utile?).
Je pense que je devrais expliquer que je suis probablement l'ingénieur logiciel le plus débutant, mais j'ai hâte d'accomplir cette tâche car j'espère pouvoir produire quelque chose à moitié utilisable. J'ai fait une recherche assez approfondie sur Internet et lu des articles sur ce qu'un document de normes de codage devrait / ne devrait pas contenir. Cela semble être un bon endroit pour demander des suggestions.
Je me rends compte que j'ouvre potentiellement la porte à tout un monde de désaccords sur «la meilleure façon de faire les choses». Je comprends et respecte à la fois le fait indéniable que chaque programmeur a une méthode préférée pour résoudre chaque tâche individuelle, par conséquent je ne cherche pas à écrire quelque chose d'aussi radicalement proscriptif que d'étouffer le flair personnel mais d'essayer d'obtenir une méthodologie générale et d'accord normes (par exemple les conventions de dénomination) pour aider à rendre le code des individus plus lisible.
Alors voilà ... des suggestions? Du tout?
p_strName
- le rend 10% moins douloureux lorsque vous êtes obligé de travailler avec une telle abomination. : oJ'ajouterais Code Complete 2 à la liste (je sais que Jeff est un peu fan ici) ... Si vous êtes un développeur junior, le livre est pratique pour configurer votre esprit d'une manière qui jette les bases du meilleur il existe des pratiques d'écriture de code et de création de logiciels.
Je dois dire que j'y suis arrivé un peu tard dans ma carrière, mais cela régit de nombreuses façons dont je pense au codage et au développement de cadres dans ma vie professionnelle.
Cela vaut le détour;)
la source
Les propres règles de Microsoft sont un excellent point de départ. Vous pouvez les appliquer avec FxCop.
la source
Je serais tenté d'appliquer le StyleCop de Microsoft comme norme. Il peut être appliqué au moment de la construction. mais si vous avez du code hérité, appliquez simplement StyleCop sur le nouveau code.
http://code.msdn.microsoft.com/sourceanalysis
Finalement, il aura une option de refactorisation pour nettoyer le code.
http://blogs.msdn.com/sourceanalysis/
la source
Personnellement, j'aime celui qu'IDesign a mis en place. Mais ce n'est pas pour ça que je poste ...
La difficulté dans mon entreprise était de prendre en compte toutes les langues. Et je sais que mon entreprise n'est pas seule à ce sujet. Nous utilisons C #, C, assembly (nous fabriquons des périphériques), SQL, XAML, etc. Bien qu'il y ait des similitudes dans les standards, chacun est généralement géré différemment.
De plus, je pense que des normes de niveau supérieur ont un impact plus important sur la qualité du produit final. Par exemple: comment et quand utiliser les commentaires, lorsque des exceptions sont obligatoires (par exemple, des événements déclenchés par l'utilisateur), si (ou quand) utiliser des exceptions par rapport aux valeurs de retour, quelle est la manière objective de déterminer ce que devrait être le code du contrôleur par rapport au code de présentation, etc. Ne vous méprenez pas, des normes de bas niveau sont également nécessaires (le formatage est important pour la lisibilité!) J'ai juste un biais envers la structure globale.
Un autre élément à garder à l'esprit est l'adhésion et l'application. Les normes de codage sont excellentes. Mais si personne n'est d'accord avec eux et (probablement plus important) personne ne les applique, alors tout est pour rien.
la source
Comme j'ai écrit à la fois celui publié pour Philips Medical Systems et celui publié sur http://csharpguidelines.codeplex.com, je suis peut-être un peu partial, mais j'ai plus de 10 ans d'expérience dans l'écriture, la maintenance et la promotion des normes de codage. J'ai essayé d'écrire le CodePlex en gardant à l'esprit les différences d'opinions et j'ai passé la majeure partie de l'introduction sur la façon de gérer cela dans votre organisation particulière. Lisez-le et faites-moi part de vos commentaires .....
la source
Règles SSW
Il comprend des normes C # + beaucoup plus ... principalement axé sur les développeurs Microsoft
la source
Je ne suis pas d'accord - tant qu'il crée le document, le pire qui puisse arriver, c'est qu'il soit oublié de tout le monde.
Si d'autres personnes ont des problèmes avec le contenu, vous pouvez leur demander de le mettre à jour pour montrer ce qu'ils préfèrent. De cette façon, c'est hors de votre assiette, et les autres ont la responsabilité de justifier leurs changements.
la source
J'ai récemment trouvé le manuel Encodo C # , qui comprend des idées provenant de nombreuses autres sources (IDesign, Philips, MSDN).
Une autre source peut être Professional C # / VB .NET Coding Guidelines .
la source
Je suis un grand fan du livre de Francesco Balena " Practical Guidelines and Best Practices for VB and C # Developers ".
Il est très détaillé et couvre tous les sujets essentiels.Il ne vous donne pas seulement la règle, mais explique également la raison de la règle, et fournit même une anti-règle où il pourrait y avoir deux meilleures pratiques opposées. Le seul inconvénient est qu'il a été écrit pour les développeurs .NET 1.1.
la source
L'ensemble de notre norme de codage se lit à peu près «Utiliser StyleCop».
la source
Voir ceci: http://www.noesispedia.com/post/2008/11/28/C-Coding-Guidelines-and-Best-Practices.aspx .
la source
Je dois suggérer le document dotnetspider.com .
C'est un excellent document détaillé qui est utile partout.
la source
J'ai déjà utilisé Juval et c'est fini sinon exagéré, mais je suis paresseux et maintenant je me conforme à la volonté de Resharper .
la source
Vous pouvez consulter ceci, Top 7 des normes de codage et des documents d'orientation pour les développeurs C # / .NET http://www.amazedsaint.com/2010/11/top-6-coding-standards-guideline.html espérons que cela vous aidera
la source
Je pense que je fais écho aux autres commentaires ici selon lesquels les lignes directrices des États membres déjà liées sont un excellent point de départ. Je modélise mon code en grande partie sur ceux-ci.
Ce qui est intéressant car mon manager m'a dit par le passé qu'il n'était pas trop attaché à eux: D
Vous avez une tâche amusante devant vous mon ami. Bonne chance et demandez si vous avez besoin de plus :)
la source
La norme de Philips Medical Systems est bien rédigée et suit principalement les directives de Microsoft: www.tiobe.com/content/paperinfo/gemrcsharpcs.pdf
Mes standards sont basés sur ceci avec quelques ajustements et quelques mises à jour pour .NET 2.0 (le standard Philips est écrit pour .NET 1.x donc est un peu daté).
la source
Je suis également Resharper. Aussi la ligne de guidage mentionnée sur le blog de scott guthrie http://weblogs.asp.net/scottgu/archive/2007/10/08/october-8th-links-asp-net-asp-net-ajax-silverlight-and-net .aspx et http://csharpguidelines.codeplex.com/releases/view/46280
la source
Dans le code que j'écris, je suis généralement les directives de conception .NET Framework pour les API exposées publiquement et les directives de codage mono pour la casse et l'indentation des membres privés . Mono est une implémentation open source de .NET, et je pense que ces types connaissent leur métier.
Je déteste la façon dont le code Microsoft gaspille de l'espace:
Ce que vous pourriez trouver étrange dans les directives Mono, c'est qu'elles utilisent des onglets à 8 espaces. Cependant, après un peu de pratique, j'ai trouvé que cela m'aide en fait à écrire du code moins emmêlé en imposant une sorte de limite d'indentation.
J'aime aussi la façon dont ils mettent un espace avant d'ouvrir les parenthèses.
Mais s'il vous plaît, n'appliquez rien de tel si vos collègues ne l'aiment pas (sauf si vous êtes prêt à contribuer à Mono ;-)
la source