Architecture Decision Record

Active theme: Light

← דוגמאות לרשומות החלטה

רשומת החלטה ארכיטקטונית למסגרת Python Django

תאריך ההחלטה: 2021-07-15

מצב: התקבלה

הקשר

הארגון שלנו מתכנן לפתח יישום ווב שמנהל נתוני לקוחות. בחרנו ב-Python כשפת התכנות ואנו שוקלים את Django כמסגרת הווב לפיתוח היישום.

החלטה

החלטנו להשתמש במסגרת הווב Django לפיתוח יישום הווב. Django מספקת קבוצה חזקה של כלים ויכולות לבניית יישומי ווב במהירות וביעילות.

גורמים

כמה מהגורמים שהשפיעו על ההחלטה שלנו כוללים:

  1. מיפוי אובייקטים-יחסים (ORM): ל-Django יש ORM מובנה שמאפשר לנו לתקשר עם מסד הנתונים בלי לכתוב שאילתות SQL. זה מקל על פיתוח היישום ועל תחזוקתו לטווח ארוך.

  2. מסגרת MVC: Django פועלת לפי ארכיטקטורת Model-View-Controller‏ (MVC), מה שמקל על הפרדת שכבות ההיגיון העסקי וההצגה של היישום.

  3. יכולת הרחבה: Django ידועה ביכולות ההרחבה שלה, מה שהופך אותה לבחירה מצוינת לפיתוח יישומים בקנה מידה גדול.

  4. אבטחה: ל-Django יש יכולות אבטחה מובנות, כמו הגנה מפני מתקפות ווב נפוצות כמו cross-site scripting‏ (XSS) והזרקת SQL.

  5. תמיכת קהילה: ל-Django יש קהילה גדולה ופעילה שמספקת תמיכה ותורמת לפיתוח המסגרת.

חלופות שנשקלו

שקלנו מסגרות ווב אחרות כמו Flask ו-Pyramid. עם זאת, מצאנו ש-Django היא מסגרת בשלה ומבוססת יותר עם קבוצה חזקה של יכולות.

דנו גם בפיתוח היישום בלי מסגרת ווב ובשימוש בספריות כמו SQLAlchemy ו-Flask-RESTful. עם זאת, מצאנו ש-Django מציעה פונקציונליות רחבה יותר, מה שהופך אותה לבחירה טובה יותר ליישום ווב שלם.

השלכות

אימוץ Django יוביל להשלכות הבאות:

  1. קל יותר לפתח ולתחזק את היישום בזכות הכלים והיכולות המובנים של Django.

  2. הפרדה בין היגיון עסקי לשכבת ההצגה, מה שמוביל לקוד מאורגן יותר וקל יותר לתחזוקה.

  3. יכולת הרחבה וחוסן של היישום.

  4. יכולות אבטחה מובנות שעוזרות להגן על היישום מפני מתקפות ווב נפוצות.

  5. גישה לקהילה גדולה ופעילה לתמיכה.

אנו מבינים של-Django עקומת למידה תלולה יותר ממסגרות אחרות, אבל אנו מוצאים שהיא שווה את ההשקעה בשל היתרונות לטווח ארוך שהיא מספקת.

סיכום

בהתבסס על הגורמים ששקלנו, החלטנו להשתמש במסגרת הווב Django לפיתוח יישום הווב. אנו מאמינים שהיכולות של Django, תמיכת הקהילה ויכולות ההרחבה שלה הופכות אותה לבחירה הטובה ביותר לבניית יישום ווב שלם. נדריך את המפתחים שלנו להשתמש ב-Django כדי להבטיח שהמסגרת תשמש ביעילות ובאפקטיביות.