Rejestr decyzji architektonicznych: framework Ruby on Rails
Kontekst
Organizacja tworzy aplikację internetową ze złożoną logiką biznesową i wieloma integracjami z usługami firm trzecich.
Zespół ma doświadczenie w budowaniu aplikacji internetowych w Ruby on Rails.
Istnieje potrzeba wyboru frameworka internetowego, który sprzyja szybkiemu rozwojowi, skalowalności i utrzymywalności.
Decyzja
- Użyć Ruby on Rails jako frameworka do tworzenia aplikacji internetowej.
Uzasadnienie
Ruby on Rails to dojrzały, stabilny i szeroko przyjęty framework internetowy, który udowodnił swoją skuteczność w budowaniu złożonych aplikacji internetowych.
Framework opiera się na wzorcu architektonicznym Model-View-Controller (MVC), który sprzyja rozdzieleniu odpowiedzialności oraz zwiększa możliwość ponownego użycia i utrzymywalność kodu.
Rails zapewnia wiele wbudowanych funkcji, takich jak ActiveRecord do interakcji z bazą danych i ActionMailer do zarządzania pocztą e-mail, które mogą oszczędzać czas tworzenia i upraszczać kod.
Framework ma dużą i aktywną społeczność, z wieloma modułami i wtyczkami do ponownego użycia, które zwiększają funkcjonalność i rozwiązują typowe problemy.
Ruby on Rails wspiera programowanie sterowane testami (TDD) i programowanie sterowane zachowaniem (BDD), co umożliwia programistom pisanie zautomatyzowanych testów swojego kodu, zapewniając, że działa on zgodnie z oczekiwaniami, oraz zmniejszając liczbę błędów i regresji.
Ruby to język wysokiego poziomu, który sprzyja produktywności programistów i czytelności kodu oraz działa jako potężny język „klej” do integracji z szeroką gamą usług i API firm trzecich.
Konsekwencje
Zespół musi zadbać, aby architektura i projekt aplikacji internetowej były zgodne z konwencjami i najlepszymi praktykami Rails, aby zmaksymalizować korzyści z frameworka.
Programiści muszą dobrze rozumieć język Ruby i framework Rails, choć dokumentacja i społeczność Rails mogą zapewnić wskazówki i wsparcie.
Programiści, którzy nie znają Ruby i Rails, mogą przejść krzywą uczenia się, choć korzyści z frameworka mogą uzasadniać inwestycję w szkolenia i wdrożenie.
Zespół musi monitorować wydajność i skalowalność aplikacji i może być zmuszony do dostrajania zapytań do bazy danych oraz optymalizacji buforowania, aby obsłużyć duże ilości danych i ruchu.