Í öð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.
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
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
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 pakkakerfið
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.
Á þ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ð.
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.
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.
Eftir að hafa bætt þessari stillingu við, Pocky mun lita samþykktu háðkerfin grænt.
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:
– 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:
Færðu allar application_ skrár og möppur úr forritinu til app/pakkar/rails.
Búðu til apakki.yml fyrir pakkann með sömu stillingu og fyrri pakkar.
Bættu við allar nýju skráarleiðirnar við pakkverk.yml.
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.
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.
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.
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.