← Articole

Engineering · 27 ianuarie 2022 · 6 min read

Monorepo-uri pentru Suite de Programe Multi-Aplicație

Platformele de program de amploare rareori au nevoie de un singur mega-frontend. Au nevoie de pachete partajate, backend-uri de domeniu și o modalitate ca inginerii noi să ruleze felia potrivită local.

monorepodxdockerarchitecture

Suitele umanitare și din sectorul public acumulează portaluri: management de program, raportare parteneri, audituri, colectare offline, logistică. Repo-urile git separate, fără ambalare partajată, creează derivă UI și durere de onboarding.

Un monorepo cu workspace-uri, pachete UI partajate și profiluri Compose permite domeniilor să rămână separate, în timp ce livrarea rămâne coerentă.

Scopul nu este puritatea. Scopul este ca un contributor nou să poată rula „doar aplicațiile pe care le atinge”, înainte de prânz.

Partajează UI-ul, nu modelele de domeniu

Pachetele de design system reduc componentele duplicate. API-urile de domeniu ar trebui să rămână delimitate — butoanele partajate sunt bune; modelele-zeu partajate nu sunt.

Profilurile bat stivele implicite gigantice

Profilurile Docker Compose (sau echivalent) țin disponibilă realitatea suitei complete, fără a forța fiecare laptop să pornească fiecare serviciu.

Documentează traseul fericit pentru cele două-trei persoane de contributor cele mai comune.

Offline și ultimul kilometru sunt produse

Constrângerile de teren merită clienți dedicați și contracte de sincronizare. Tratarea lor ca „același portal cu o casetă de bifat” de obicei eșuează în medii ostile conectivității.

Takeaways

  • Monorepo-urile strălucesc atunci când multe aplicații partajează ADN de UX.
  • Profilurile Compose sunt o funcționalitate de livrare.
  • Ține backend-urile de domeniu independente, chiar și atunci când pachetele de front sunt partajate.

Să discutăm

Ești pregătit să construiești ceva durabil?

Colaborează cu o echipă de ingineri seniori care proiectează, livrează și operează software pe care afacerile se bazează ani la rând.

Contactează-ne