Al crear una aplicación no trivial, ¿es mejor concentrarse en hacer que las cosas funcionen rápidamente y tomar atajos en el código, como mezclar la lógica del modelo con sus vistas, romper la encapsulación, olores típicos del código? O, es mejor tomarse el tiempo por adelantado para construir más arquitectura, compilarlo correctamente, pero correr el riesgo de que no se use todo este código adicional ya que su diseño es bastante fluido y es posible que tenga que tirarlo si los comentarios lo causan ir en una dirección diferente?
Por contexto, estoy creando una aplicación de escritorio. Soy el único desarrollador, y lo estoy haciendo a tiempo parcial desde que tengo un trabajo diario. Ahora, por trabajo, trato de hacer las cosas de la manera correcta, si el horario lo permite. Pero para este proyecto, que espero se transformará a medida que reciba comentarios de la gente, no estoy seguro de que sea el enfoque correcto. Pasé varias horas esta semana colocando un diseño de controlador de vista de modelo de libro de texto para comunicar los cambios en el modelo a la vista. Esto es genial en general, pero no estoy seguro si necesito varias vistas para mostrar los datos y sé que podría haber hecho que las cosas se muestren más rápidamente sin la arquitectura adicional. Con unas 10-15 horas a la semana para dedicar al proyecto, creo que tomará años construir algo que pueda demostrar si sigo las buenas prácticas de software. Sé que mis usuarios ganaron ' No importa que use MVC internamente, solo quieren algo que resuelva su problema. Pero también he estado en una situación en la que ha incurrido en tanta deuda técnica por atajos que el código es increíblemente difícil de mantener y agregar nuevas funciones. Me encantaría saber cómo otras personas abordan este tipo de problema.