No estoy seguro de si esto es un rasgo de TOC o no, pero encuentro que a veces me bloqueo por completo y no puedo continuar lo que estoy haciendo al nombrar una clase (o función, o espacio de nombres, etc.) que creo que debe usarse fuera de un proyecto dado. Una API por ejemplo. O una biblioteca de clase de utilidad.
Si el nombre no es exactamente correcto (en mi opinión) simplemente no puedo continuar ... me quedo atascado tratando de encontrar el nombre correcto. He intentado escribir pequeñas aplicaciones que lo usarían para ver cómo se ven los nombres, pero eso no parece ayudar ...
Sé que no debería importar, y está en contra de cualquier mentalidad de programación asumir que lo conseguirías perfecto al principio ... Simplemente me siento impotente ...
Cualquier sugerencia / idea sería muy apreciada ...
Respuestas:
En mi opinión, el problema que tiene no es solo encontrar una mejor manera de encontrar buenos nombres, sino lidiar con la compulsión de hacerlo. Si soy honesto, reconozco un rasgo similar en mí mismo. Los nombres son importantes, después de todo, y me gusta un buen nombre para los conceptos en los que estoy trabajando. Sin embargo, no siempre son lo más importante.
Estos son algunos de los métodos que uso para superar este tipo de cosas:
fuente
primeramente
Hágase la pregunta "¿cuál es el único propósito de esta clase?". Sin adherirse al Principio de Responsabilidad Única, nombrar clases y métodos se vuelve muy difícil. Si no puede responder esa pregunta, es posible que deba repensar lo que desea que haga la clase y considerar separar las preocupaciones. Esto hará que sea más fácil nombrar
En segundo lugar
¿Tienes un patrón para nombrar tus clases? Quizás intente mirar algunos patrones de nombres comunes, por ejemplo, el patrón, que se vuelve mucho más fácil de seguir una vez que haya abordado SRP anteriormente. ¿Su clase analiza XML? Prueba XMLParser. ¿Analiza XML, crea modelos de dominio para representar la entrada, los persiste en la base de datos y luego publica un mensaje de éxito en Twitter? Intenta refactorizar.
En tercer lugar
Entiendo de dónde vienes, y he estado en una situación similar antes. Quizás intente desarrollar su clase con alguna funcionalidad, con un nombre temporal para comenzar. Con cualquier buen IDE o asistente de refactorización, cambiar el nombre de la clase debería ser una acción de un solo clic, ¡así que lo que denomines tu clase inicialmente no necesita ser permanente! Esto lo ayudará a superar su bloqueo de TOC y le dará tiempo a su subconsciente para procesarlo un poco más.
Finalmente y ligeramente fuera de tema
Tuve un momento de bombilla en un trabajo que estaba haciendo el otro día, implementando un sistema no crítico, y pasé un tiempo justo jugando con diferentes nombres de clases, etc. clases de acuerdo con su implementación específica ... Por ejemplo, puede tener la tentación de tener IXMLParser y XMLParser, pero ¿qué sucede cuando su entrada cambia a JSON? Pruebe IInputParser en su lugar, de esa manera puede crear clases concretas XMLParser y JSONParser que implementan IInputParser de diferentes maneras.
fuente
Para mí, generalmente es una señal de que el diseño no está claro en mi mente, así que invento un nombre y me doy un tiempo (digamos 2 minutos) para encontrar uno mejor, al final de ese tiempo, tengo que use el que se me ocurrió primero. Para empezar, Barney, Wilma y Fred son los favoritos. Hago cosas como "BarniesInputParser". Los nombres son tan malos que tengo que encontrar uno mejor o cambiarlo más tarde. También son tan malos que son únicos, lo que hace que la refactorización sea trivial y segura, y cualquiera que vea el código incompleto puede ver instantáneamente que está incompleto.
Lo importante es que si bien no está agregando funcionalidad, no le está dando a su cerebro ninguna información nueva para usar para definir el nombre (y aclarar el diseño). Todo lo que está haciendo es regurgitar la misma entrada de diferentes maneras.
O ve a hacer un café. Antes de llegar a la máquina, la tendrá ...
fuente
Recibí esto de un amigo hace un tiempo. Escribe lo que se supone que debe hacer tu proceso. Solo una breve narrativa. Luego tome los sustantivos y conviértalos en clases, los verbos en métodos y los adverbios en propiedades.
fuente