Hacker News

Spring Boot Done Right: Asuade ahorow a efi 400-Module Codebase mu

Nsɛm a wɔka

13 min read Via medium.com

Mewayz Team

Editorial Team

Hacker News

Spring Boot Done Right: Asuadeɛ a ɛfiri 400-Module Codebase

mu

Spring Boot bɔhyɛ no yɛ nea ɛtwetwe adwene: application nkɔso ntɛmntɛm, nhyehyɛe a wɔayɛ no mmerɛw, ne abɔde a nkwa wom nhyehyɛe a ɛyɛ fɛ. Ɛma akuw nketewa tumi yɛ microservices a ahoɔden wom a ahoɔhare a ɛyɛ nwonwa wom. Nanso dɛn na ɛba bere a saa nhwɛsode a edi kan no dan adwumayɛbea a ɛtrɛw no? Bere a wo nsa kakraa bi nnwuma no dɔɔso kɔ monorepo a module ɔhaha pii a ɛde ne ho to wɔn ho wɔn ho wom mu no? Ɛha na wo adansi ho gyinaesi ahorow ho sɔhwɛ ankasa fi ase. Yɛafa saa nsuo pɛpɛɛpɛ yi mu, na asuadeɛ a yɛanya afiri Spring Boot codebase a ɛwɔ module 400 a yɛbɛhwɛ so no yɛ masterclass wɔ software nkɔsoɔ a ɛkɔ so daa mu.

Adum a ɛwɔ Nkyekyɛmu a Wɔtumi Sesa

Wɔ ne titiriw mu no, codebase kɛse bi hwehwɛ sɛ wɔyɛ nhyehyɛe a ɛkɔ so daa na ntease wom. Sɛ enni hɔ a, wobɔ "Jenga abantenten" a ɛyɛ mmara —ade foforo biara a wɔde bɛka ho no wɔ asiane mu sɛ ɛbɛma ade no nyinaa aba fam. Ná yɛn fapem adum no yɛ modularization a ɛyɛ katee ne ahye a wɔahyɛ no den. Na module biara wɔ asɛdeɛ baako a wɔakyerɛkyerɛ mu yie, sɛ ɛyɛ core domain entity, API adapter pɔtee bi, anaa standalone service. Nea ɛho hia no, yɛde dependency graph a emu da hɔ sii hɔ. Application module ahorow a ɛkorɔn betumi agyina core domain nhomakorabea ahorow so, nanso ɛnyɛ ɔkwan foforo so da. Eyi siw circular dependencies ano na ɛhwɛɛ sɛ yɛn adwumayɛ mu ntease titiriw no bɛkɔ so ayɛ nea ɛho tew na ɛnyɛ nea ɛyɛ den wɔ infrastructure ho haw ahorow ho. Saa nnyinasosɛm a ɛfa adansi a ɛho tew ho yi yɛ nea wontumi nsusuw ho wɔ nsenia mu.

Nneɛma a Wɔde Ho To So Ho Dwumadie a Wɔbɛtumi Ayɛ no Yie

Ɛnam module ɔhaha pii so no, ebia dependencies ne versions a wɔhwɛ so no yɛ asɛnnennen kɛseɛ baako pɛ. Ɔkwan a ɛnteɛ no de "dependency hell" kɔ, baabi a nhomakorabea biako a wobɛma ayɛ yiye no hwehwɛ sɛ wode nna pii hwehwɛ sɛ wobɛma afoforo du du pii ayɛ foforo akɔ nkyerɛase ahorow a ɛne no hyia mu. Ná yɛn ano aduru ne Bill of Materials (BOM) a ɛyɛ katee, a ɛfa adwumakuw no nyinaa ho. BOM module biako, ɔwofo na ɛkyerɛkyerɛɛ nkyerɛase no mu maa nhomakorabea biara a wɔtaa de di dwuma—Spring, sɔhwɛ, database draiver ahorow, ne nea ɛkeka ho. Module foforo biara a ɛwɔ codebase no mu no de saa BOM yi bae, na ɛhwɛɛ sɛ ɛne ne ho hyia koraa. Eyi danee adeyɛ bi a ebetumi ayɛ basabasa bɛyɛɛ oprehyɛn a wotumi hyɛ ho nkɔm, na wotumi di ho dwuma. Ɛkyerɛ sɛ yɛbɛtumi de ahotosoɔ ayɛ platform’s Spring Boot version no nyinaa foforɔ, ɛnyɛ ahopopo.

Automation sɛ Akyi Dompe a Ɛma Nkɔso

Onipa mfomsoɔ yɛ nea wontumi nkwati, nanso wɔ codebase kɛseɛ mu no, mfomsoɔ ketewa bi tumi nya ripple nsunsuansoɔ kɛseɛ. Yesuaa sɛ yɛde yɛn ho bɛto automation so sen sɛ yɛbɛkyere agu yɛn tirim. Commit biara kanyan battery of automated checks a ɛhyɛɛ yɛn adansi gyinapɛn ahorow no mu den. Nea ɛka eyi ho ne:

  • Static code nhwehwɛmu a wɔde bɛhyɛ coding gyinapɛn ahorow mu den na wɔahu anti-patterns.
  • Nsɔhwɛ a wɔayɛ no afiri so ama module biara, a ɛhwɛ sɛ nsakraeɛ biara ntumi mmu apam a ɛwɔ hɔ dada no so.
  • Dependency nhwehwɛmu a ɛhyɛɛ frankaa tẽẽ version biara a ɛnyɛ nea efi mfinimfini BOM.
  • API nhyiamu nhwehwɛmu a ɛyɛ den ma nwomakorabea a wɔakyekyɛ de siw module a ɛwɔ aseɛ no a ɛbɛbubu ano.

Saa nniso a wɔde afiri yɛ yi ne gluu a ɛkuraa yɛn abɔdeɛ a nkwa wom a ɛyɛ den no mu, na ɛmaa wɔn a wɔyɛ no tumi kɔɔ ntɛmntɛm a wɔremmu nneɛma mma afoforo.

Dwuma a Asɛnka agua a Wɔaka abom Di

Sɛ yɛwɔ architecture ne automation a ɛyɛ pɛ mpo a, ɛda so ara hia sɛ developers sesa context-switch wɔ nnwinnadeɛ a enni ano ntam—Git repositories, CI/CD pipelines, issue trackers, ne deployment dashboards. Saa mpaapaemu yi ma adwene mu adesoa ba na ɛma awo no brɛ ase. Eyi ne ɔhaw a wɔasisi modular business OS te sɛ Mewayz sɛ wɔde bedi ho dwuma no pɛpɛɛpɛ. Ɛnam sɛ ɛde asɛnka agua a ɛka bom a ɛka nkɔsoɔ asetena nyinaa bom ma so no, Mewayz ma akuo ahodoɔ no kwan ma wɔde wɔn adwene si nneɛma a wɔbɛkyekyere so wɔ wɔn module a wɔakyerɛkyerɛ mu yie mu, sene sɛ wɔbɛpere wɔn ho wɔ nnwinnadeɛ nkabom ho. Ɛyɛ adwumayɛ layer a ɛboa codebase a ɛho tew, ɛdan module ahorow a wɔaboaboa ano ma ɛbɛyɛ software adwumayɛbea a ɛyɛ biako ankasa na ɛyɛ adwuma yiye.

💡 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 →
a wɔde ahyɛ mu Ɛnyɛ botae no ne sɛ wɔbɛkyekye nhyehyɛe kɛse bi kɛkɛ; ɛyɛ sɛ wɔbɛkyekyere nhyehyɛe bi a ɛkɔ so yɛ malleable na ntease wom bere mpo a ɛrenyin kɛse no. Ɛsɛ sɛ adansi no yɛ agyapade, na ɛnyɛ asɛyɛde.
na ɛkyerɛ sɛ woayɛ

Akwantuo a ɛfiri Spring Boot application a ɛnyɛ den so kɔ monolith kɛseɛ, multi-module so no yɛ afiri a ɛbɛtumi aba ahyɛ mu ma. Nanso, ɛdenam nnyinasosɛm ahorow a ɛfa adansi a ɛho tew ho a wobɛbata so, atirimɔdensɛm a wode bedi dwuma wɔ dependency management, agye atom a ɛyɛ automation a ɛkɔ akyiri, ne leveraging unitified platforms so no, wubetumi ayɛ codebase a ɛnyɛ kɛse nko, na mmom akwahosan ne nsiesie mu. Nea afi mu aba ne asɛnka agua a ɛkɔ so ma wotumi yɛ nneɛma foforo, sen sɛ ɛbɛsiw ano.

Nsɛmmisa a Wɔtaa Bisa

Spring Boot Done Right: Asuadeɛ a ɛfiri 400-Module Codebase

mu

Spring Boot bɔhyɛ no yɛ nea ɛtwetwe adwene: application nkɔso ntɛmntɛm, nhyehyɛe a wɔayɛ no mmerɛw, ne abɔde a nkwa wom nhyehyɛe a ɛyɛ fɛ. Ɛma akuw nketewa tumi yɛ microservices a ahoɔden wom a ahoɔhare a ɛyɛ nwonwa wom. Nanso dɛn na ɛba bere a saa nhwɛsode a edi kan no dan adwumayɛbea a ɛtrɛw no? Bere a wo nsa kakraa bi nnwuma no dɔɔso kɔ monorepo a module ɔhaha pii a ɛde ne ho to wɔn ho wɔn ho wom mu no? Ɛha na wo adansi ho gyinaesi ahorow ho sɔhwɛ ankasa fi ase. Yɛafa saa nsuo pɛpɛɛpɛ yi mu, na asuadeɛ a yɛanya afiri Spring Boot codebase a ɛwɔ module 400 a yɛbɛhwɛ so no yɛ masterclass wɔ software nkɔsoɔ a ɛkɔ so daa mu.

Adum a ɛwɔ Nkyekyɛmu a Wɔtumi Sesa

Wɔ ne titiriw mu no, codebase kɛse bi hwehwɛ sɛ wɔyɛ nhyehyɛe a ɛkɔ so daa na ntease wom. Sɛ enni hɔ a, wobɔ "Jenga abantenten" a ɛyɛ mmara —ade foforo biara a wɔde bɛka ho no wɔ asiane mu sɛ ɛbɛma ade no nyinaa aba fam. Ná yɛn fapem adum no yɛ modularization a ɛyɛ katee ne ahye a wɔahyɛ no den. Na module biara wɔ asɛdeɛ baako a wɔakyerɛkyerɛ mu yie, sɛ ɛyɛ core domain entity, API adapter pɔtee bi, anaa standalone service. Nea ɛho hia no, yɛde dependency graph a emu da hɔ sii hɔ. Application module ahorow a ɛkorɔn betumi agyina core domain nhomakorabea ahorow so, nanso ɛnyɛ ɔkwan foforo so da. Eyi siw circular dependencies ano na ɛhwɛɛ sɛ yɛn adwumayɛ mu ntease titiriw no bɛkɔ so ayɛ nea ɛho tew na ɛnyɛ nea ɛyɛ den wɔ infrastructure ho haw ahorow ho. Saa nnyinasosɛm a ɛfa adansi a ɛho tew ho yi yɛ nea wontumi nsusuw ho wɔ nsenia mu.

Nneɛma a Wɔde Ho To So Ho Dwumadie a Wɔbɛtumi Ayɛ no Yie

Ɛnam module ɔhaha pii so no, ebia dependencies ne versions a wɔhwɛ so no yɛ asɛnnennen kɛseɛ baako pɛ. Ɔkwan a ɛnteɛ no de "dependency hell" kɔ, baabi a nhomakorabea biako a wobɛma ayɛ yiye no hwehwɛ sɛ wode nna pii hwehwɛ sɛ wobɛma afoforo du du pii ayɛ foforo akɔ nkyerɛase ahorow a ɛne no hyia mu. Ná yɛn ano aduru ne Bill of Materials (BOM) a ɛyɛ katee, a ɛfa adwumakuw no nyinaa ho. BOM module biako, ɔwofo na ɛkyerɛkyerɛɛ nkyerɛase no mu maa nhomakorabea biara a wɔtaa de di dwuma—Spring, sɔhwɛ, database draiver ahorow, ne nea ɛkeka ho. Module foforo biara a ɛwɔ codebase no mu no de saa BOM yi bae, na ɛhwɛɛ sɛ ɛne ne ho hyia koraa. Eyi danee adeyɛ bi a ebetumi ayɛ basabasa bɛyɛɛ oprehyɛn a wotumi hyɛ ho nkɔm, na wotumi di ho dwuma. Ɛkyerɛ sɛ yɛbɛtumi de ahotosoɔ ayɛ platform’s Spring Boot version no nyinaa foforɔ, ɛnyɛ ahopopo.

Automation sɛ Akyi Dompe a Ɛma Nkɔso

Onipa mfomsoɔ yɛ nea wontumi nkwati, nanso wɔ codebase kɛseɛ mu no, mfomsoɔ ketewa bi tumi nya ripple nsunsuansoɔ kɛseɛ. Yesuaa sɛ yɛde yɛn ho bɛto automation so sen sɛ yɛbɛkyere agu yɛn tirim. Commit biara kanyan battery of automated checks a ɛhyɛɛ yɛn adansi gyinapɛn ahorow no mu den. Nea ɛka eyi ho ne:

Dwuma a Platform a Wɔaka abom Di

Sɛ yɛwɔ architecture ne automation a ɛyɛ pɛ mpo a, ɛda so ara hia sɛ developers sesa context-switch wɔ nnwinnadeɛ a enni ano ntam—Git repositories, CI/CD pipelines, issue trackers, ne deployment dashboards. Saa mpaapaemu yi ma adwene mu adesoa ba na ɛma awo no brɛ ase. Eyi ne ɔhaw a wɔasisi modular business OS te sɛ Mewayz sɛ wɔde bedi ho dwuma no pɛpɛɛpɛ. Ɛnam sɛ ɛde asɛnka agua a ɛka bom a ɛka nkɔsoɔ asetena nyinaa bom ma so no, Mewayz ma akuo ahodoɔ no kwan ma wɔde wɔn adwene si nneɛma a wɔbɛkyekyere so wɔ wɔn module a wɔakyerɛkyerɛ mu yie mu, sene sɛ wɔbɛpere wɔn ho wɔ nnwinnadeɛ nkabom ho. Ɛyɛ adwumayɛ layer a ɛboa codebase a ɛho tew, ɛdan module ahorow a wɔaboaboa ano ma ɛbɛyɛ software adwumayɛbea a ɛyɛ biako ankasa na ɛyɛ adwuma yiye.

Yɛ Wo Adwumayɛ OS Ɛnnɛ

Efi freelancers so kosi agencies so, Mewayz de module ahorow 208 a wɔaka abom ma nnwuma 138,000+ tumi. Fi ase kwa, upgrade bere a woanyin.

Yɛ Akontaabu a Wontua hwee →

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