Sou recém-formado em AI (cerca de 2 anos) trabalhando para uma operação modesta. Incumbiu a mim (principalmente porque sou o primeiro 'adotante' no departamento) criar um documento básico (lido útil?) Sobre padrões de codificação C #.
Acho que devo explicar que provavelmente sou o engenheiro de software mais júnior, mas estou ansioso por essa tarefa, pois espero conseguir produzir algo meio utilizável. Eu fiz uma pesquisa bastante extensa na Internet e li artigos sobre o que um documento de normas de codificação deve ou não deve conter. Parece um bom lugar para pedir algumas sugestões.
Percebo que estou potencialmente abrindo uma porta para um mundo inteiro de discordâncias sobre "a melhor maneira de fazer as coisas". Entendo e respeito o fato inegável de que cada programador tem um método preferido para resolver cada tarefa individual; como resultado, não estou procurando escrever algo tão draconiano como proscritivo que sufocar o talento pessoal, mas tentar obter uma metodologia geral e concordar. normas (por exemplo, convenções de nomenclatura) para ajudar a tornar os indivíduos mais legíveis.
Então aqui vai .... alguma sugestão? Alguma coisa?
p_strName
- torna 10% menos doloroso quando você é forçado a trabalhar com essa abominação. : oEu adicionaria o Code Complete 2 à lista (eu sei que Jeff é um fã aqui) ... Se você é um desenvolvedor júnior, o livro é útil para configurar sua mente de uma maneira que estabeleça as bases para o melhor práticas de escrita de código e criação de software.
Devo dizer que cheguei a isso um pouco mais tarde na minha carreira, mas rege muitas maneiras de pensar sobre codificação e desenvolvimento de estruturas na minha vida profissional.
Vale a pena conferir;)
fonte
As próprias regras da Microsoft são um excelente ponto de partida. Você pode aplicá-los com o FxCop.
fonte
Eu ficaria tentado a impor o StyleCop da Microsoft como padrão. Pode ser aplicado no momento da construção. mas se você tiver um código legado, basta aplicar o StyleCop no novo código.
http://code.msdn.microsoft.com/sourceanalysis
Eventualmente, ele terá uma opção de refatoração para limpar o código.
http://blogs.msdn.com/sourceanalysis/
fonte
Pessoalmente, gosto do que o IDesign montou. Mas não é por isso que estou postando ...
A parte complicada da minha empresa foi levar em consideração todos os idiomas diferentes. E sei que minha empresa não está sozinha nisso. Usamos C #, C, assembly (criamos dispositivos), SQL, XAML, etc. Embora existam algumas semelhanças nos padrões, cada um é geralmente tratado de maneira diferente.
Além disso, acredito que padrões de nível superior têm um impacto maior na qualidade do produto final. Por exemplo: como e quando usar comentários, quando as exceções são obrigatórias (por exemplo, eventos iniciados pelo usuário), se (ou quando) usar exceções versus valores de retorno, qual é a maneira objetiva de determinar o que deve ser o código do controlador versus o código da apresentação, etc. Não me interpretem mal, também são necessários padrões de baixo nível (a formatação é importante para facilitar a leitura!) Eu só tenho um viés em relação à estrutura geral.
Outra peça a ter em mente é a adesão e a aplicação. Os padrões de codificação são ótimos. Mas se ninguém concorda com eles e (provavelmente o mais importante) ninguém os aplica, então é tudo por nada.
fonte
Enquanto escrevi tanto o publicado para a Philips Medical Systems quanto o http://csharpguidelines.codeplex.com, posso ser um pouco tendencioso, mas tenho mais de 10 anos em escrever, manter e promover padrões de codificação. Tentei escrever o CodePlex com diferentes opiniões em mente e passei a maior parte da introdução sobre como lidar com isso em sua organização em particular. Leia e forneça feedback .....
fonte
Regras SSW
Ele inclui alguns padrões de C # e muito mais .... principalmente voltado para desenvolvedores da Microsoft
fonte
Eu discordo - desde que ele crie o documento, o pior que pode acontecer é que ele seja esquecido por todos.
Se outras pessoas tiverem problemas com o conteúdo, peça para atualizá-lo para mostrar o que eles preferem. Dessa forma, está fora de seu alcance, e os outros têm a responsabilidade de justificar suas alterações.
fonte
Recentemente, encontrei o Encodo C # Handbook , que inclui idéias de muitas outras fontes (IDesign, Philips, MSDN).
Outra fonte pode ser o Professional C # / VB .NET Coding Guidelines .
fonte
Sou um grande fã do livro de Francesco Balena " Diretrizes práticas e práticas recomendadas para desenvolvedores de VB e C # ".
É muito detalhado e abrange todos os tópicos essenciais. Ele não apenas fornece a regra, mas também explica o motivo por trás da regra, além de fornecer uma anti-regra em que poderia haver duas práticas recomendadas opostas. A única desvantagem é que ele foi escrito para desenvolvedores do .NET 1.1.
fonte
Todo o nosso padrão de codificação lê aproximadamente "Use StyleCop".
fonte
Veja isto: http://www.noesispedia.com/post/2008/11/28/C-Coding-Guidelines-and-Best-Practices.aspx .
fonte
Eu tenho que sugerir o documento dotnetspider.com .
É um documento excelente e detalhado que é útil em qualquer lugar.
fonte
Eu usei o Juval antes e isso acabou, se não for um exagero, mas sou preguiçoso e agora apenas me conforme com a vontade do Resharper .
fonte
Você pode conferir isso, os 7 principais padrões de codificação e documentos de diretrizes para desenvolvedores de C # / .NET http://www.amazedsaint.com/2010/11/top-6-coding-standards-guideline.html espero que isso ajude
fonte
Acho que ecoo os outros comentários aqui de que as diretrizes já vinculadas ao MS são um excelente ponto de partida. Eu modelo meu código amplamente sobre eles.
O que é interessante porque meu gerente me disse no passado que não gosta muito deles: D
Você tem uma tarefa divertida pela frente, meu amigo. Boa sorte e pergunte se você precisa de mais alguma coisa :)
fonte
O padrão da Philips Medical Systems é bem escrito e segue principalmente as diretrizes da Microsoft: www.tiobe.com/content/paperinfo/gemrcsharpcs.pdf
Meus padrões são baseados nisso com alguns ajustes e algumas atualizações para o .NET 2.0 (o padrão da Philips foi escrito para o .NET 1.x, por isso é um pouco datado).
fonte
Eu também sigo o Resharper. Também a linha de guia mencionada no blog scott guthrie http://weblogs.asp.net/scottgu/archive/2007/10/08/october-8th-links-asp-net-asp-net-ajax-silverlight-and-net .aspx E http://csharpguidelines.codeplex.com/releases/view/46280
fonte
No código que escrevo, geralmente sigo as Diretrizes de Design do .NET Framework para APIs expostas publicamente e as Diretrizes de codificação mono para identificação e revestimento de membros particulares . Mono é uma implementação de código aberto do .NET, e acho que esses caras conhecem seus negócios.
Eu odeio como o código da Microsoft desperdiça espaço:
O que você pode achar estranho nas diretrizes Mono é que elas usam guias de 8 espaços. No entanto, após alguma prática, descobri que ele realmente me ajuda a escrever código menos confuso ao impor um tipo de limite de indentação.
Eu também amo como eles colocam um espaço antes de abrir parênteses.
Mas, por favor, não aplique algo assim se seus colegas de trabalho não gostarem (a menos que você esteja disposto a contribuir com o Mono ;-)
fonte