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 ಬಳಸಲು ನಾವು ತರಬೇತಿ ನೀಡುತ್ತೇವೆ.