Architecture Decision Record

Active theme: Light

← Przykłady rejestrów decyzji

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.

Źródło: ta strona została wygenerowana przez ChatGPT, a następnie zredagowana pod kątem jasności i formatu.