language agnostic - style - Diccionario de programadores/léxico para hablantes no nativos
python snake case naming style (9)
No soy un hablante de inglés, y no soy muy bueno en inglés. Estoy solo. No he trabajado junto con otros en una base de código común. No tengo amigos que programen. No trabajo con otros programadores (al menos a nadie que se preocupe por estas cosas).
Supongo que esto podría explicar algunos de mis problemas para encontrar buenos nombres de clase inequívocos. He intentado encontrar algún tipo de "diccionario de programadores" que contenga las palabras que se usan con frecuencia y sus significados. Al leer el código de los demás, tengo que buscar palabras con bastante frecuencia, y como muchas abreviaturas, esto plantea un desafío adicional.
Mi vocabulario muy limitado me "obliga" a utilizar nombres de clases incorrectos como xxManager, xxProvider, xxWhatever. Por lo general, es menos problemático elegir nombres de variables y métodos.
Otras personas que no son inglesas aquí: ¿Cómo has logrado lidiar con esto? ¿Has estudiado inglés tan bien que no es un problema? ¿O has leído tantos nombres de código que es natural? ¿O discutiste mucho con hablantes de inglés? ¿Encontró buenos sitios web, artículos u otras publicaciones? Como nunca he leído nada sobre la programación en mi propio idioma, a menudo tengo más problemas para encontrar las palabras en mi idioma ...
PD: Todas las otras publicaciones que encontré se referían a mezclar lengua nativa e inglés ... Y entiendo que esto podría estar un poco fuera de tema y podría estar cerrado.
Editar : Algunos recursos de las respuestas y otras cosas que uso:
¡Documentar su código con excelente prosa, como su pregunta anterior, va a recorrer un largo camino!
Si se apega a los patrones de diseño comunes endémicos del idioma, la plataforma y la arquitectura con los que está trabajando, otros ingenieros deberían comprender su nomenclatura con bastante facilidad.
¿Qué tal si usas tu lengua materna? Por supuesto (como para mí como austriaco), algunas letras no se permiten, pero a quién le importa si hay Mörder o Moerder (Asesinato) en el nombre de la clase :)
O (como yo lo hago) use un diccionario como dict.cc u otra cosa. Sí, creo que lo que hace la clase, administra la sesión del juego (por ejemplo) para que se convierta en GameSessionManager.
Las abreviaturas son (al menos para mí) un problema, pero lo que he aprendido de otro código: los hablantes nativos del evento usan diferentes abreviaturas. Y si la clase se llama GameSessionMgr o GameSessionMngr no hace la diferencia.
No estás escribiendo libros o algún tipo de "poema inglés" donde la ortografía, la gramática y ... cuentan.
Usted escribe el código, y si sigue "sus reglas sepciales", usted y los demás podrán (después de algún tiempo) comprender su código y los nombres de las clases.
El archivo Jargon ayudará con las referencias más oscuras que la gente dará en la industria.
http://catb.org/jargon/html/go01.html
Aparte de eso ... encontrar buenos nombres para tus variables / clases / etc. es difícil . A menudo, es más difícil que resolver el problema. Aquí hay un buen recurso para algunos nombres de patrones de diseño comunes que a la gente le gusta usar: http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29
Ejemplos:
AbcFactory
XyzBridge
Este es un problema que también encuentro, incluso como un hablante nativo de inglés. Como programador, a menudo encuentro que necesito encontrar una palabra descriptiva para una clase, variable, función, etc. A menudo me encuentro preguntándole a un amigo o colega qué vergüenza usarían al explicar mi idea, excluyendo cuidadosamente cualquier palabra que yo mismo han considerado como una opción posible para el nombre de clase / función / variable para no inhibir su creatividad.
Me parece que la propuesta del sitio de idioma inglés y uso en Area51 es un buen lugar para hacer preguntas como "¿Qué llamarías una clase (o cosa) que hace esto, esto y lo otro, y tiene propiedades x, y, y z?
Podría ser una sugerencia poco ortodoxa, pero recomendaría estudiar inglés más profundamente (también soy un hablante no nativo).
¡Exponte a la mayor cantidad de inglés posible! Mira películas, lee ficción en inglés, escucha podcasts técnicos.
Eso sí, si realmente quieres profundizar tus conocimientos de inglés, probablemente no vas a aprender mucho viendo "Transformers". Por otro lado, bucear en Ulysses probablemente tampoco sea una buena estrategia.
Si te sientes aventurero, siempre puedes obtener una suscripción a la revista New Yorker. Te hará las cosas a ti, sí, esto es flamígero. :PAG
Si le preocupa el hecho de nombrar sus propios objetos, solo piense en cuál es su palabra nativa para lo que quiere hacer, luego obtenga un diccionario de traducción de inglés y use la versión en inglés.
Vendrá con tiempo y experiencia. Por encima de todo intento de (como @Mike A dice) documentar las cosas hasta que el código se vuelva más claro y tratar de ser coherente.
Si no puede encontrar el "Diccionario del programador" que está buscando, comience uno. Publique una nueva pregunta: "¿Qué entradas faltan en este diccionario para los programadores de inglés como segundo idioma? " Y siembre con 10 o 20 palabras / definiciones que ya haya descubierto. Una vez que los carteles sugieran suficientes adiciones, muévanlos a una wiki en algún lugar y sigan aceptando contribuciones. Puede terminar creando un recurso valioso.
Otros no ingleses aquí:
¿Cómo has logrado lidiar con esto?
Un buen nombre en el código importa. El uso del inglés es el preferido, pero si no sabes muy bien el inglés, el resultado puede ser contraproducente.
Tuve un amigo que simplemente adivinó cuál sería el nombre correcto y el resultado fue horrible. es decir
String employiiNeim; // employeeName
int eich; // age
El problema con el inglés es que no se pronuncia como está escrito (el francés tiene esta característica menor ... ehrm) Otros idiomas como el español, el alemán, el holandés y otros, escriben y escriben cada letra de la palabra.
Esto se vuelve particularmente relevante cuando lo que usted está codificando son reglas comerciales o modelos comerciales. En este caso, es mucho mejor usar tu lengua materna.
String nombreEmpleado;
int edad;
Mucho mejor, especialmente cuando trabajas con otros.
¿Has estudiado inglés tan bien que no es un problema?
Yeap, no hay otra manera, y mucha práctica.
Aunque puedes estudiar inglés de la misma manera que estudias lenguajes de programación. Puede tener un maestro y asistir a una sala de clase y estudiar una hora al día. O (lo que hice) solo puedes agarrar algo que es interesante para ti y tratar de entenderlo. Por ejemplo, tiene un pequeño documento que describe algo que le importa, lee blogs o lee contenido aquí en , traduce una canción que le gusta, etc., etc.
Todos estos son formularios de estudio. No hay otra forma, no te levantarás un día y dirás: "... sé kung fu", quiero decir, y digo: ... "sé inglés"
¿O has leído tantos nombres de código que es natural?
También ayuda, pero si no entiende lo que significa el código, ... bueno, no hará ningún progreso.
Aprenderás el lenguaje de programación y eso te ayudará a comprender mejor el inglés, pero no te ayudará a aprenderlo. Eso es porque cuando programamos, aprendemos el lenguaje de programación , no el idioma nativo.
¿O discutiste mucho con hablantes de inglés?
Eerhh ... no. Si tiene la oportunidad de seguir adelante, mejorará su escucha y habla, pero no necesariamente su escritura.
La manera más efectiva de mejorar su vocabulario y gramática en inglés es LEYENDO (leer en su idioma nativo también mejora su propio idioma)
Entonces, yo diría, lee todo lo que puedas. Usa tu lengua materna mientras ganas más confianza y sigue estudiando.
El inglés vendrá con tiempo.