Soy un recién graduado de IA (alrededor de 2 años) que trabaja para una operación modesta. Se me ha ocurrido a mí (principalmente porque soy el primer 'adoptante' en el departamento) crear un documento básico de estándares de codificación C # (¿lees útil?).
Creo que debería explicar que probablemente soy el ingeniero de software más joven, pero estoy ansioso por esta tarea, ya que espero poder producir algo medio utilizable. Hice una búsqueda bastante extensa en Internet y leí artículos sobre lo que un documento de estándares de codificación debería / no debería contener. Este parece ser un buen lugar para pedir algunas sugerencias.
Me doy cuenta de que potencialmente estoy abriendo una puerta a todo un mundo de desacuerdo sobre "la mejor manera de hacer las cosas". Entiendo y respeto el hecho innegable de que cada programador tiene un método preferido para resolver cada tarea individual, como resultado, no estoy buscando escribir nada tan draconianamente proscriptivo como para sofocar el talento personal, sino para tratar de obtener una metodología general y acordado estándares (por ejemplo, convenciones de nomenclatura) para ayudar a que los códigos individuales sean más legibles.
Así que aquí va ... alguna sugerencia? ¿Algo en absoluto?
p_strName
, lo que lo hace un 10% menos doloroso cuando se ve obligado a trabajar con tal abominación. : oAgregaría Code Complete 2 a la lista (sé que Jeff es un fanático aquí) ... Si usted es un desarrollador junior, el libro es útil para configurar su mente de una manera que sienta las bases para lo mejor prácticas de escritura de código y construcción de software que hay.
Tengo que decir que llegué un poco tarde en mi carrera, pero determina muchas de las formas en que pienso sobre la codificación y el desarrollo de marcos en mi vida profesional.
Vale la pena echarle un vistazo;)
fuente
Las propias reglas de Microsoft son un excelente punto de partida. Puede aplicarlos con FxCop.
fuente
Me sentiría tentado a aplicar StyleCop de Microsoft como estándar. Se puede aplicar en el momento de la construcción. pero si tiene código heredado, simplemente aplique StyleCop en el nuevo código.
http://code.msdn.microsoft.com/sourceanalysis
Eventualmente tendrá una opción de refactorización para limpiar el código.
http://blogs.msdn.com/sourceanalysis/
fuente
Personalmente, me gusta el que IDesign ha creado. Pero no es por eso que estoy publicando ...
La parte difícil de mi empresa fue tener en cuenta todos los idiomas diferentes. Y sé que mi compañía no está sola en esto. Usamos C #, C, ensamblaje (creamos dispositivos), SQL, XAML, etc. Aunque habrá algunas similitudes en los estándares, cada uno generalmente se maneja de manera diferente.
Además, creo que los estándares de nivel superior tienen un mayor impacto en la calidad del producto final. Por ejemplo: cómo y cuándo usar comentarios, cuando las excepciones son obligatorias (por ejemplo, eventos iniciados por el usuario), si (o cuándo) usar excepciones vs. valores de retorno, cuál es la forma objetiva de determinar qué debe ser el código del controlador versus el código de presentación, etc. No me malinterpreten, también se necesitan estándares de bajo nivel (¡el formato es importante para la legibilidad!) Simplemente tengo un sesgo hacia la estructura general.
Otra pieza a tener en cuenta es la aceptación y la aplicación. Los estándares de codificación son geniales. Pero si nadie está de acuerdo con ellos y (probablemente lo más importante) nadie los hace cumplir, entonces todo es en vano.
fuente
Mientras escribía tanto el publicado para Philips Medical Systems como el publicado en http://csharpguidelines.codeplex.com , podría estar un poco sesgado, pero tengo más de 10 años escribiendo, manteniendo y promoviendo estándares de codificación. Intenté escribir el CodePlex con las diferencias de opiniones en mente y pasé la mayor parte de la introducción sobre cómo lidiar con eso en su organización en particular. Léelo y dame tu opinión .....
fuente
Reglas de SSW
Incluye algunos estándares de C # + mucho más ... enfocado principalmente en desarrolladores de Microsoft
fuente
No estoy de acuerdo, siempre que él cree el documento, lo peor que puede pasar es que todos lo olviden.
Si otras personas tienen problemas con el contenido, puede pedirles que lo actualicen para mostrar lo que prefieren. De esa manera, está fuera de su alcance, y los demás tienen la responsabilidad de justificar sus cambios.
fuente
Recientemente encontré el Manual de Encodo C # , que incluye ideas de muchas otras fuentes (IDesign, Philips, MSDN).
Otra fuente puede ser Professional C # / VB .NET Coding Guidelines .
fuente
Soy un gran admirador del libro de Francesco Balena " Directrices prácticas y mejores prácticas para desarrolladores de VB y C # ".
Es muy detallado y cubre todos los temas esenciales. No solo te da la regla, sino que también explica la razón detrás de la regla, e incluso proporciona una regla anti en la que podría haber dos mejores prácticas opuestas. El único inconveniente es que fue escrito para desarrolladores de .NET 1.1.
fuente
Todo nuestro estándar de codificación dice aproximadamente "Use StyleCop".
fuente
Vea esto: http://www.noesispedia.com/post/2008/11/28/C-Coding-Guidelines-and-Best-Practices.aspx .
fuente
Tengo que sugerir el documento dotnetspider.com .
Es un documento excelente y detallado que es útil en cualquier lugar.
fuente
He usado Juval antes y eso es todo si no es excesivo, pero soy flojo y ahora solo me conforma con la voluntad de Resharper .
fuente
Puede consultar esto, los 7 principales estándares de codificación y documentos de guía para desarrolladores de C # / .NET http://www.amazedsaint.com/2010/11/top-6-coding-standards-guideline.html espero que esto ayude
fuente
Creo que me hago eco de los otros comentarios aquí de que las directrices de MS ya vinculadas son un excelente punto de partida. Modelo mi código en gran medida en esos.
Lo cual es interesante porque mi gerente me ha dicho en el pasado que no está muy interesado en ellos: D
Tienes una tarea divertida por delante, amigo mío. Mucha suerte, y por favor pregunte si necesita algo más :)
fuente
El estándar de Philips Medical Systems está bien escrito y sigue principalmente las pautas de Microsoft: www.tiobe.com/content/paperinfo/gemrcsharpcs.pdf
Mis estándares se basan en esto con algunos ajustes y algunas actualizaciones para .NET 2.0 (el estándar de Philips está escrito para .NET 1.x, por lo que está un poco anticuado).
fuente
También sigo a Resharper. También la línea de guía mencionada en el 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 y http://csharpguidelines.codeplex.com/releases/view/46280
fuente
En el código que escribo, generalmente sigo las Pautas de diseño de .NET Framework para API expuestas públicamente y las Pautas de codificación mono para la carcasa y sangría de miembros privados . Mono es una implementación de código abierto de .NET, y creo que esos tipos conocen su negocio.
Odio cómo el código de Microsoft desperdicia espacio:
Lo que puede resultar extraño en las pautas de Mono es que usan pestañas de 8 espacios. Sin embargo, después de un poco de práctica, descubrí que en realidad me ayuda a escribir código menos enredado al imponer una especie de límite de sangría.
También me encanta cómo ponen un espacio antes de abrir paréntesis.
Pero, por favor, no imponga nada de eso si a sus compañeros de trabajo no les gusta (a menos que esté dispuesto a contribuir a Mono ;-)
fuente