Muchas veces olvido cosas de mi aplicación. No memorizo los nombres de las tablas o lo que hizo una consulta y busco para obtener lo que quiero. El líder de mi equipo me dijo que debía memorizar los nombres de las tablas que uso.
¿Se requiere que el desarrollador memorice los nombres de las tablas en la base de datos, los nombres de las clases, etc.? Y si la respuesta es "Sí, todo el tiempo", ¿qué debo hacer para recordar esas cosas?
Respuestas:
No debería necesitar memorizar explícitamente estas cosas. Con eso me refiero a sentarse y aprenderlos como lo haría con una lista de palabras para un examen de ortografía. En primera instancia, los nombres deben ser memorables y reconocibles para que pueda encontrarlos nuevamente sin demasiado esfuerzo.
También debe tener acceso a herramientas que lo ayuden aquí con la finalización automática y similares.
En un sistema grande de más de 100 tablas, no se puede esperar que recuerde cada nombre de tabla y nombre de columna, sin embargo, con nombres memorables y reconocibles y uso regular, debe recordar los detalles más importantes y aquellos que utiliza cada día.
fuente
Einstein dijo "nunca memorices lo que puedes buscar [en los libros]", y estoy completamente de acuerdo.
Use su memoria para cosas abstractas (técnicas y principios de desarrollo), no hechos que pueda encontrar cuando los necesite.
fuente
Es vergonzoso admitir que he estado usando C durante casi 30 años, pero nunca recuerdo cómo declarar punteros de función. Siempre tengo que salir de K&R para verificar la sintaxis.
Aún más vergonzoso, tengo que pensar mucho sobre cómo funciona typedef: ¿es así?
o
Estos son mis puntos ciegos personales. No me preocuparía si tienes otros similares.
fuente
Las computadoras son buenas para recordar cosas exactamente. Las computadoras también son buenas para encontrar cosas que hayan recordado previamente.
Entonces, la habilidad clave es usar la computadora como una extensión de su memoria. Escriba código limpio, documente, aprenda a usar las herramientas de búsqueda de manera efectiva, configure su entorno de desarrollo para que sea fácil encontrar cosas, etc.
Un buen efecto secundario es que también facilitará que otros lean su código.
fuente
La memoria es importante
Una memoria fuerte es de hecho uno de los mejores talentos que puede tener un desarrollador; en realidad que cualquiera puede tener. Es realmente algo especial y envidio y admiro a los bendecidos con él. Definitivamente puede ayudar a una persona a ser un desarrollador más fuerte, abogado, mecánico o (inserte el trabajo de su elección aquí).
¿Cuánto debe ser requerido?
Pero no creo que sea un requisito justo exigir la memorización de todas las cosas. Creo que comenzarás a guardar cosas en la memoria como parte natural de las cosas. Es por eso que leer un libro sobre un idioma y usarlo en un entorno de producción no es lo mismo. A medida que trabajas diariamente con algo (algunos lo llamarían "práctica") comenzarás a hacer que algunas cosas sean de segunda naturaleza.
Al igual que con los otros carteles, creo que memorizar partes clave de la aplicación ayuda. Sin embargo, no estoy seguro de que invertir en memorizar todo valga la pena cuando puede aprovechar características como intellisense, que es cada vez más común en las herramientas modernas.
¿Cómo puedes mejorar?
No soy un experto en memoria, pero algunos creen que puedes mejorar la memoria a través de ejercicios mentales como juegos mentales (crucigramas, sudoku, rompecabezas, etc.). La teoría es que su cerebro es como un músculo y si lo usa de diferentes maneras y lo ejercita, puede fortalecerlo.
Sería interesante ver estudios sobre cómo cosas como hacer juegos mentales, programación y actividades interactivas afectarían a un cerebro con el tiempo. ¿Podrían esas cosas ayudar a combatir la aparición de pérdida de memoria provocada por la edad o la demencia?
fuente
De donde vengo, hay un viejo dicho que dice algo así en inglés: "Un tonto memoriza, un hombre inteligente escribe". Básicamente, no importa cuán buena sea su memoria, lo olvidará . Eres solo humano. Y esto, como consecuencia, hace que confiar en la memoria humana ... bueno, no sea confiable. Incluso si crees que recuerdas esos nombres de tablas, ¿puedes estar 100% seguro? Necesita solo unos segundos para buscar los nombres de las tablas, pero podría necesitar horas, o incluso días, para localizar errores causados por errores ortográficos.
Como conclusión, no, es un requisito ridículo, especialmente en proyectos grandes, que pueden tener miles de tablas y clases.
fuente
Si se trata de algo en lo que está trabajando y es una tarea a largo plazo, entonces sí, debería estar trabajando para aprender y poder recordar varios nombres de tablas y columnas, clases, variables y métodos. Esto es algo que vendrá a través del tiempo mientras trabajas con ellos. No los aprenderá todos de la noche a la mañana, pero debe esforzarse por saber todo lo que pueda sobre el sistema en el que está trabajando. Además, en un sistema grande, no hay forma de que puedas memorizar todo, pero no hay razón para no aprender y recordar tanto como puedas.
Tener que buscar todo todo el tiempo es solo un éxito para la productividad: si está trabajando en una tarea y tiene que detenerse y buscar cosas cada pocos minutos, eso es un descanso en la concentración. Use las herramientas apropiadas para ayudarlo y aprenda / memorice lo que pueda. Mejorará en gran medida su productividad.
fuente
¿Tiene algún sentido memorizar nombres de clase exactos? No lo creo.
¿Tiene algún sentido saber qué tipo de términos usa su proyecto en los nombres de clase, para que pueda buscarlos más rápido? Seguro.
fuente
No estoy de acuerdo en que deba memorizar los nombres de las tablas, pero deberían ser fáciles de adivinar. Para que sea fácil de adivinar, sea consistente. De esta manera, no se preguntará a sí mismo "Hmm ... ¿la tabla foo es plural o singular? ¿La clave principal es ID o RID o FooRID?"
fuente
No sé cómo podría consultar una base de datos en cualquier momento sin conocer los nombres de tablas principales y los nombres de columnas críticas (pero ciertamente no todo). Conozco a las personas que sí saben estas cosas sin tener que resolverlo cada vez que se vuelven más valiosas para la organización y se convierten en las personas que "recurren" cuando otros están atrapados.
Encuentro que a menudo cuando las personas no comienzan a aprender estas cosas, cometen errores en las consultas sin darse cuenta. Errores que a menudo veo instantáneamente en las revisiones de código porque entiendo la estructura de nuestra base de datos y cómo las tablas se relacionan entre sí y cuáles son las reglas críticas del negocio sin tener que buscarlas.
Personalmente, encuentro que las personas que no se molestan en aprender la estructura a menudo se quedan en el nivel de principiante al consultar esa base de datos en particular. También tienden a no sobrevivir a los despidos. Creo que tu jefe está tratando de hacerte un favor para que prestes más atención.
fuente
Más que la memoria fuerte, la que ayuda mucho es el diseño impulsado por el dominio y seguir convenciones sencillas como nombres de tablas y nombres de clases para que sean iguales. Si el dueño de su negocio le habla sobre el requisito, los términos específicos de dominio utilizados por él / ella deben estar allí en el código. En este caso, no tenemos que recordar las asignaciones entre términos comerciales y nombres en el código. Este hábito lleva un tiempo para ponerse al día, pero es muy útil, ya que también reduce los errores de traducción de un lado a otro entre los propietarios de negocios y los desarrolladores.
Junto con esto, si la duración del proyecto es muy larga, sentirse cómodo con la base del código durante un período de tiempo inconscientemente ayudará a la memoria.
fuente
domain driven design
?