Nombro mis variables usando las convenciones .Net:
- camelCase para variables y campos (tiendo a usar _camelCase para campos privados en una clase)
- PascalCase para métodos, propiedades y clases.
El único lugar en el que me desvío es en constantes y enumeraciones donde realmente prefiero el estilo Java SCREAMING_CAPS.
La base de código de mi empresa está llena del estilo de notación pseudohúngara de VB6 y VBScript, si no es que húngaro completo, es decir
- s o str para Strings
- I o int para Ints
- d para decimal (o algunas veces doble)
- o u obj para cualquier tipo de objeto
Me estremezco cada vez que veo ese estilo de código utilizado en el código de otra persona (incluso en el código greenfield, no solo en el antiguo legado), y me niego a usar ese estilo yo mismo. Ya mencioné la estandarización en las convenciones de nombres .Net en el pasado y simplemente se ignora: las personas que escriben en notación húngara continúan haciéndolo, aquellos de nosotros a quienes no les gusto, seguimos usando nuestro propio estilo; Estoy un poco miedo de que si hacemos estandarizado (que sigo presionando para que, pero nadie más parece importarle), que va a ser en la notación húngara, y no la forma recomendada y entonces me veré obligado a escribir el código de esa .
¿Estoy haciendo una montaña de un molehill con respecto a esto? ¿No debería importarme si el código está lleno de identificadores redundantes y no nombres descriptivos, y seguir usando mi propio camino y presionar para que se convierta en el estándar?
fuente
Respuestas:
Lo único que debe preocuparte es que estás trabajando en un equipo donde a las personas no les importa limpiar un poco las cosas. Eso es muy triste.
Haz lo que haces, sigue usando el estilo moderno e invita a la gente (pero no los obligues) a adoptarlo también. Tomará tiempo por supuesto. Después de un tiempo verás si va a alguna parte y qué harás después.
PD: ¿Qué tal organizar una reunión sobre este tema e invitar a todos los involucrados? Luego obtendrá toda su atención, denotará el problema y presentará su enfoque. Les dará algo en qué pensar. Quizás de tus intentos locales no te estén tomando muy en serio.
fuente
SendNewCustomerEmail
que se utiliza para enviar todo tipo de correos electrónicos, no solo correos electrónicos de nuevos clientes. Tiene un comentario de un desarrollador actual que dice "Tenga en cuenta que este nombre es engañoso", pero nadie ha considerado cambiarlo a algo más genérico y útil, y si lo hago, el gerente me pedirá que explique por qué Estoy cambiando el código que no necesita ser cambiado en lugar de agregar valor.Creo que es posible que deba preguntarse si la notación húngara está afectando o no su producción / calidad personal, o si está afectando más su ego. Por ego, quiero decir que las cosas generalmente funcionan bien, pero nunca querrás que alguien a quien respetes desde afuera vea el código vergonzosamente desactualizado. Si bien creo que esa preocupación tiene sus propios méritos, debe sopesarla con el impacto de calidad / productividad que recibirían todos los que tuvieran que cambiar.
Esta es una especie de cuestión de deuda técnica, ya que está claro que este estilo húngaro no tiene sentido en .Net (con la excepción de las interfaces con "I", pero eso es para otro momento), sin embargo, este podría ser el tipo de deuda técnica con la que su equipo puede vivir hasta que se desvanezca naturalmente .
fuente
CustomerRepository
y la clase siendoCustomerRepositoryImpl
o similar.Xml
lugar deExtensibleMarkupLanguage
. En un módulo de contabilidad, esperaría ver objetos de factura comoarInvoice
yapInvoice
que transmiten el contexto comercial, pero verobjArInvoice
ooApInvoice
es simplemente una OMI tonta. Supongo que podría ser peor, podría serclsApInvoice
para el nombreEl mejor argumento en contra de la notación húngara, además de los IDEs modernos, que tienen muchos métodos para mostrar el tipo, la visibilidad y más cosas de una variable con el color, con símbolos pequeños y con textos de información sobre herramientas mientras se pasa la aspiradora, es tomarlo en serio.
En serio: al refactorizar, puede cambiar una variable de int a long, de String a char. No debería necesitar cambiar el nombre también.
En IDEs, obtienes los nombres a menudo ordenados en un cuadro al lado. ordenado por nombre, donde es fácil de encontrar. Si la mayoría de las variables comienzan con o o i, es molesto para los ojos llegar a la parte significativa del nombre.
Los caracteres adicionales perturban la semántica de la variable. Un entero 'sano' obtiene 'i_sane', que se parece más a 'loco'.
La notación húngara fue útil en los idiomas, que carecen de un sistema de tipos. No lo necesita, si el compilador aplica tipos específicos. Si decoras tu lamento sobre la notación húngara con un empático 'sí, para los programadores mayores, ¡tenía sentido en el pasado usarlo!', Esos programadores mayores pueden ser vanidosos y prefieren no ser identificados como viejos.
Pero hay que tener cuidado, para que la técnica funcione. Tal vez puedas bajar la voz cuando hables de 'programadores mayores', para que se sientan, cuán cuidadoso eres con ellos, cuánto necesitan el cuidado. Para que una tercera persona en la sala reconozca que estás tratando de ocultar algo, lo que por supuesto despertará su curiosidad.
fuente
eSomeEnum
usado en lugares; Afortunadamente no a menudo.Compre una copia de las Directrices de diseño de Framework y suéltela en el escritorio de su gerente (o quien controle el estilo de codificación). Asegúrese de poner una nota en él que señale claramente la introducción, donde destacan la importancia de la coherencia. Para llegar más lejos a casa, obtenga una copia de Clean Code y ponga un marcador allí en la sección sobre convenciones de codificación.
fuente
En algunos aspectos, este es un tema subjetivo, y es uno de esos debates de minutas de programación (¿ortografía?) Que entretengo por un tiempo y luego evito. Si bien creo que la notación húngara es un pecado que debe ser desterrado, creo que la coherencia es más importante.
En ese sentido, haré todo lo posible para convencer a un equipo de que use nombres de variables centrados en el dominio en lugar de convenciones de nombres basadas en tipos, pero si todo se vuelve difícil, retrocederé para aceptar un estándar de nombres que todos deben cumplir en Una base de código común.
No estoy a favor de algún estándar genéricamente obligatorio impuesto por un grupo de estándares, pero que los equipos de software desarrollen su propio estándar y, lo que es más importante, lo cumplan.
fuente
Con el cambio de nombre, las variables de cambio de nombre son tan rápidas que puedo deshacer las convenciones de nomenclatura consideradas tan rápido que no tengo que abandonar el antiguo puesto de convenciones con encabezado incorrecto.
Si no tiene herramientas de refactorización, entonces, estoy de acuerdo con los otros comentaristas que han sugerido seguir la convención existente de la base de código tanto como pueda, incluso si fue errónea. (hasta cierto punto, existen convenciones de nombres variables que se convertirán en generadores de errores si los deja)
fuente
La mayoría de sus inquietudes son válidas y facilitarían la vida de un nuevo desarrollador y probablemente su cordura. La única convención que todos deben adoptar es nombres descriptivos. Debería poder llegar a un consenso sobre eso sin cambiar drásticamente los estilos dependiendo de cuán malos sean. Para todo lo demás, espere hasta que esté a cargo o reemplace a los miembros actuales con desarrolladores nuevos que piensen y sientan como usted.
fuente
Mis desviaciones:
Regiones de código genérico y diseño de archivo:
fuente