Architecture Decision Record

Active theme: Light

← Karar kaydı örnekleri

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:

  1. 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.

  2. 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.

  3. Ö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.

  4. 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.

  5. 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:

  1. Django'nun yerleşik araçları ve özellikleri sayesinde uygulamayı geliştirmek ve sürdürmek daha kolay olacaktır.

  2. İş mantığı ile sunum katmanının ayrılması, daha düzenli ve bakımı daha kolay bir koda yol açacaktır.

  3. Uygulamanın ölçeklenebilirliği ve sağlamlığı.

  4. Uygulamayı yaygın web saldırılarına karşı korumaya yardımcı olan yerleşik güvenlik özellikleri.

  5. 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.