Giter Site home page Giter Site logo

Comments (9)

florimondmanca avatar florimondmanca commented on July 16, 2024 3

Permacoop devrait peut-être avoir une page publique.

On y dirait que c'est notre outil interne, dont le code est accessible, mais pas fait pour une adoption plus large ni en mode SaaS. Mais ça serait un bon endroit pour y expliquer ce qu'on y a fait.

Après tout, si Permacoop est accessible et éco-conçu, et qu'on veut noter ça quelque part, où le met-on qui ne soit pas seulement accessible à nous-mêmes ?

from permacoop.

florimondmanca avatar florimondmanca commented on July 16, 2024

@Volubyl Comme tu l'as fais en créant un milestone, j'imagine que ce ticket est encore plus gros qu'une epic. C'est une esquisse de "vers où on voudrait aller".

Peut-être que la migration vers SvelteKit est en soi une epic, qui devra se décomposer en plusieurs petites parties, sinon on avancera pas à moins de consacrer 2 personnes (code + review) pour faire ça sur une semaine.

Idem l'accessibilité est un vaste chantier. La mise en valeur de Permacoop (explications éco-conception, page publique, etc) encore un autre.

En tout cas bravo et merci pour la rédaction de ce ticket, c'est très clair et ça distingue bien les différents chantiers possibles.

Chaque thématique a une partie "Etat des lieux" et "Axe de remédiation". À mon avis on peut maintenant convertir cela en tickets "epic" organisés selon la structure Besoin (user story ou motivation technique) / Critère d'acceptation / Design-implémentation. Sur Catalogage ça fonctionnait bien, non ?

from permacoop.

florimondmanca avatar florimondmanca commented on July 16, 2024

J'ai mis à jour #214 en reprenant ton analyse ici, avec 3 "options" pour l'organisation de l'implémentation. On peut en discuter sur ce ticket-là.

from permacoop.

florimondmanca avatar florimondmanca commented on July 16, 2024

J'y ai réfléchi (ou plutôt mon cerveau s'est allumé pour y réfléchir) et au final je me dis que la taille de Permacoop et les différences entre Sapper et SvelteKit doivent probablement nous amener à traiter la refonte de Permacoop comme relevant d'une "migration de système legacy". (De fait Permacoop, est legacy aujourd'hui.)

Dans cette optique je me suis renseigné sur les stratégies générales de migration d'un système "legacy".

Il se confirme qu'une migration incrémentale est préférable : https://www.dcs.ed.ac.uk/home/rgd/sw/migrateIncrementally.html

Problem What is the best strategy with which to execute a large, complex reengineering project?
Solution Plan for a incremental, phased migration from the legacy to the target architecture. Decompose the legacy into sensible components. The reengineering of each decomposition becomes a phase in the project. Balance the effort involved in each phase with the available resources. Ensure that, throughout the project, there is an operational hybrid legacy/target system. Prioritise the order in which phases should take place based on the most pressing objectives being addressed first.

Dans la littérature, on trouve ça théorisé par le Strangler Fig Pattern (M. Fowler), du nom de la vigne qui encercle l'arbre et finit par le remplacer totalement.

L'idée d'une "façade" permettant de migrer progressivement ce qu'il y a derrière correspond à une formalisation de "l'Option 3" que j'ai envisagé en réécrivant rapidement #214.

  • Cas concret ici : Strangler Pattern in practice.
  • La nouvelle app est créée dans un nouveau dossier / projet. En prod, Nginx la sert sur un préfixe comme /app/ qui ne devait pas exister auparavant, et petit à petit l'ancienne app met à jour ses href pour pointer vers la nouvelle version.
  • Il faudra trouver un moyen de garder le développement aussi "smooth" que possible. Si on peut se passer de Nginx c'est idéal je pense. On peut peut-être par exemple utiliser un reverse proxy simplifié en Node.js. http-party/node-http-proxy a l'air ancien mais peut suffire ?

Les différents billets insistent que ce pattern permet surtout de réduire le risque. En revanche, il ne facilite pas la migration en soi. La migration sera lente aussi. Le Strangler Fig Pattern permet surtout de la faire avancer petit à petit, en minimisant les risques à chaque étape. Les gros inconvénients apparaissent surtout pour de très gros systèmes :

  • Requires a lot of ongoing attention to network and routing management
  • When you have dozens, a refactor effort can get stuck in "adapter hell" [...]
  • Make sure you have a rollback plan for each refactored instance [...]

https://www.redhat.com/architect/pros-and-cons-strangler-architecture-pattern

Il y a aussi cette idée de l'architecture sacrificielle : créer des systèmes faciles à jeter à la poubelle. Dans un contexte de migration, ça facilite une migration par StranglerFig jusqu'à l'étape finale où le legacy disparaît.

from permacoop.

Volubyl avatar Volubyl commented on July 16, 2024

@Volubyl Comme tu l'as fais en créant un milestone, j'imagine que ce ticket est encore plus gros qu'une epic. C'est une esquisse de "vers où on voudrait aller".

Peut-être que la migration vers SvelteKit est en soi une epic, qui devra se décomposer en plusieurs petites parties, sinon on avancera pas à moins de consacrer 2 personnes (code + review) pour faire ça sur une semaine.

Idem l'accessibilité est un vaste chantier. La mise en valeur de Permacoop (explications éco-conception, page publique, etc) encore un autre.

En tout cas bravo et merci pour la rédaction de ce ticket, c'est très clair et ça distingue bien les différents chantiers possibles.

Chaque thématique a une partie "Etat des lieux" et "Axe de remédiation". À mon avis on peut maintenant convertir cela en tickets "epic" organisés selon la structure Besoin (user story ou motivation technique) / Critère d'acceptation / Design-implémentation. Sur Catalogage ça fonctionnait bien, non ?

Oui exactement!

Pour moi cette issue a plus vocation dêtre une sorte de note d'intentiion et de servir de description général au milestone

from permacoop.

florimondmanca avatar florimondmanca commented on July 16, 2024

cc @mmarchois @ip512 Curieux de vos avis sur la façon de procéder

from permacoop.

mmarchois avatar mmarchois commented on July 16, 2024

Je serais aussi d'avis de procéder de manière progressive.
On start un nouveau projet, dans un nouveau dossier, puis on migre les composants / libs / pages etc. un à un.
Les deux cohabiterons le temps de la migration sur des URL différentes.
Ce sera aussi parfait pour init les tests sur la partie client et monter la version de Node (16).

from permacoop.

Volubyl avatar Volubyl commented on July 16, 2024

Je serais aussi d'avis de procéder de manière progressive.

Donc tu es d'accord avec ce que propose Florimond ?

from permacoop.

florimondmanca avatar florimondmanca commented on July 16, 2024

Je clos en vertu de #405

La refonte continue mais avec une autre approche, tant pis pour le "strangler fig pattern"

from permacoop.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.