Architecture Decision Record

Active theme: Light

← Contoh rekod keputusan

Rekod Keputusan Seni Bina untuk Rangka Kerja Python Django

Tarikh Keputusan: 2021-07-15

Status: Diterima

Konteks

Organisasi kami merancang untuk membangunkan aplikasi web yang mengurus data pelanggan. Kami telah memilih Python sebagai bahasa pengaturcaraan dan sedang mempertimbangkan Django sebagai rangka kerja web untuk pembangunan aplikasi.

Keputusan

Kami telah memutuskan untuk menggunakan rangka kerja web Django untuk pembangunan aplikasi web. Django menyediakan set alat dan ciri yang mantap untuk membina aplikasi web dengan pantas dan cekap.

Faktor

Beberapa faktor yang mempengaruhi keputusan kami termasuk:

  1. Pemetaan Objek-Hubungan (ORM): Django mempunyai ORM terbina dalam yang membolehkan kami berinteraksi dengan pangkalan data tanpa menulis pertanyaan SQL. Ini memudahkan pembangunan aplikasi dan penyelenggaraannya dalam jangka panjang.

  2. Rangka kerja MVC: Django mengikut seni bina Model-View-Controller (MVC), memudahkan pengasingan lapisan logik perniagaan dan pembentangan aplikasi.

  3. Kebolehskalaan: Django terkenal dengan keupayaan kebolehskalaannya, menjadikannya pilihan yang sangat baik untuk membangunkan aplikasi berskala besar.

  4. Keselamatan: Django mempunyai ciri keselamatan terbina dalam, seperti perlindungan terhadap serangan web biasa seperti cross-site scripting (XSS) dan suntikan SQL.

  5. Sokongan Komuniti: Django mempunyai komuniti besar dan aktif yang menyediakan sokongan dan menyumbang kepada pembangunan rangka kerja.

Alternatif yang Dipertimbangkan

Kami mempertimbangkan rangka kerja web lain seperti Flask dan Pyramid. Namun, kami mendapati Django ialah rangka kerja yang lebih matang dan mantap dengan set ciri yang kukuh.

Kami juga membincangkan pembangunan aplikasi tanpa rangka kerja web dan menggunakan pustaka seperti SQLAlchemy dan Flask-RESTful. Namun, kami mendapati Django menawarkan fungsi yang lebih luas, menjadikannya pilihan yang lebih baik untuk aplikasi web yang lengkap.

Akibat

Penggunaan Django akan membawa akibat berikut:

  1. Lebih mudah untuk membangun dan menyelenggara aplikasi disebabkan alat dan ciri terbina dalam Django.

  2. Pengasingan logik perniagaan dan lapisan pembentangan, membawa kepada kod yang lebih teratur dan lebih mudah diselenggara.

  3. Kebolehskalaan dan ketahanan aplikasi.

  4. Ciri keselamatan terbina dalam yang membantu melindungi aplikasi daripada serangan web biasa.

  5. Akses kepada komuniti besar dan aktif untuk sokongan.

Kami memahami bahawa Django mempunyai keluk pembelajaran yang lebih curam daripada rangka kerja lain, tetapi kami mendapati ia berbaloi dengan pelaburan untuk faedah jangka panjang yang disediakannya.

Kesimpulan

Berdasarkan faktor yang dipertimbangkan, kami telah memutuskan untuk menggunakan rangka kerja web Django untuk pembangunan aplikasi web. Kami percaya bahawa ciri Django, sokongan komuniti dan keupayaan kebolehskalaan menjadikannya pilihan terbaik untuk membina aplikasi web yang lengkap. Kami akan melatih pembangun kami menggunakan Django untuk memastikan rangka kerja digunakan dengan berkesan dan cekap.