¿Existe una guía para construir un marco desde cero?

Hay algunas guías. El libro Robert C Martin Agile Software Development explica los principios SÓLIDOS de los que dependen los marcos.

Tus dos frases clave son

  • Inversión de dependencia
  • Dile no preguntes

A eso se reduce el código marco. Captura la lógica que siempre es cierta para todos los usos del marco dentro del marco. Agregue ‘puntos de complemento’ para que los usuarios del marco puedan escribir pequeñas piezas de código para inyectar y agregar su comportamiento específico.

Escribí un ejemplo simple sobre inversión de dependencia y le digo que no pregunte aquí:

Crear código limpio con arquitectura hexagonal | Vista desde la cara del código

Puedes considerarlo como un marco para adivinar mis juegos de números, donde el usuario del marco puede elegir los dispositivos de entrada y salida. Eso podría ayudarlo a entrar en la forma correcta de pensar sobre los marcos.

Pero como dicen correctamente las otras respuestas, comience con una necesidad. No se puede simplemente “escribir un marco”. Necesita algo que espera que admita al menos tres usos diferentes, y donde el marco no solo se interponga en el camino.

Los malos marcos son horribles. Tienen puntos de complemento para cosas que nunca cambian, luego se pierden completamente los puntos para cosas que sí lo hacen. Siempre estás tratando de vencer el código marco.

Se necesita una visión profunda de un dominio para hacer un buen marco.

¡Ciertamente, nunca he hecho una buena!

Sí, hay varios libros que contienen recomendaciones útiles. El que más me gustó es el siguiente: Convenciones de pautas de diseño de marcos, modismos y patrones para bibliotecas .NET reutilizables. Pero considere seguir antes de comenzar a crear un marco.

Todos los marcos exitosos que conozco surgieron como un producto secundario del desarrollo de algunos productos y no como resultado de la decisión de “escribir un marco” . Por lo tanto, todos son bastante únicos y hay muy pocas expresiones idiomáticas y paradigmas que puede aplicar a todos ellos.

Algo que crees totalmente desde cero nunca puede ser un marco . Un marco emergente cada vez que se da cuenta de que hay partes genéricas en su aplicación que pueden reutilizarse fácilmente sin modificaciones.

Lo que llamas marco también depende en gran medida de una cultura de desarrollo de ecosistemas en particular. Algo que usted llama un marco en la comunidad javascript probablemente nunca calificará como un marco para la gente de Java . También la forma en que los marcos están diseñados y documentados mucho, mucho.

Sí, guía común de programación y proyección de software.

Estás creando algo nuevo, ¿qué otra guía te gustaría seguir? Estás creando el camino. O sabes lo que quieres lograr o no.

Solo recuerda que el marco siempre tiene sus objetivos, cúmplelos. Y pruebas. No olvides escribir una prueba para cada caso de uso.

Y uno más: no reinventes la rueda. Es una pérdida de tiempo a menos que lo haga solo por diversión.

Desde que hiciste la pregunta. Simplemente no comience en su marco de fantasía.

Un marco comienza desde la construcción de productos. No de la otra manera.