Hacker News

Teisingai atlikta pavasario paleidimas: pamokos iš 400 modulių kodų bazės

komentarai

8 min read Via medium.com

Mewayz Team

Editorial Team

Hacker News

Teisingai atlikta pavasario įkrova: pamokos iš 400 modulių kodų bazės

Spring Boot pažadas vilioja: greitas programų kūrimas, supaprastinta konfigūracija ir turtinga ekosistema. Tai leidžia mažoms komandoms neįtikėtinu greičiu sukurti galingas mikro paslaugas. Bet kas atsitiks, kai tas pradinis prototipas išsivystys į besiplečiančią įmonės platformą? Kai jūsų paslaugų sauja padaugėja į monorepo, kuriame yra šimtai tarpusavyje susijusių modulių? Čia prasideda tikrasis jūsų architektūrinių sprendimų išbandymas. Išplaukėme būtent šiuose vandenyse, o pamokos, įgytos valdant 400 modulių „Spring Boot“ kodų bazę, yra tvaraus programinės įrangos kūrimo meistriškumo klasė.

Mastelio keitimo struktūros ramsčiai

Iš esmės didžiulė kodų bazė reikalauja nuoseklios ir logiškos struktūros. Be jo sukursite kodo „Jenga bokštą“ – bet koks naujas papildymas gali sugriauti visą reikalą. Mūsų pagrindiniai ramsčiai buvo griežtas moduliavimas ir griežtos ribos. Kiekvienas modulis turėjo vieną, tiksliai apibrėžtą atsakomybę, nesvarbu, ar tai buvo pagrindinis domeno objektas, ar konkretus API adapteris, ar atskira paslauga. Svarbiausia, kad sukūrėme aiškų priklausomybės grafiką. Aukštesnio lygio programų moduliai gali priklausyti nuo pagrindinių domeno bibliotekų, bet niekada atvirkščiai. Tai užkirto kelią žiedinėms priklausomybėms ir užtikrino, kad mūsų pagrindinė verslo logika išliktų nesugadinta ir nesusijusi su infrastruktūros rūpesčiais. Šis švarios architektūros principas yra nediskutuotinas dideliu mastu.

Priklausomybės valdymo įsisavinimas

Turint šimtus modulių, priklausomybių ir versijų valdymas yra bene didžiausias iššūkis. Neteisingas požiūris veda į „priklausomybės pragarą“, kai atnaujinant vieną biblioteką reikia kelias dienas trunkančio ieškojimo, norint atnaujinti daugybę kitų į suderinamas versijas. Mūsų sprendimas buvo griežtas visos įmonės medžiagų sąrašas (BOM). Vienas pirminis BOM modulis apibrėžė kiekvienos bendros bibliotekos versiją – pavasarį, testavimą, duomenų bazių tvarkykles ir kt. Kiekvienas kitas kodų bazės modulis importavo šią MK, užtikrindamas absoliutų nuoseklumą. Tai potencialiai chaotišką procesą pavertė nuspėjama, valdoma operacija. Tai reiškė, kad visą platformos „Spring Boot“ versiją galime atnaujinti drąsiai, o ne jaudindamiesi.

Automatika kaip nuoseklumo pagrindas

Žmogaus klaida yra neišvengiama, tačiau didelėje kodų bazėje maža klaida gali turėti didžiulį bangavimą. Išmokome pasitikėti automatizavimu, o ne įsiminimu. Kiekvienas įsipareigojimas suaktyvino daugybę automatinių patikrinimų, kurie atitiko mūsų architektūros standartus. Tai apima:

  • Statinė kodo analizė, siekiant užtikrinti kodavimo standartų vykdymą ir aptikti antipatternus.
  • Automatiniai kiekvieno modulio testai, užtikrinantys, kad nebūtų pažeistos esamos sutartys.
  • Priklausomybės patikros, kurios pažymėjo bet kokią tiesioginę versiją, nepaiso ne iš centrinės KS.
  • Griežtos bendrinamų bibliotekų API suderinamumo patikros, kad būtų išvengta tolesnių modulių gedimo.

Šis automatizuotas valdymas buvo klijai, sulaikantys mūsų sudėtingą ekosistemą ir leido kūrėjams greitai judėti nepažeidžiant kitų dalykų.

Vieningos platformos vaidmuo

Net ir esant tobulai architektūrai ir automatizavimui, kūrėjams vis tiek reikia perjungti daugybę įrankių – „Git“ saugyklų, CI / CD konvejerių, problemų stebėjimo priemonių ir diegimo prietaisų skydelių. Šis susiskaidymas sukuria pažinimo krūvį ir lėtina gimdymą. Būtent tokiai problemai išspręsti yra sukurta modulinė verslo OS, tokia kaip „Mewayz“. Teikdama vieningą platformą, integruojančią visą kūrimo gyvavimo ciklą, „Mewayz“ leidžia komandoms sutelkti dėmesį į funkcijų kūrimą savo aiškiai apibrėžtuose moduliuose, o ne kovoti su įrankių integravimu. Tai operatyvinis sluoksnis, papildantis švarią kodų bazę, paversdamas modulių rinkinį tikrai darnia ir efektyvia programinės įrangos gamykla.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →
Tikslas yra ne tik sukurti didelę sistemą; tai sukurti sistemą, kuri išliktų lanksti ir suprantama net ir išaugus. Architektūra turi būti turtas, o ne įsipareigojimas.

Kelionė nuo paprastos „Spring Boot“ programos iki didžiulio kelių modulių monolito yra kupina galimų spąstų. Tačiau laikydamiesi švarios architektūros principų, diegdami negailestingą priklausomybės valdymą, įtraukdami visapusį automatizavimą ir pasitelkdami vieningas platformas, galite sukurti kodų bazę, kuri padidės ne tik dydžiu, bet ir sveikata bei priežiūra. Rezultatas – platforma, kuri ir toliau įgalina naujoves, o ne jas slopina.

Dažniausiai užduodami klausimai

Teisingai atlikta pavasario įkrova: pamokos iš 400 modulių kodų bazės

Spring Boot pažadas vilioja: greitas programų kūrimas, supaprastinta konfigūracija ir turtinga ekosistema. Tai leidžia mažoms komandoms neįtikėtinu greičiu sukurti galingas mikro paslaugas. Bet kas atsitiks, kai tas pradinis prototipas išsivystys į besiplečiančią įmonės platformą? Kai jūsų paslaugų sauja padaugėja į monorepo, kuriame yra šimtai tarpusavyje susijusių modulių? Čia prasideda tikrasis jūsų architektūrinių sprendimų išbandymas. Išplaukėme būtent šiuose vandenyse, o pamokos, įgytos valdant 400 modulių „Spring Boot“ kodų bazę, yra tvaraus programinės įrangos kūrimo meistriškumo klasė.

Mastelio keitimo struktūros ramsčiai

Iš esmės didžiulė kodų bazė reikalauja nuoseklios ir logiškos struktūros. Be jo sukursite kodo „Jenga bokštą“ – bet koks naujas papildymas gali sugriauti visą reikalą. Mūsų pagrindiniai ramsčiai buvo griežtas moduliavimas ir griežtos ribos. Kiekvienas modulis turėjo vieną, tiksliai apibrėžtą atsakomybę, nesvarbu, ar tai buvo pagrindinis domeno objektas, ar konkretus API adapteris, ar atskira paslauga. Svarbiausia, kad sukūrėme aiškų priklausomybės grafiką. Aukštesnio lygio programų moduliai gali priklausyti nuo pagrindinių domeno bibliotekų, bet niekada atvirkščiai. Tai užkirto kelią žiedinėms priklausomybėms ir užtikrino, kad mūsų pagrindinė verslo logika išliktų nesugadinta ir nesusijusi su infrastruktūros rūpesčiais. Šis švarios architektūros principas yra nediskutuotinas dideliu mastu.

Priklausomybės valdymo įsisavinimas

Turint šimtus modulių, priklausomybių ir versijų valdymas yra bene didžiausias iššūkis. Neteisingas požiūris veda į „priklausomybės pragarą“, kai atnaujinant vieną biblioteką reikia kelias dienas trunkančio ieškojimo, norint atnaujinti daugybę kitų į suderinamas versijas. Mūsų sprendimas buvo griežtas visos įmonės medžiagų sąrašas (BOM). Vienas pirminis BOM modulis apibrėžė kiekvienos bendros bibliotekos versiją – pavasarį, testavimą, duomenų bazių tvarkykles ir kt. Kiekvienas kitas kodų bazės modulis importavo šią MK, užtikrindamas absoliutų nuoseklumą. Tai potencialiai chaotišką procesą pavertė nuspėjama, valdoma operacija. Tai reiškė, kad visą platformos „Spring Boot“ versiją galime atnaujinti drąsiai, o ne jaudindamiesi.

Automatika kaip nuoseklumo pagrindas

Žmogaus klaida yra neišvengiama, tačiau didelėje kodų bazėje maža klaida gali turėti didžiulį bangavimą. Išmokome pasitikėti automatizavimu, o ne įsiminimu. Kiekvienas įsipareigojimas suaktyvino daugybę automatinių patikrinimų, kurie atitiko mūsų architektūros standartus. Tai apima:

Vieningos platformos vaidmuo

Net ir esant tobulai architektūrai ir automatizavimui, kūrėjams vis tiek reikia perjungti daugybę įrankių – „Git“ saugyklų, CI / CD konvejerių, problemų stebėjimo priemonių ir diegimo prietaisų skydelių. Šis susiskaidymas sukuria pažinimo krūvį ir lėtina gimdymą. Būtent tokiai problemai išspręsti yra sukurta modulinė verslo OS, tokia kaip „Mewayz“. Teikdama vieningą platformą, integruojančią visą kūrimo gyvavimo ciklą, „Mewayz“ leidžia komandoms sutelkti dėmesį į funkcijų kūrimą savo aiškiai apibrėžtuose moduliuose, o ne kovoti su įrankių integravimu. Tai operatyvinis sluoksnis, papildantis švarią kodų bazę, paversdamas modulių rinkinį tikrai darnia ir efektyvia programinės įrangos gamykla.

Sukurkite savo verslo OS šiandien

Nuo laisvai samdomų vertėjų iki agentūrų – „Mewayz“ valdo 138 000 ir daugiau įmonių su 208 integruotais moduliais. Pradėkite nemokamai, atnaujinkite, kai augsite.

Sukurti nemokamą paskyrą →

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 30,000+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 30,000+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime