Prisma-CMS comme moteur de création rapide de MVP

Certes, beaucoup ont entendu le concept de MVP ( Wiki Minimum Viable Product). Il y a beaucoup d'articles sur MVP sur MVP, mais fondamentalement c'est juste une description de ce qu'est MVP et à quoi il sert, ou divers succès et peu d'histoire. Mais je n'ai trouvé aucun article décrivant ce que MVP faisait. Mais on pense que les blogs personnels sont plus faciles à faire sur un moteur, les magasins en ligne sur un autre, etc. (chacun remplacera son nom par le moteur préféré à ces fins). Mais pourquoi alors un moteur plus pratique pour MVP n'est pas défini? Je ne donnerai pas de réponse claire à cette question, mais je partagerai mes réflexions sur ce qui est bon pour créer MVP mon Prisma CMS, à propos duquel j'ai écrit ici il y a quelques mois. Peu importe, s'il vous plaît, sous le chat.

Fait intéressant, dans l'ensemble, MVP peut être comparé au wiki de prototypage plus avancé. En même temps, il existe un logiciel spécial pour le prototypage, et il était une fois j'ai même utilisé le même Axure. Mais qu'est-ce qui manquait à Axure et pourquoi l'ai-je immédiatement abandonné? (Je ne sais pas, peut-être que maintenant il est devenu plus avancé et ces problèmes ont été résolus, mais à ce moment-là il n'y en avait pas).

  1. Il n'y a pas de travail avec des données réelles. Autrement dit, j'ai une section Utilisateurs dans le prototype, mais je ne peux pas obtenir les données utilisateur via l'API et les afficher en boucle dans mon modèle. Et en effet, en principe, il n'y a aucun moyen de travailler avec des données réelles (créer des enregistrements, les lire).
  2. En passant l'étape de prototypage et en passant directement au développement, vous ne pouvez pas utiliser les modèles créés dans le prototype. Autrement dit, une fois le prototype créé et convenu avec le client et lorsque nous sommes passés à la programmation, nous pouvions simplement regarder le prototype avec nos yeux, rien ne pouvait être fait avec. Et donc je voulais lancer un prototype et ensuite l'utiliser dans le développement.

Il y avait encore des moments, mais ces deux-là sont les plus importants. Il s'est avéré que les étapes du prototypage et de la programmation ont vécu leur propre vie indépendante et ne se sont pas affectées les unes les autres. Mais j'aimerais que l'étape de prototypage passe directement à la programmation. Et dans le cadre de l'article actuel, on peut même suggérer que le prototypage entre dans la création de MVP, puis, en cas de succès, MVP peut être développé jusqu'au produit final à part entière. En effet, si vous le pensez, la création de MVP ne garantit pas toujours qu'à l'avenir il y aura un produit plus complet. Après tout, quel est l'intérêt de créer MVP? Premièrement, mettre en œuvre l'idée avec des coûts minimes, afin de pouvoir l'essayer dans le travail, et deuxièmement, étudier la demande et décider par vous-même s'il vaut la peine d'investir et de la développer en un produit à part entière. Et il s'avère donc que nous avons besoin d'un outil qui nous permettrait de créer rapidement des prototypes / MVP, et d'autre part, si MVP réussit, nous pourrions développer le projet sans aucune restriction particulière.

En fait, en regardant Prisma CMS, je ne vois qu'un tel moteur. Il y a beaucoup à jeter rapidement le projet du projet:

  • Presque tout le travail est effectué à l'avant via notre propre éditeur frontal WYSIWYG.
  • Les URL sont implémentées sur react-router, ce qui permet d'écrire également l'adressage directement en façade dans l'éditeur, et non sur le serveur.
  • L'API est implémentée dans GraphQL, ce qui vous permet d'écrire des requêtes à l'avant, et non sur le serveur. Parallèlement, Graph i QL est intégré, ce qui simplifie le processus d'écriture des requêtes.
  • De plus, il existe des filtres générés, page par page et d'autres petits pains utiles.

Et tout cela est openSource, c'est-à-dire que ce n'est pas du SaaS, pour lequel vous devez constamment payer (sans avoir tout à votre disposition). Cela peut être déployé sur votre serveur et personnalisé par vous-même.

Avant de décrire le processus d'installation sur mon serveur et les processus de personnalisation, je vous suggère de regarder l'enregistrement du processus de création d'une section distincte sur le site. Cela fait presque 15 minutes, mais regardez les 4 premières minutes, c'est plus que suffisant pour avoir une idée de Prisma CMS, et s'il y a un intérêt, passez à la lecture plus approfondie du sujet, ou essayez peut-être de déployer le moteur à la maison.


Donc, installer Prisma CMS sur le serveur (j'utilise ubuntu, de préférence au moins 4 Go de RAM et un SSD).

On suppose que vous connaissez déjà node-js, npm / yarn, react et graphql.

1. Installez le logiciel nécessaire


Si tout est inséré à la fois dans le terminal, l'exécution peut s'arrêter, il est donc préférable d'exécuter ligne par ligne.

Il s'agit d'une installation minimale sans aucun paramètre de niveau d'accès, etc., uniquement à titre informatif, c'est-à-dire que si vous essayez sur un nouveau serveur propre, tout sera fait à partir de la racine (y compris le lancement du site). Pour notre expérience, ce n'est pas du tout important.

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. Clonez le référentiel


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

3. Lancez les conteneurs Docker avec MySQL et prisma (prisma est un produit distinct, pas le mien, mais avec lequel le côté serveur est fortement connecté, voir github.com/prisma/prisma ).

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

Si vous souhaitez consulter la base de données via phpMyAdmin, installez-la également.

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

Se bloque sur le port 8090. Par défaut, le nom d'utilisateur / mot de passe est root / prisma

4. Déployer le schéma


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

my-project / dev, respectivement, vous pouvez écrire le vôtre et créer de nombreux projets sur le même serveur.

Important! En production, le port 4466 doit être fermé par un pare-feu, il ne doit pas être directement accessible de l'extérieur.

5. Lancez le serveur API


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

Après le démarrage, vous pouvez ouvrir l'API server-ip : 4000.

Comme je l'ai écrit dans un article précédent, il s'agit d'un serveur intermédiaire qui implémente votre propre logique en plus de celle générée (qui s'exécute sur le port 4466).

6. Lancez l'avant


Nous ouvrons un autre terminal et dans le même dossier, nous exécutons

 yarn start 

Le front démarre sur le port 3000. Vous pouvez maintenant accéder directement à la "programmation" du front. IP serveur ouvert: 3000. Lors de la saisie, bien qu'il n'y ait pas un seul modèle enregistré pour la face avant, un bouton d'autorisation s'affiche pour vous. La logique est de vous inscrire et de commencer à concevoir le site. Qui est le premier - celui-là et le site de sneakers . Voici à quoi ça ressemble:


7. Créez des scripts et exécutez SSR (Servcer-Side Rendering)


Le démarrage jusqu'au démarrage du fil est un mode dev, adapté au premier démarrage (en vérifiant que tout fonctionne) et à la programmation directe de la pièce JS. Et pour la bataille, bien sûr, un front rassemblé est nécessaire. Interrompez le démarrage du fil en cours via Ctrl + C et créez des scripts.

 yarn build 

Vous pouvez aller fumer et verser du café, ce processus n'est pas rapide. Dans de rares cas, le bâtiment s'effondre la première fois, il suffit de le relancer, auquel cas, en règle générale, il se termine avec succès et beaucoup plus rapidement.

Lorsque le bâtiment est terminé, exécutez la façade assemblée.

 yarn start-ssr 

Maintenant, le lancement est beaucoup plus rapide et les scripts sont plus petits.

Conclusion


La vidéo montre que dans certains endroits il y a de très gros problèmes d'utilisation, mais le projet est toujours en développement, progressivement ces problèmes sont éliminés. Mais beaucoup peut être fait juste devant. Un nettoyage sérieux du code source est encore à faire, car il a accumulé beaucoup de tout ce qui n'est déjà pas vraiment nécessaire, mais s'étire simplement en héritage. En conséquence, l'avant devrait être beaucoup plus facile. Et il sera assemblé plus rapidement et chargera la page plus rapidement.

En tout cas, je répète, à mon avis, comment le moteur pour MVP peut très bien s'adapter - jeter rapidement quelque chose et montrer au client. De plus, si nous procédons au développement du produit final, même si le front n'est pas satisfait, nous pouvons le jeter complètement et le réécrire à notre façon, tandis que la logique de la base de données et du serveur n'ira nulle part. Après tout, ce sont des cm sans tête. Mais j'espère qu'avec le temps, le front sera ramené à un niveau tout à fait acceptable.

Si la communauté a un intérêt, j'écrirai séparément des sujets sur la façon de personnaliser le front (ajoutez vos propres blocs pour l'éditeur de front) et comment personnaliser le serveur (développez le schéma, ajoutez vos propres entités, ajoutez des résolveurs, etc.). De nombreux outils ont déjà été élaborés pour effectuer rapidement de telles tâches.

Sources du projet

Merci à tous pour votre attention!

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


All Articles