Prisma-CMS como motor para crear MVP rápidamente

Seguramente muchos han escuchado el concepto de MVP (producto mínimo viable de Wiki ). Hay muchos artículos sobre MVP en MVP, pero básicamente es solo una descripción de qué es MVP y para qué sirve, o varios éxitos y no es una historia. Pero no encontré un solo artículo que describiera lo que MVP estaba haciendo. Pero se cree que los blogs personales son más fáciles de hacer en un motor, las tiendas en línea en otro, etc. (cada uno sustituirá su nombre por el motor favorito para estos fines). Pero, ¿por qué no se define un motor más conveniente para MVP? No daré una respuesta clara a esta pregunta, pero compartiré mis pensamientos sobre qué es exactamente para crear MVP, mi Prisma CMS es bueno, sobre lo que escribí aquí hace un par de meses. A quién le importa, por favor, debajo del gato.

Curiosamente, en general, MVP se puede comparar con la wiki de creación de prototipos más avanzada. Al mismo tiempo, hay un software especial para la creación de prototipos, y una vez incluso utilicé el mismo Axure. Pero, ¿qué le faltaba a Axure y por qué lo abandoné de inmediato? (No lo sé, tal vez ahora se ha vuelto más avanzado y estos problemas se han resuelto, pero en ese momento no lo había).

  1. No hay trabajo con datos reales. Es decir, tengo una sección Usuarios en el prototipo, pero no puedo obtener los datos del usuario a través de la API y mostrarlos en un bucle en mi plantilla. Y, de hecho, en principio, no hay forma de trabajar con datos reales (crear registros, leerlos).
  2. Al pasar la etapa de creación de prototipos y pasar directamente al desarrollo, no puede usar las plantillas creadas en el prototipo. Es decir, después de que el prototipo fue creado y acordado con el cliente y cuando cambiamos a la programación, simplemente podíamos mirar el prototipo con nuestros ojos, no se podía hacer nada con él. Entonces, quería lanzar un prototipo y luego usarlo en el desarrollo.

Todavía hubo momentos, pero estos dos son los más importantes. Resultó que las etapas de creación de prototipos y programación vivieron sus propias vidas independientes y no se afectaron de ninguna manera. Pero me gustaría que la etapa de creación de prototipos vaya directamente a la programación. Y dentro del marco del artículo actual, incluso se puede sugerir que los prototipos fluyan hacia la creación de MVP, y luego, si tiene éxito, MVP se puede desarrollar para el producto final completo. De hecho, si lo cree así, la creación de MVP no siempre garantiza que en el futuro habrá un producto más completo. Después de todo, ¿cuál es el punto de crear MVP? En primer lugar, implementar la idea con costos mínimos, para que pueda probarla en el trabajo, y en segundo lugar, estudiar la demanda y decidir por sí mismo si vale la pena invertir y desarrollarla en un producto completo. Y resulta que necesitamos una herramienta que nos permita crear rápidamente prototipos / MVP y, por otro lado, si MVP tiene éxito, podríamos desarrollar el proyecto aún más sin restricciones especiales.

De hecho, mirando Prisma CMS, solo veo un motor así. Hay mucho para lanzar rápidamente el borrador del proyecto:

  • Casi todo el trabajo se realiza en la parte delantera a través de nuestro propio editor front-end WYSIWYG.
  • Las URL se implementan en el enrutador de reacción, lo que permite que el direccionamiento también se escriba directamente en el frente en el editor y no en el servidor.
  • La API se implementa en GraphQL, que le permite escribir consultas en el frente, y no en el servidor. Al mismo tiempo, Graph i QL está integrado, lo que simplifica el proceso de escritura de consultas.
  • Además, se generan filtros, página por página y otros bollos útiles.

Y todo esto es openSource, es decir, no es SaaS, por lo que debe pagar constantemente (sin tener todo a su disposición). Esto puede implementarse en su servidor y personalizarlo usted mismo.

Antes de describir el proceso de instalación en mi servidor y los procesos de personalización, le sugiero que mire la grabación del proceso de creación de una sección separada en el sitio. Son casi 15 minutos, pero solo mire los primeros 4 minutos, esto es más que suficiente para tener una idea de Prisma CMS, y si hay interés, continúe leyendo el tema, o tal vez intente implementar el motor en casa.


Entonces, instalando Prisma CMS en el servidor (uso ubuntu, preferiblemente al menos 4Gb de RAM y un SSD).

Se supone que ya está familiarizado con node-js, npm / yarn, react y graphql.

1. Instale el software necesario


Si todo se inserta a la vez en el terminal, la ejecución puede interrumpirse, por lo que es mejor ejecutar línea por línea.

Esta es una instalación mínima sin ninguna configuración de nivel de acceso, etc., solo con fines informativos, es decir, si prueba en un nuevo servidor limpio, todo se hará desde la raíz (incluido el inicio del sitio). Para nuestro experimento, esto no es del todo importante.

sudo apt update sudo apt install mc sudo apt install git curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - sudo apt-get install -y nodejs sudo npm i -g yarn sudo apt-get install software-properties-common python-software-properties sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main' sudo apt-get update sudo apt-get install -y docker-engine sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose 

2. Clonar el repositorio


 mkdir /var/www cd /var/www git clone https://github.com/prisma-cms/boilerplate cd boilerplate yarn --ignore-engines 

3. Inicie los contenedores acoplables con MySQL y prisma (prisma es un producto separado, no mío, pero con el que el lado del servidor está fuertemente conectado, consulte github.com/prisma/prisma ).

 sudo docker-compose -f src/server/scripts/docker/prisma/docker-compose.yml up -d 

Si desea buscar en la base de datos a través de phpMyAdmin, instálela también.

 sudo docker run -d --link prisma_mysql_1:db --network prisma_default -p 8090:80 phpmyadmin/phpmyadmin 

Se colgará en el puerto 8090. Por defecto, el nombre de usuario / contraseña es root / prisma

4. Esquema de despliegue


 endpoint=http://localhost:4466/my-project/dev yarn deploy 

my-project / dev, respectivamente, puede escribir el suyo y crear muchos proyectos en el mismo servidor.

Importante! En producción, el puerto 4466 debe estar cerrado por un firewall, no debe ser accesible directamente desde el exterior.

5. Inicie el servidor API


 APP_SECRET=MyStrongSecret endpoint=http://localhost:4466/my-project/dev yarn start-server 

Después de comenzar, puede abrir la API server-ip : 4000.

Como escribí en un artículo anterior, este es un servidor intermedio que implementa su propia lógica además de la generada (que se ejecuta en el puerto 4466).

6. Lanzar el frente


Abrimos un terminal más y en la misma carpeta ejecutamos

 yarn start 

El frente comenzará en el puerto 3000. Ahora puede ir directamente a la "programación" del frente. Servidor-ip abierto: 3000. Al ingresar, si bien no hay una sola plantilla guardada para el frente, se mostrará un botón de autorización para usted. La lógica es registrarse y comenzar a diseñar el sitio. ¿Quién es el primero? Eso y el sitio de zapatillas . Así es como se ve:


7. Cree scripts y ejecute SSR (Representación del lado del servidor)


Comenzar a través del inicio de hilo es un modo de desarrollo, adecuado para el primer inicio (comprobar que todo funciona) y para programar la parte JS directamente. Y para la batalla, por supuesto, se necesita un frente recogido. Interrumpa el inicio del hilo en ejecución a través de Ctrl + C y crea scripts.

 yarn build 

Puedes fumar y servir café, este proceso no es rápido. En casos raros, el edificio se desmorona la primera vez, solo ejecútelo nuevamente, en cuyo caso, como regla, se completa con éxito y mucho más rápido.

Cuando termine el edificio, ejecute el frente ensamblado.

 yarn start-ssr 

Ahora el lanzamiento es mucho más rápido y los scripts son más pequeños.

Conclusión


El video muestra que en lugares hay problemas muy grandes con la usabilidad, pero el proyecto aún se está desarrollando, gradualmente estos problemas se eliminan. Pero se puede hacer mucho en el frente. Todavía queda por hacer una limpieza seria del código fuente, ya que ha acumulado mucho de todo lo que ya no es realmente necesario, sino que simplemente se extiende como un legado. Como resultado, el frente debería ser mucho más fácil. Y se ensamblará más rápido y cargará la página más rápidamente.

En cualquier caso, repito, en mi opinión, cómo el motor para MVP puede encajar muy bien: arroje algo rápidamente y muéstrele al cliente. Además, si procedemos al desarrollo del producto final, incluso si el frente no está satisfecho, podemos descartarlo por completo y reescribirlo a nuestra manera, mientras que la base de datos y la lógica del servidor no irán a ninguna parte. Después de todo, esto es sin cabeza-cms. Pero espero que con el tiempo el frente llegue a un nivel completamente aceptable.

Si la comunidad tiene interés, escribiré por separado temas sobre cómo personalizar el frente (agregue sus propios bloques para el editor frontal) y cómo personalizar el servidor (expanda el esquema, agregue sus propias entidades, agregue resolvers, etc.). Ya se han resuelto muchas herramientas para completar rápidamente tales tareas.

Fuentes de proyecto

¡Gracias a todos por su atención!

Source: https://habr.com/ru/post/457270/


All Articles