Architecture Decision Record

Active theme: Light

← 決策記錄例子

Python Django 框架嘅架構決策記錄

決策日期:2021-07-15

狀態:已接納

背景

我哋組織計劃開發一個管理客戶數據嘅網頁應用程式。我哋已經揀選 Python 作為程式語言,並正考慮用 Django 作為開發應用程式嘅網頁框架。

決策

我哋決定用 Django 網頁框架開發網頁應用程式。Django 提供一套穩健嘅工具同功能,可以快速而高效咁建置網頁應用程式。

因素

影響我哋決策嘅部分因素包括:

  1. 物件關聯對應(ORM):Django 內置 ORM,令我哋無須撰寫 SQL 查詢就可以同資料庫互動。咁樣令應用程式更易開發,長遠亦更易維護。

  2. MVC 框架:Django 遵循模型—視圖—控制器(MVC)架構,令應用程式嘅業務邏輯層同展示層更易分開。

  3. 可擴展性:Django 以可擴展能力見稱,係開發大型應用程式嘅絕佳選擇。

  4. 保安:Django 內置保安功能,例如防範跨站腳本(XSS)同 SQL 注入等常見網頁攻擊。

  5. 社群支援:Django 擁有龐大而活躍嘅社群,提供支援並為框架嘅開發作出貢獻。

考慮過嘅替代方案

我哋考慮過 Flask 同 Pyramid 等其他網頁框架。不過,我哋發現 Django 係更成熟、更穩固嘅框架,擁有穩健嘅功能集。

我哋亦討論過唔用網頁框架開發應用程式,改用 SQLAlchemy 同 Flask-RESTful 等程式庫。不過,我哋發現 Django 提供更廣泛嘅功能,係完整網頁應用程式嘅較佳選擇。

後果

採用 Django 會帶來以下後果:

  1. 由於 Django 內置嘅工具同功能,應用程式更易開發同維護。

  2. 業務邏輯同展示層分離,令程式碼更有條理、更易維護。

  3. 應用程式具備可擴展性同穩健性。

  4. 內置保安功能有助保護應用程式免受常見網頁攻擊。

  5. 可以接觸到龐大而活躍嘅社群尋求支援。

我哋明白 Django 嘅學習曲線比其他框架陡,但我哋認為,為佢帶來嘅長遠好處而作出投資係值得嘅。

結論

根據所考慮嘅因素,我哋決定用 Django 網頁框架開發網頁應用程式。我哋相信 Django 嘅功能、社群支援同可擴展能力,令佢成為建置完整網頁應用程式嘅最佳選擇。我哋會培訓開發人員使用 Django,確保有效而高效咁使用呢個框架。