Architecture Decision Record

Active theme: Light

← Döntési feljegyzés példák

Architekturális döntési feljegyzés a Python Django keretrendszerhez

Döntés dátuma: 2021-07-15

Állapot: Elfogadott

Háttér

Szervezetünk ügyféladatokat kezelő webalkalmazás fejlesztését tervezi. A Pythont választottuk programozási nyelvnek, és a Djangót fontolgatjuk az alkalmazás fejlesztéséhez használt webes keretrendszerként.

Döntés

Úgy döntöttünk, hogy a Django webes keretrendszert használjuk a webalkalmazás fejlesztéséhez. A Django robusztus eszköz- és funkciókészletet nyújt webalkalmazások gyors és hatékony építéséhez.

Tényezők

A döntésünket befolyásoló tényezők közül néhány:

  1. Objektum-relációs leképezés (ORM): A Djangónak beépített ORM-je van, amely lehetővé teszi, hogy SQL-lekérdezések írása nélkül kommunikáljunk az adatbázissal. Ez megkönnyíti az alkalmazás fejlesztését és hosszú távú karbantartását.

  2. MVC keretrendszer: A Django Model-View-Controller (MVC) architektúrát követ, ami megkönnyíti az alkalmazás üzleti logikai és megjelenítési rétegének szétválasztását.

  3. Skálázhatóság: A Django skálázhatósági képességeiről ismert, ami kiváló választássá teszi nagyméretű alkalmazások fejlesztéséhez.

  4. Biztonság: A Djangónak beépített biztonsági funkciói vannak, mint a gyakori webes támadások, például a cross-site scripting (XSS) és az SQL-injekció elleni védelem.

  5. Közösségi támogatás: A Djangónak nagy és aktív közössége van, amely támogatást nyújt, és hozzájárul a keretrendszer fejlesztéséhez.

Megfontolt alternatívák

Megfontoltunk más webes keretrendszereket, mint a Flask és a Pyramid. Azt találtuk azonban, hogy a Django érettebb és jobban megalapozott keretrendszer, robusztus funkciókészlettel.

Megbeszéltük az alkalmazás webes keretrendszer nélküli fejlesztését is, olyan könyvtárakkal, mint az SQLAlchemy és a Flask-RESTful. Azt találtuk azonban, hogy a Django szélesebb funkcionalitást kínál, ami jobb választássá teszi egy teljes webalkalmazáshoz.

Következmények

A Django bevezetése a következő következményekkel jár:

  1. Az alkalmazás könnyebb fejleszthetősége és karbantarthatósága a Django beépített eszközeinek és funkcióinak köszönhetően.

  2. Az üzleti logika és a megjelenítési réteg szétválasztása, ami rendezettebb és könnyebben karbantartható kódhoz vezet.

  3. Az alkalmazás skálázhatósága és robusztussága.

  4. Beépített biztonsági funkciók, amelyek segítenek megvédeni az alkalmazást a gyakori webes támadásoktól.

  5. Hozzáférés egy nagy és aktív közösséghez támogatásért.

Megértjük, hogy a Djangónak meredekebb tanulási görbéje van, mint más keretrendszereknek, de úgy találjuk, hogy megéri a befektetést az általa nyújtott hosszú távú előnyök miatt.

Összegzés

A megfontolt tényezők alapján úgy döntöttünk, hogy a Django webes keretrendszert használjuk a webalkalmazás fejlesztéséhez. Úgy véljük, hogy a Django funkciói, közösségi támogatása és skálázhatósági képességei a legjobb választássá teszik egy teljes webalkalmazás építéséhez. Képezni fogjuk fejlesztőinket a Django használatára, hogy biztosítsuk a keretrendszer hatékony és eredményes használatát.