(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-5LHNRP9'); Ruby on Rails einingagerð með Packwerk Episode II - The Codest
The Codest
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Iðnaðargreinar
    • Fjártæknifyrirtæki og bankastarfsemi
    • E-commerce
    • Adtech
    • Heilbrigðistækni
    • Framleiðsla
    • Flutningar
    • Bifreiða
    • Internet hlutanna
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
  • Um okkur
  • Þjónusta
    • Hugbúnaðarþróun
      • Framhliðþróun
      • Bakendaþróun
    • Staff Augmentation
      • Framhliðaráþrófarar
      • Bakhliðaráþróunaraðilar
      • Gagnaverkfræðingar
      • Skýjaverkfræðingar
      • Gæðatryggingartæknimenn
      • Annað
    • Það er ráðgjafi
      • Endurskoðun og ráðgjöf
  • Gildi fyrir
    • CEO
    • CTO
    • Afhendingarstjóri
  • Teymið okkar
  • Case Studies
  • Vitið hvernig
    • Blogg
    • Fundir
    • Vefnámskeið
    • Auðlindir
Starfsferilmöguleikar Hafðu samband
Aftur ör Farðu aftur
2022-01-10
Hugbúnaðarþróun

Ruby on Rails módúlgerð með Packwerk Episode II

Nikólás Nisóría

Í öðrum þætti móduðunarverkefnis okkar Ruby on Rails með Packwerk munum við skoða hugmyndina um forrit sem pakka nánar.

Hér er tómt.

Umsókn sem pakki

Aðferðin við að gera forritið okkar módulegt felst í því að umbreyta öllu forritinu í pakka.

Búðu til uppbygginguna

Í fyrsta lagi þurfum við að búa til app/pakkar möppu þar sem við munum setja öll pakkana okkar. Til að einangra pakkana okkar verðum við að aðskilja hvern og einn MVC-hugmynd í einni möppu. Að taka Kóðaflokkun verkefni Sem dæmi munum við hafa eitthvað eins og eftirfarandi mynd.

Uppbygging pakka

Ef við reynum að keyra netþjóninn, mun hann ekki finna fastastöðurnar. Þess vegna þurfum við að bæta við einni stillilínu í okkar forrit.rb

config.paths.add 'app/packages', glob: '*/{*,*/concerns}', eager_load:true

Nú virkar forritið en það finnur ekki útsýnin, svo við þurfum að bæta við annarri stillilínu í okkar forritunarstjóri_umsóknar.rb

Bæta við sýnileið (Dir.glob(Relsar.root.join('app/packages/*/views')))

Búðu til pakkana

Uppbygging okkar er tilbúin, svo nú getum við byrjað að búa til pakkana. Til þess að gera það þurfum við aðeins að bæta við apakki.yml til hvers möppu með eftirfarandi stillingu:

Tryggja friðhelgi: falskt
Tryggja háðarkröfur: satt

pakki.yml

Tryggja friðhelgigefur okkur möguleikann á að einangra allar fastastærðir pakkans og vinna með opinbera forritaskil. Til að birta almennar fastastærðir þurfum við að bæta fastastærðunum inn, til dæmis pakkar/notendur/app/opinbert.Fyrir núna ætlum við að stilla þessa konfiguratíu á rangt.

Innleiða háðleika Mun framfylgja háðun pakka og athuga allar föstu tilvísanir. Ef háðun er ekki skýrt skilgreind, verður það brot á mörkunum.

Staðfesta pakka­kerfið

Pakkaun Stofnaði viðmið sem við þurfum að fylgja til að hafa gilt pakka kerfi. Við getum byrjað að keyra packwerk staðfesta í okkar leikjatölvu.

 Þetta mun athuga möppufyrirkomulag okkar, Pakkauppsetning, og sjálfhleðslu slóða skyndiminni.

Núna er umsóknin okkar ógild og við verðum að laga hleðsluleiðirnar ípakkverk.yml. Til að gera þetta þurfum við aðeins að bæta við vantar slóðirnar.

# packwerk.yml

load_paths:.
.
.


# Notendur
- app/packages/users/controllers
- app/packages/users/models
-  app/packages/users/package.yml
- app/packages/users/views

Á þessum tímapunkti erum við tilbúin að athuga brot á mörkum í forritinu okkar. Til að athuga brotin getum við keyrtpackwerk uppfærsla – úreldingar , þetta skipun mun búa til Úreltar tilvísanir.yml Skrá fyrir hvert pakka. Í hverri skrá finnum við pakkanafn, tegund brots og slóð skráarinnar. Með öllum þessum upplýsingum vitum við hvar brotið á sér stað og getum tekið ákvörðun um að leysa það.

Úreltar tilvísanir.yml
# deprecated_references.yml.

.
.


app/packages/repos:
  "::Repo":
    violations:
    - dependency
    files:
    - app/packages/users/models/user.rb

Með því að taka dæmið munum við lýsa hverjum hluta af þeim upplýsingum sem framleiddar eru.
eftir Pakkaun.

– app/pakkar/geymslar  – pakki þar sem stöðug brot er
fundið.

– ::Skuldabréf  – slóð að skránni sem inniheldur brotnaðu fastagildið.

– háð  – tegund brots, annaðhvort á háðun eða friðhelgi einkalífs.

– app/pakkar/notendur/líkön/notandi.rb  – slóð að skránni sem inniheldur brotnaðu fastagildið.

Sem síðasta skref í þessum hluta skaltu ekki gleyma að bæta nýju, framkölluðu skráarleiðunum við pakkverk.yml og keyra gildiskannanir aftur.

Sýning á háð tengslum

Með öllum upplýsingunum í package.yml og Úreltar tilvísanir.ymlvið getum þá
Sýndu háðagrafík. Til þess að gera það þurfum við að bæta við annarri gem; í þessu tilfelli munum við nota Pocky.

Hlaupandi rák pocky:búa til Við munum búa til skrá sem kallast packwerk.png þar sem við getum sýnilægt fyrsta myndritið okkar yfir háðleika.

Með öllum pakkunum skilgreindum mun grafið okkar líta svona út.

graf án samþykktra forsendna

Háðarsambönd eru þegar til en það þýðir ekki að þau séu samþykkt af Pakkaun. Til
Samþykkja háðnina, við þurfum að bæta við háðnaskipulagið í pakki.yml
í hverjum pakka. Við munum einbeita okkur að póstsmíðamenn þar sem þetta er pakki án hringlaga háðara. Það er þess virði að nefna að Pakkaun Leyfir okkur ekki að samþykkja hringlaga háðleika.

# app/packages/mail_builders/package.yml

```ruby
enforce_privacy: false
enforce_dependencies: true
dependencies:
- app/packages/docs
- app/packages/issues
- app/packages/repos

Eftir að hafa bætt þessari stillingu við, Pocky mun lita samþykktu háðkerfin grænt.

graf með samþykktum háðunum

Við getum eytt Úreltar tilvísanir.yml frá app/pakkar/mail_builders og hlaupa
packwerk uppfærsla – úreldingar aftur. Skráin verður ekki búin til aftur þar sem allt
Viðbótir voru lagfærðar fyrir þetta pakka. Mikilvægt er að taka fram að jafnvel þó við notum ekki Graph með samþykktum háðugum.

Rúbín um modularíseringu Rails með Packwerk Samþykkja háðleika. Forritið okkar mun enn virka eins og áður, en nú höfum við meira.
upplýsingar til að taka ákvarðanir og endurskipuleggja kóðann.

Fjarlægið hringlaga háðleika

Í fyrri myndritinu okkar voru margar hringlaga háð tengsl sem þurfti að leysa á einhvern hátt. Við höfum mismunandi aðferðir til þess:

– Gerðu ekkert,

– Samþykkja háðleika, sameina pakka,

– Hreyfa sig kóði milli pakka,

– Afrita virkni, 

– Framkvæma háðuinngjöf eða háðuinngjöf með gerðartýpu.

Eitt vandamál hér er að til að framkvæma almennilega endurskipulagningu þurfum við að þekkja kóðagrunninn. Ég er ekki svo kunnugur kóðagrunni þessa verkefnis þar sem ég tók það sem dæmi, svo af hagnýtum ástæðum munum við velja fyrstu stefnu, gera ekkert. Jafnvel þó við forðumst mestan hluta endurskipulagningarinnar, viljum við vinna að háðunum í rót pakki.

Grunnpakkinn inniheldur allt lím frá Rails-rammi, öllum klasunum sem við erfðum frá og gerum allt til að vinna saman. Svo, til að leysa hringlaga háðin, ætlum við að búa til nýtt pakka sem kallast rails í eftirfarandi skrefum:

  1. Færðu allar application_ skrár og möppur úr forritinu til app/pakkar/rails.
  2. Búðu til apakki.yml fyrir pakkann með sömu stillingu og fyrri pakkar.
  3. Bættu við allar nýju skráarleiðirnar við pakkverk.yml.
  4. Bæta við app/pakkar/rails sem háðnari fyrir restina af pakkunum.

Þegar við búum til pakkann munum við byrja að taka eftir mörgum skrám sem hægt er að endurskipuleggja. Eftir að hafa fært allt í viðeigandi pakka og samþykkt
Með háðum hlutum munum við hafa nýja uppbyggingu og hreinni graf.

Pakkauppbygging með Rails-pakka
Línurit án rótarhringlaga háðna

Fjarlægið háðni úr rótapakkannum

Nú lítur grafið okkar mun betur út; það væri frábært ef við gætum fjarlægt allar háð­anir úr rótarpakkanum. Ef við skoðum deprecated_references.yml í rótarpakkanum, munum við taka eftir að flestar þeirra eru frá próf , bókasafn/verkefni , gagnagrunnur og stillingar
möppu. Til að leysa þessa háðleika ætlum við að búa til prófmöppu í hverjum pakka. Að hafa eitthvað eins og app/pakkar/notendur/próf. Næst ætlum við að útiloka bókasafn/verkefni , gagnagrunnur og stillingarmeðal annarra möppna frá Pakkaun greiningu þar sem þessar forsendur skipta í raun ekki miklu máli í greiningu okkar og við höfum enga auðvelda leið til að leysa þær. Við munum bæta eftirfarandi við okkar pakkverk.yml.

Undanskilja:
- "{bin,node_modules,script,tmp,vendor,lib,db,config,perf_scripts}/**/*"
- "lib/tasks/**/*.rake"

Eftir að hafa flutt allar prófanir úr rótapakkann og útilokað möppurnar úr greiningunni munum við fá nýtt línurit án rótaskilgreina.

Líta án rótarháðra

Eins og við sjáum, erum við enn með hringlaga háð ínotendur , geymsla , og skjöl . Þó að við höfum ekki leyst þau, höfum við mikilvægar upplýsingar sem við þurfum að koma á framfæri núna. Við vitum að hver lið að framkvæma breytingar í einu af þessum pakka þarf líklega að framkvæma breytingar í pakkanum með hringlaga háð. Á hinn bóginn vitum við að team getur unnið á GitHub-fáendur einfaldlega, að vita hvaða pakkar eru
Að verða fyrir áhrifum af breytingum á hverri stundu.

Þú getur fundið endanlegan árangur verkefnisins hér.

Næsta skref

Sem næsta skref gætirðu tryggt stöðuga persónuvernd í hverju pakka og birt aðeins opinbera API-ið sem verður aðgengilegt úr öðrum pakkum. Þú getur auðveldlega stillt hvar API-ið þitt verður staðsett í pakki.yml.

Tryggja persónuvernd: satt
Tryggja háðarkerfi: satt
Opinber slóður: mín/sérsniðin/slóð/

Ályktanir

Pakkaun veitir okkur miklar upplýsingar um forritið okkar og með þeim upplýsingum getum við tekið ákvarðanir til að bæta vinnuflæði teams-kerfa okkar. Þó að ferlið hafi virst langt og með miklum stillingum þarf það ekki alltaf að vera þannig. Við getum byrjað að búa til pakka eingöngu fyrir nýja kóðann sem bætt er við forritið okkar og smám saman móðra það upp í einingar. Nú getum við byrjað að tala um smámótun (Gradual Modularization), hugtak sem Stephan Hagemann kynnti. “Við getum, í fyrsta sinn, ákveðið að byrja að móðúlísera hluta kóðans á metnaðarfullan hátt… Þetta gerir okkur kleift að búa til smám saman vaxandi stuðningskerfi sem stefnir að betri uppbyggingu forritsins.

Heimildir

  1. Stigvaxandi einingagerð fyrir Ruby on Rails – Stephan Hagemann
  2. Að tryggja móduleiningu í Rails-forritum með Packwerk
  3. Packwerk GitHub
  4. Upphafskóði greinarinnar
Ráðgjöf um þróun stafrænna vara

Lesa meira

GraphQL Ruby. Hvernig er frammistaðan?

Lestar og önnur samgöngutæki

Rails-þróun með tmux, vim, fzf og ripgrep

Tengdar greinar

Myndskreyting af heilbrigðisforriti fyrir snjallsíma með hjartatákni og hækkandi heilsufarsgrafík, merkt með The Codest-merkinu, sem táknar stafræna heilsu og HealthTech-lausnir.
Hugbúnaðarþróun

Heilbrigðis-hugbúnaður: gerðir og notkunartilvik

Tólin sem heilbrigðisstofnanir treysta á í dag líta ekkert út eins og pappírsskjöl frá fyrri áratugum. Heilbrigðisforrit styðja nú heilbrigðiskerfi, sjúklingameðferð og nútímalega heilbrigðisþjónustu á klínískum og...

THECODEST
Yfirlitsmynd sem sýnir hnignandi súlurit með uppstrekktri ör og gullmynt sem táknar kostnaðarhagkvæmni eða sparnað. The Codest-merkið birtist í efra vinstra horni með slagorðinu "In Code We Trust" á ljósgráum bakgrunni.
Hugbúnaðarþróun

Hvernig á að stækka þróunarteymið án þess að fórna gæðum vörunnar

Ertu að stækka þróunarteymið þitt? Lærðu hvernig á að vaxa án þess að fórna gæðum vörunnar. Þessi leiðarvísir fjallar um merki um að kominn sé tími til að stækka, uppbyggingu teymisins, ráðningar, forystu og verkfæri—og hvernig teymið getur...

THECODEST
Hugbúnaðarþróun

Búðu til vefumsóknir sem þola framtíðina: innsýn frá sérfræðiteymi The Codest

Uppgötvaðu hvernig The Codest skarar fram úr við að búa til stigstækar, gagnvirkar vefumsóknir með nýjustu tækni, sem bjóða upp á hnökralausa notendaupplifun á öllum kerfum. Lærðu hvernig sérfræðiþekking okkar knýr fram stafræna umbreytingu og viðskipti...

THECODEST
Hugbúnaðarþróun

Topp 10 hugbúnaðarþróunarfyrirtæki í Lettlandi

Kynntu þér fremstu hugbúnaðarþróunarfyrirtæki Lettlands og nýstárlegar lausnir þeirra í nýjustu grein okkar. Uppgötvaðu hvernig þessir tækniforingjar geta hjálpað til við að efla fyrirtækið þitt.

thecodest
Lausnir fyrir fyrirtæki og vaxtarfyrirtæki

Grunnatriði í Java hugbúnaðarþróun: Leiðarvísir að árangursríkri útvistun

Kannaðu þessa ómissandi leiðbeiningu um árangursríka outsourcing Java hugbúnaðarþróun til að auka skilvirkni, afla aðgangs að sérfræðiþekkingu og tryggja árangur verkefna með The Codest.

thecodest

Gerðu þig áskrifanda að þekkingargrunni okkar og vertu upplýstur um sérfræðiþekkingu upplýsingatæknigeirans.

    Um okkur

    The Codest – Alþjóðlegt hugbúnaðarþróunarfyrirtæki með tæknimiðstöðvar í Póllandi.

    Bretland - Höfuðstöðvar

    • Skrifstofa 303B, 182-184 High Street North E6 2JA
      Lundúnir, England

    Pólland - staðbundin tæknimiðstöðvar

    • Fabryczna skrifstofugarður, Aleja
      Herbergi 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsjá, Pólland

    The Codest

    • Heim
    • Um okkur
    • Þjónusta
    • Case Studies
    • Vitið hvernig
    • Starfsferilmöguleikar
    • Orðabók

    Þjónusta

    • Það er ráðgjafi
    • Hugbúnaðarþróun
    • Bakendaþróun
    • Framhliðþróun
    • Staff Augmentation
    • Bakhliðaráþróunaraðilar
    • Skýjaverkfræðingar
    • Gagnaverkfræðingar
    • Annað
    • Gæðatryggingartæknimenn

    Auðlindir

    • Staðreyndir og goðsagnir um samstarf við utanaðkomandi hugbúnaðarþróunaraðila
    • Frá Bandaríkjunum til Evrópu: Af hverju ákveða bandarísk sprotafyrirtæki að flytja til Evrópu?
    • Samanburður á tæknifjarkerfisþróunarmiðstöðvum: Tech Offshore Europe (Pólland), ASEAN (Filippseyjar), Eurasia (Tyrkland)
    • Hvert eru helstu áskoranir CTO-a og CIO-a?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Höfundarréttur © 2026 af The Codest. Öll réttindi áskilin.

    is_ISIcelandic
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian es_ESSpanish nl_NLDutch etEstonian elGreek pt_PTPortuguese cs_CZCzech lvLatvian lt_LTLithuanian is_ISIcelandic