¿Cómo puedo practicar patrones de diseño y refactorización de manera deliberada? [cerrado]

10

Estaba leyendo el libro Refactoring to patterns y me preguntaba cómo puedo tener la oportunidad de practicar las habilidades, porque sin una práctica deliberada sobre nuevas formas de refactorizar y usar patrones, mis habilidades no mejorarán.

Pero el trabajo de oficina requiere que termine cada tarea lo más rápido posible. La mayoría de las veces, el diseño y la arquitectura del proyecto no son controlados por mí, solo puedo seguir el estilo similar al código existente. A veces hay un proyecto con un mal diseño, pero también hay otro desarrollador cuya habilidad de diseño es mejor que la mía y ya tiene todo el plan para refactorizar el proyecto, por lo que solo estoy siguiendo su plan. ¿Cómo obtengo oportunidades para practicar?

rwong
fuente

Respuestas:

6

Bueno, para ser sincero, no puedes esperar la oportunidad de venir llamando a tu puerta. Si estás muy inclinado a practicar la habilidad, sería genial si pudieras venir con tus diseños independientemente de lo que tenga el llamado desarrollador mejor calificado . Simplemente arroje sus ideas y tenga una buena conversación sobre cómo la mía sería útil para este diseño malo existente. Tal vez fallaría en los primeros intentos, pero aprendería mucho y (también verá que su llamado colega desarrollador mejor calificado también tendría algo que aprender de usted).

En resumen, ponga sus diseños también sobre la mesa y sepa qué tan bueno o malo es usted; de lo contrario, no hay forma de evaluar su habilidad.

V4Vendetta
fuente
3

Práctica práctica práctica. Los proyectos de hobby son definitivamente una buena idea. Y si quieres aprender, a menudo es mejor trabajar en el proyecto de código abierto de otra persona , de esa manera puedes aprender de los patrones que emplean.

Sugeriría buscar codificar dojos y codificar katas . La idea detrás de este concepto es que al practicar en problemas de práctica manejables bien definidos, estará mejor equipado cuando surjan problemas en su propio código. (Los sitios web explican esto mejor que yo, definitivamente échales un vistazo).

Punto secundario: Una cosa esencial que no es un patrón son los hábitos adecuados cuando se trata de pruebas.

Además, último comentario: el trabajo de oficina requiere que finalice cada tarea lo más rápido posible. Si trabaja demasiado rápido y crea muchos errores, no terminó la tarea , ya que tendrá que volver a ella más tarde. Esto es retrabajo. Si no se toma el tiempo necesario para aprender la forma correcta de hacer las cosas, creará más trabajo para usted en el corto plazo y no aprenderá los patrones adecuados para mejorar a largo plazo. Tanto para usted como para su empleador, vale la pena que practique patrones de diseño adecuados. (Dicho esto, los patrones de diseño a menudo pueden ser utilizados en exceso y abusados ​​por personas que los practican con exceso de entusiasmo o sin conocimientos previos, pero ese es un punto separado).

carpeliam
fuente
El retrabajo es un tema interesante. 37signals.com/rework es un libro decente sobre el tema.
carpeliam
1
Oh, un comentario más, y esto va junto con seguir los patrones de otras personas. Use a las personas en su oficina como un recurso. Si tienen planes sobre cómo refactorizar algo, pídales que expliquen su proceso de pensamiento y obligarlos a enseñarle. Si su oficina no se enfoca en su desarrollo profesional personal, entonces hay un problema.
carpeliam
+1 para la nota sobre cuándo finaliza una tarea.
Péter Török
1

Creo que tienes las siguientes opciones:

  • Considere practicar en tiempo no laborable: simplemente permanezca en el trabajo y experimente refactorizando el código sin comprometer el código a VCS. Para hacer una práctica deliberada no es necesario que cometas los cambios. Necesita reproducir un procedimiento hasta que se convierta en su segunda naturaleza.
  • Considere dominar las habilidades de comunicación para discutir con sus compañeros de trabajo qué refactorización es más apropiada. La conversación crucial es realmente útil para comprender la mecánica de una comunicación.
  • Proyecto para mascotas: crea un proyecto para mascotas y practica tus habilidades. No necesita ser muy útil. Tu objetivo es practicar habilidades de programación.
  • Considere proponer sus servicios en un proyecto de código abierto: esto es más ventajoso para la práctica deliberada, ya que puede obtener comentarios
Alexey
fuente