Architecture Decision Record

Active theme: Light

← முடிவு பதிவு எடுத்துக்காட்டுகள்

Python Django கட்டமைப்புக்கான கட்டமைப்பு முடிவு பதிவு

முடிவுத் தேதி: 2021-07-15

நிலை: ஏற்கப்பட்டது

சூழல்

எங்கள் நிறுவனம் வாடிக்கையாளர் தரவை நிர்வகிக்கும் வலைப் பயன்பாட்டை உருவாக்கத் திட்டமிட்டுள்ளது. நிரலாக்க மொழியாக Python ஐத் தேர்ந்தெடுத்துள்ளோம், பயன்பாட்டு மேம்பாட்டிற்கான வலைக் கட்டமைப்பாக Django வைப் பரிசீலிக்கிறோம்.

முடிவு

வலைப் பயன்பாட்டின் மேம்பாட்டிற்கு Django வலைக் கட்டமைப்பைப் பயன்படுத்த முடிவு செய்துள்ளோம். வலைப் பயன்பாடுகளை விரைவாகவும் திறமையாகவும் உருவாக்க Django வலுவான கருவிகள் மற்றும் அம்சங்களின் தொகுப்பை வழங்குகிறது.

காரணிகள்

எங்கள் முடிவை பாதித்த சில காரணிகள்:

  1. பொருள்-உறவு வரைபடம் (ORM): SQL வினவல்களை எழுதாமல் தரவுத்தளத்துடன் தொடர்புகொள்ள அனுமதிக்கும் உள்ளமைந்த ORM Django வில் உள்ளது. இது பயன்பாட்டை உருவாக்குவதையும் நீண்டகாலத்தில் பராமரிப்பதையும் எளிதாக்குகிறது.

  2. MVC கட்டமைப்பு: Django Model-View-Controller (MVC) கட்டமைப்பைப் பின்பற்றுகிறது, பயன்பாட்டின் வணிகத் தர்க்கத்தையும் விளக்கக்காட்சி அடுக்குகளையும் பிரிப்பதை எளிதாக்குகிறது.

  3. அளவிடுதிறன்: Django அதன் அளவிடுதிறன் திறன்களுக்காக அறியப்படுகிறது, இது பெரிய அளவிலான பயன்பாடுகளை உருவாக்க சிறந்த தேர்வாக்குகிறது.

  4. பாதுகாப்பு: cross-site scripting (XSS) மற்றும் SQL injection போன்ற பொதுவான வலைத் தாக்குதல்களுக்கு எதிரான பாதுகாப்பு உள்ளிட்ட உள்ளமைந்த பாதுகாப்பு அம்சங்கள் Django வில் உள்ளன.

  5. சமூக ஆதரவு: ஆதரவை வழங்கும், கட்டமைப்பின் மேம்பாட்டிற்குப் பங்களிக்கும் பெரிய, செயலில் உள்ள சமூகம் Django வுக்கு உள்ளது.

பரிசீலிக்கப்பட்ட மாற்றுகள்

Flask மற்றும் Pyramid போன்ற பிற வலைக் கட்டமைப்புகளைப் பரிசீலித்தோம். இருப்பினும், வலுவான அம்சத் தொகுப்புடன் Django மிகவும் முதிர்ந்த, நன்கு நிறுவப்பட்ட கட்டமைப்பு என்று கண்டறிந்தோம்.

வலைக் கட்டமைப்பு இல்லாமல் பயன்பாட்டை உருவாக்குவது, SQLAlchemy மற்றும் Flask-RESTful போன்ற நூலகங்களைப் பயன்படுத்துவது பற்றியும் விவாதித்தோம். இருப்பினும், Django பரந்த செயல்பாட்டை வழங்குகிறது, முழுமையான வலைப் பயன்பாட்டிற்கு அதை சிறந்த தேர்வாக்குகிறது என்று கண்டறிந்தோம்.

விளைவுகள்

Django வை ஏற்பது பின்வரும் விளைவுகளை ஏற்படுத்தும்:

  1. Django வின் உள்ளமைந்த கருவிகள் மற்றும் அம்சங்கள் காரணமாகப் பயன்பாட்டை உருவாக்குவதும் பராமரிப்பதும் எளிது.

  2. வணிகத் தர்க்கம் மற்றும் விளக்கக்காட்சி அடுக்கைப் பிரிப்பது, மிகவும் ஒழுங்கமைக்கப்பட்ட, பராமரிக்க எளிதான குறியீட்டுக்கு வழிவகுக்கிறது.

  3. பயன்பாட்டின் அளவிடுதிறனும் வலிமையும்.

  4. பொதுவான வலைத் தாக்குதல்களிலிருந்து பயன்பாட்டைப் பாதுகாக்க உதவும் உள்ளமைந்த பாதுகாப்பு அம்சங்கள்.

  5. ஆதரவுக்காகப் பெரிய, செயலில் உள்ள சமூகத்தை அணுகும் வாய்ப்பு.

பிற கட்டமைப்புகளை விட Django வுக்கு செங்குத்தான கற்றல் வளைவு உள்ளது என்பதை நாங்கள் புரிந்துகொள்கிறோம், ஆனால் அது வழங்கும் நீண்டகால நன்மைகளுக்காக அது முதலீட்டுக்கு மதிப்புள்ளது என்று காண்கிறோம்.

முடிவுரை

பரிசீலிக்கப்பட்ட காரணிகளின் அடிப்படையில், வலைப் பயன்பாட்டின் மேம்பாட்டிற்கு Django வலைக் கட்டமைப்பைப் பயன்படுத்த முடிவு செய்துள்ளோம். Django வின் அம்சங்கள், சமூக ஆதரவு, அளவிடுதிறன் திறன்கள் ஆகியவை முழுமையான வலைப் பயன்பாட்டை உருவாக்க அதை சிறந்த தேர்வாக்குகின்றன என்று நம்புகிறோம். கட்டமைப்பு திறம்படவும் திறமையாகவும் பயன்படுத்தப்படுவதை உறுதிசெய்ய எங்கள் உருவாக்குநர்களுக்கு Django பயன்படுத்தப் பயிற்சி அளிப்போம்.