Záznam architektonického rozhodnutia: framework Ruby on Rails
Kontext
Organizácia vyvíja webovú aplikáciu so zložitou obchodnou logikou a viacerými integráciami so službami tretích strán.
Tím má skúsenosti s budovaním webových aplikácií pomocou Ruby on Rails.
Je potrebné zvoliť webový framework, ktorý podporuje rýchly vývoj, škálovateľnosť a udržiavateľnosť.
Rozhodnutie
- Použiť Ruby on Rails ako framework na vývoj webovej aplikácie.
Odôvodnenie
Ruby on Rails je zrelý, stabilný a široko prijatý webový framework, ktorý preukázal svoju účinnosť pri budovaní zložitých webových aplikácií.
Framework sleduje architektonický vzor Model-View-Controller (MVC), ktorý podporuje oddelenie zodpovedností a zlepšuje opätovnú použiteľnosť a udržiavateľnosť kódu.
Rails poskytuje mnoho vstavaných funkcií, ako ActiveRecord na interakciu s databázou a ActionMailer na správu e-mailov, ktoré môžu ušetriť čas vývoja a zjednodušiť kód.
Framework má veľkú a aktívnu komunitu s mnohými opakovane použiteľnými modulmi a zásuvnými modulmi, ktoré rozširujú funkcionalitu a riešia bežné problémy.
Ruby on Rails podporuje vývoj riadený testami (TDD) a vývoj riadený správaním (BDD), čo vývojárom umožňuje písať automatizované testy svojho kódu, zabezpečiť, že funguje podľa očakávaní, a znížiť počet chýb a regresií.
Ruby je jazyk vysokej úrovne, ktorý podporuje produktivitu vývojárov a čitateľnosť kódu a slúži ako silný spájací jazyk na integráciu so širokou škálou služieb a API tretích strán.
Dôsledky
Tím musí zabezpečiť, aby architektúra a návrh webovej aplikácie dodržiavali konvencie a osvedčené postupy Rails, aby sa maximalizovali prínosy frameworku.
Vývojári musia dobre rozumieť jazyku Ruby a frameworku Rails, hoci dokumentácia a komunita Rails môžu poskytnúť vedenie a podporu.
Pre vývojárov, ktorí sú v Ruby a Rails noví, môže existovať krivka učenia, hoci prínosy frameworku môžu investíciu do školenia a zaškolenia ospravedlniť.
Tím musí sledovať výkon a škálovateľnosť aplikácie a môže byť potrebné doladiť databázové dopyty a optimalizovať cachovanie, aby zvládol veľké objemy dát a prevádzky.