Python Django Çerçevesi için Mimari Karar Kaydı
Karar Tarihi: 2021-07-15
Durum: Kabul Edildi
Bağlam
Kuruluşumuz, müşteri verilerini yöneten bir web uygulaması geliştirmeyi planlamaktadır. Programlama dili olarak Python'u seçtik ve uygulamanın geliştirilmesi için web çerçevesi olarak Django'yu değerlendiriyoruz.
Karar
Web uygulamasının geliştirilmesi için Django web çerçevesini kullanmaya karar verdik. Django, web uygulamalarını hızlı ve verimli biçimde geliştirmek için sağlam bir araç ve özellik kümesi sunar.
Etkenler
Kararımızı etkileyen etkenlerden bazıları şunlardır:
Nesne-İlişkisel Eşleme (ORM): Django'nun, SQL sorguları yazmadan veritabanıyla etkileşim kurmamızı sağlayan yerleşik bir ORM'si vardır. Bu, uygulamayı geliştirmeyi ve uzun vadede sürdürmeyi kolaylaştırır.
MVC çerçevesi: Django, Model-Görünüm-Denetleyici (MVC) mimarisini izler; bu da uygulamanın iş mantığı ile sunum katmanlarını ayırmayı kolaylaştırır.
Ölçeklenebilirlik: Django, ölçeklenebilirlik yetenekleriyle bilinir; bu da onu büyük ölçekli uygulamalar geliştirmek için mükemmel bir seçim yapar.
Güvenlik: Django, siteler arası betik çalıştırma (XSS) ve SQL enjeksiyonu gibi yaygın web saldırılarına karşı koruma gibi yerleşik güvenlik özelliklerine sahiptir.
Topluluk desteği: Django, destek sağlayan ve çerçevenin gelişimine katkıda bulunan büyük ve aktif bir topluluğa sahiptir.
Değerlendirilen Alternatifler
Flask ve Pyramid gibi diğer web çerçevelerini değerlendirdik. Ancak Django'nun daha olgun, köklü ve sağlam bir özellik kümesine sahip bir çerçeve olduğunu gördük.
Ayrıca uygulamayı bir web çerçevesi olmadan, SQLAlchemy ve Flask-RESTful gibi kütüphaneler kullanarak geliştirmeyi de tartıştık. Ancak Django'nun daha geniş işlevsellik sunduğunu ve bunun tam bir web uygulaması için daha iyi bir seçim olduğunu gördük.
Sonuçlar
Django'nun benimsenmesi aşağıdaki sonuçlara yol açacaktır:
Django'nun yerleşik araçları ve özellikleri sayesinde uygulamayı geliştirmek ve sürdürmek daha kolay olacaktır.
İş mantığı ile sunum katmanının ayrılması, daha düzenli ve bakımı daha kolay bir koda yol açacaktır.
Uygulamanın ölçeklenebilirliği ve sağlamlığı.
Uygulamayı yaygın web saldırılarına karşı korumaya yardımcı olan yerleşik güvenlik özellikleri.
Destek için büyük ve aktif bir topluluğa erişim.
Django'nun diğer çerçevelere göre daha dik bir öğrenme eğrisine sahip olduğunu biliyoruz, ancak sağladığı uzun vadeli faydalar için buna yatırım yapmaya değer olduğunu düşünüyoruz.
Sonuç
Değerlendirilen etkenlere dayanarak, web uygulamasının geliştirilmesi için Django web çerçevesini kullanmaya karar verdik. Django'nun özelliklerinin, topluluk desteğinin ve ölçeklenebilirlik yeteneklerinin, onu tam bir web uygulaması geliştirmek için en iyi seçim yaptığına inanıyoruz. Çerçevenin etkili ve verimli biçimde kullanılmasını sağlamak için geliştiricilerimizi Django konusunda eğiteceğiz.