Mimari Karar Kaydı: Ruby on Rails çerçevesi
Bağlam
Kuruluş, karmaşık iş mantığına ve üçüncü taraf hizmetlerle birden fazla entegrasyona sahip bir web uygulaması geliştirmektedir.
Ekip, Ruby on Rails ile web uygulamaları geliştirme konusunda deneyime sahiptir.
Hızlı geliştirmeyi, ölçeklenebilirliği ve sürdürülebilirliği destekleyen bir web çerçevesi seçilmesi gerekmektedir.
Karar
- Web uygulamasını geliştirmek için çerçeve olarak Ruby on Rails kullanılacaktır.
Gerekçe
Ruby on Rails, karmaşık web uygulamaları geliştirmedeki etkinliğini kanıtlamış; olgun, kararlı ve yaygın olarak benimsenmiş bir web çerçevesidir.
Çerçeve, ilgilerin ayrılmasını destekleyen ve kodun yeniden kullanılabilirliğini ve sürdürülebilirliğini artıran Model-Görünüm-Denetleyici (MVC) mimari desenini izler.
Rails, veritabanı etkileşimleri için ActiveRecord ve e-posta yönetimi için ActionMailer gibi birçok yerleşik özellik sağlar; bu da geliştirme süresinden tasarruf sağlayabilir ve kodu basitleştirebilir.
Çerçevenin büyük ve aktif bir topluluğu vardır; işlevselliği artırmak ve yaygın sorunları çözmek için kullanılabilecek birçok yeniden kullanılabilir modül ve eklenti bulunur.
Ruby on Rails, Test Güdümlü Geliştirmeyi (TDD) ve Davranış Güdümlü Geliştirmeyi (BDD) destekler; bu da geliştiricilerin kodları için otomatik testler yazmasını, kodun beklendiği gibi çalıştığından emin olmasını ve hataları ile gerilemeleri azaltmasını sağlar.
Ruby, geliştirici verimliliğini ve kod okunabilirliğini destekleyen üst düzey bir dildir ve çok çeşitli üçüncü taraf hizmetler ve API'lerle bütünleşmek için güçlü bir yapıştırıcı dil görevi görür.
Sonuçlar
Ekibin, çerçevenin faydalarını en üst düzeye çıkarmak için web uygulamasının mimarisinin ve tasarımının Rails geleneklerine ve en iyi uygulamalarına uygun olmasını sağlaması gerekir.
Geliştiricilerin Ruby diline ve Rails çerçevesine iyi hâkim olması gerekir; ancak Rails belgeleri ve topluluğu rehberlik ve destek sağlayabilir.
Ruby ve Rails'e yeni olan geliştiriciler için bir öğrenme eğrisi olabilir; ancak çerçevenin faydaları eğitim ve işe alıştırma yatırımını haklı çıkarabilir.
Ekibin uygulamanın performansını ve ölçeklenebilirliğini izlemesi gerekir; büyük miktarda veri ve trafiği işlemek için veritabanı sorgularını ince ayarlaması ve önbelleğe almayı optimize etmesi gerekebilir.