Architecture Decision Record

Active theme: Light

← Primeri zapisov odločitev

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.

Zasluge: to stran je ustvaril ChatGPT, nato pa je bila urejena zaradi jasnosti in oblike.