Zapis arhitekturne odločitve: ogrodje Ruby on Rails
Kontekst
Organizacija razvija spletno aplikacijo z zapleteno poslovno logiko in več integracijami s storitvami tretjih oseb.
Ekipa ima izkušnje z gradnjo spletnih aplikacij z Ruby on Rails.
Izbrati je treba spletno ogrodje, ki spodbuja hiter razvoj, razširljivost in vzdržljivost.
Odločitev
- Za razvoj spletne aplikacije uporabiti Ruby on Rails kot ogrodje.
Utemeljitev
Ruby on Rails je zrelo, stabilno in široko sprejeto spletno ogrodje, ki je dokazalo svojo učinkovitost pri gradnji zapletenih spletnih aplikacij.
Ogrodje sledi arhitekturnemu vzorcu Model-View-Controller (MVC), ki spodbuja ločevanje odgovornosti ter izboljšuje ponovno uporabnost in vzdržljivost kode.
Rails zagotavlja številne vgrajene funkcije, kot sta ActiveRecord za interakcije s podatkovno bazo in ActionMailer za upravljanje e-pošte, ki lahko prihranijo razvojni čas in poenostavijo kodo.
Ogrodje ima veliko in dejavno skupnost s številnimi ponovno uporabnimi moduli in vtičniki, ki so na voljo za razširitev funkcionalnosti in reševanje pogostih težav.
Ruby on Rails podpira razvoj, voden s testi (TDD), in razvoj, voden z vedenjem (BDD), kar razvijalcem omogoča pisanje samodejnih testov za njihovo kodo, ki zagotavljajo, da deluje po pričakovanjih, ter zmanjšujejo hrošče in regresije.
Ruby je visokonivojski jezik, ki spodbuja produktivnost razvijalcev in berljivost kode ter deluje kot zmogljiv povezovalni jezik za integracijo s širokim naborom storitev in API-jev tretjih oseb.
Posledice
Ekipa mora zagotoviti, da arhitektura in zasnova spletne aplikacije sledita konvencijam in najboljšim praksam ogrodja Rails, da kar najbolj izkoristi prednosti ogrodja.
Razvijalci morajo dobro razumeti jezik Ruby in ogrodje Rails, čeprav lahko dokumentacija in skupnost Rails zagotovita smernice in podporo.
Za razvijalce, ki jezika Ruby in ogrodja Rails ne poznajo, lahko obstaja krivulja učenja, čeprav lahko koristi ogrodja upravičijo naložbo v usposabljanje in uvajanje.
Ekipa mora spremljati zmogljivost in razširljivost aplikacije ter bo morda morala fino uglasiti poizvedbe po podatkovni bazi in optimizirati predpomnjenje za obvladovanje velikih količin podatkov in prometa.