Aunque gramaticalmente incorrecto, al escribir identificadores para funciones, variables, etc., ¿tiene sentido agregar simplemente una "s" a plurales de palabras que terminan en Y? Mi razón para esto sería que si necesita buscar y reemplazar, por ejemplo, reemplazando "compañía" por "proveedor", "compañía" coincidiría con las formas en singular y plural (" compañía y" compañía s "), mientras que si el plural se deletreara correctamente, tendría que hacer dos búsquedas separadas.
9
Respuestas:
Cualquier búsqueda y reemplazo de este tipo debe realizarse con cuidado y cada cambio debe verificarse manualmente para, por ejemplo, evitar "acompañar" en un comentario que se convierte en "proveedor" con el cambio de su compañía / proveedor. Como tal, dos búsquedas separadas de "compañía" y "compañías" no deberían crear una sobrecarga significativa en comparación con el tiempo dedicado a inspeccionar y aprobar cada cambio.
Por lo tanto, escribir mal las palabras para lograr una sola búsqueda ofrece los aspectos negativos de verse mal y ser más difícil de leer de lo necesario, sin ofrecer ningún beneficio obvio.
fuente
Supongo que está hablando de cambiar el nombre de los archivos de código fuente. Con los IDE actuales, esto siempre debe hacerse con las herramientas de refactorización del IDE. Si su IDE no tiene esto, considere cambiar a otro IDE. La mayoría de las herramientas de refactorización IDE también mantienen un historial de refactorización, lo que le brinda la capacidad de "deshacer" rápidamente si no le gustan los resultados del refactorizador. Al usar buscar / reemplazar, es posible que no tenga la capacidad de deshacer todo el conjunto de cambios (a menos que pueda usar sus herramientas de control de revisión y volver a la versión previamente comprometida). Además, al usar herramientas de refactorización, es más seguro cambiar inadvertidamente algo que no pretendía cambiar.
fuente
¡Si! ¡Si! ¡Si! Tiene mucho sentido hacer eso. Y lo he estado haciendo por años.
Divulgación 1: el inglés no es mi lengua materna.
Divulgación 2: mi conocimiento de la gramática inglesa es considerablemente mejor que el del hablante nativo promedio.
Divulgación 3: cuando se trata de comunicarse con los humanos, soy una gramática vehemente nazi.
Y ahora que estas revelaciones están fuera del camino, permítanme decir que la gramática inglesa no tiene lugar en el código. Verá, por eso se llama código y no prosa . Se supone que tiene cierta semejanza con un lenguaje entendido por los humanos, con el propósito de facilitar la lectura, pero aparte de eso, lo que más necesitamos del código no son las cualidades de la prosa; son otras cualidades más técnicas, como precisión , inequívoca y brevedad . Es por eso que la sintaxis C de
if( x != y ) y++;
es mucho más preferible que laIF X IS NOT EQUAL TO Y THEN ADD 1 TO Y END-IF.
sintaxis de Cobol. La supuesta conveniencia de compiladores que entienden el lenguaje natural es una falacia, y no creas en mi palabra, mira lo que ol'Edsger tiene que decir al respecto:Edsger W. Dijkstra, Sobre la necedad de la "programación del lenguaje natural" .Otra cualidad que es importante es la computabilidad de los identificadores . El hecho de que una propiedad llamada
Color
siempre se pueda leer a través de un método llamadogetColor()
y escrito a través de un método llamadosetColor()
es de suma importancia. Estos identificadores son computables a partir del nombre de la propiedad, por lo que no tiene que saberlos de memoria. Si un programador eligiera un par de métodos llamadosgetColor()
por un lado, perocolorize()
por otro lado, sus colegas considerarían legítimamente este sabotaje. Así de importante es la computabilidad del identificador.Además, se pueden escribir herramientas de programación (y muchas de ellas se han escrito, por ejemplo, Hibernate ) que pueden calcular estos nombres. Sin la computabilidad del nombre del identificador, tendría que usar una sintaxis adicional (por ejemplo, en Hibernate, anotaciones adicionales) para especificar con precisión a cada herramienta cómo crear cada nombre de identificador o qué nombre ad hoc le ha dado a cada entidad.
Por lo tanto, la computabilidad del identificador es importante, mientras que al mismo tiempo la gramática inglesa es irrelevante (ya que no estamos haciendo programación en lenguaje natural) para poder calcular el nombre de una colección de entidades agregando siempre "s" al nombre de una sola instancia tiene mucho sentido, no importa el hecho de que viola la sensibilidad del idioma inglés de la mayoría de las personas (incluido el mío).
Y nos guste o no, esta es la tendencia del futuro. El idioma nativo de la mayoría de los programadores en el planeta ya no es el inglés, y la tendencia es continuar muy fuerte en esta dirección. (Además, ni siquiera estaría dispuesto a apostar dinero en la sugerencia de que el inglés es el idioma nativo de la mayoría de los programadores que trabajan en los Estados Unidos en este momento). Estas son personas que, en gran medida, cuando intentan calcular el nombre de una colección del nombre de una sola instancia de "empresa", simplemente agregará una "s", y la forma "empresas" ni siquiera se les pasará por la cabeza. Para un gran porcentaje cada vez mayor de programadores en el mundo, el conocimiento de las peculiaridades del idioma inglés no agrega ningún valor a su trabajo, solo lo hace un poco más difícil.
fuente
Companys
cuando debería serCompanies
. Después de todo, el punto completo del código que usualmente escribimos es, de hecho, acercarlo al lenguaje natural.