บันทึกการตัดสินใจด้านสถาปัตยกรรมสำหรับเฟรมเวิร์ก Python Django
วันที่ตัดสินใจ: 2021-07-15
สถานะ: ยอมรับ
บริบท
องค์กรของเราวางแผนพัฒนาเว็บแอปพลิเคชันที่จัดการข้อมูลลูกค้า เราเลือก Python เป็นภาษาโปรแกรมและกำลังพิจารณา Django เป็นเฟรมเวิร์กเว็บสำหรับการพัฒนาแอปพลิเคชัน
การตัดสินใจ
เราตัดสินใจใช้เฟรมเวิร์กเว็บ Django สำหรับการพัฒนาเว็บแอปพลิเคชัน Django ให้ชุดเครื่องมือและฟีเจอร์ที่แข็งแกร่งสำหรับการสร้างเว็บแอปพลิเคชันอย่างรวดเร็วและมีประสิทธิภาพ
ปัจจัย
ปัจจัยบางอย่างที่มีอิทธิพลต่อการตัดสินใจของเรารวมถึง:
การแมปวัตถุกับเชิงสัมพันธ์ (ORM): Django มี ORM ในตัวที่ให้เราโต้ตอบกับฐานข้อมูลได้โดยไม่ต้องเขียนคำสั่ง SQL ทำให้พัฒนาแอปพลิเคชันและบำรุงรักษาในระยะยาวได้ง่ายขึ้น
เฟรมเวิร์ก MVC: Django ใช้สถาปัตยกรรม Model-View-Controller (MVC) ทำให้แยกตรรกะทางธุรกิจและชั้นการนำเสนอของแอปพลิเคชันได้ง่ายขึ้น
ความสามารถในการปรับขนาด: Django เป็นที่รู้จักในเรื่องความสามารถในการปรับขนาด ทำให้เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการพัฒนาแอปพลิเคชันขนาดใหญ่
ความปลอดภัย: Django มีฟีเจอร์ความปลอดภัยในตัว เช่น การป้องกันการโจมตีเว็บทั่วไป เช่น cross-site scripting (XSS) และ SQL injection
การสนับสนุนจากชุมชน: Django มีชุมชนที่ใหญ่และคึกคักที่ให้การสนับสนุนและมีส่วนร่วมในการพัฒนาเฟรมเวิร์ก
ทางเลือกที่พิจารณา
เราพิจารณาเฟรมเวิร์กเว็บอื่น เช่น Flask และ Pyramid อย่างไรก็ตาม เราพบว่า Django เป็นเฟรมเวิร์กที่สมบูรณ์และมั่นคงกว่าพร้อมชุดฟีเจอร์ที่แข็งแกร่ง
เรายังหารือเรื่องการพัฒนาแอปพลิเคชันโดยไม่ใช้เฟรมเวิร์กเว็บและใช้ไลบรารีเช่น SQLAlchemy และ Flask-RESTful อย่างไรก็ตาม เราพบว่า Django เสนอฟังก์ชันที่กว้างกว่า ทำให้เป็นตัวเลือกที่ดีกว่าสำหรับเว็บแอปพลิเคชันที่สมบูรณ์
ผลที่ตามมา
การนำ Django มาใช้จะนำไปสู่ผลที่ตามมาดังนี้:
พัฒนาและบำรุงรักษาแอปพลิเคชันได้ง่ายขึ้นเนื่องจากเครื่องมือและฟีเจอร์ในตัวของ Django
การแยกตรรกะทางธุรกิจและชั้นการนำเสนอ นำไปสู่โค้ดที่เป็นระเบียบและบำรุงรักษาง่ายกว่า
ความสามารถในการปรับขนาดและความแข็งแกร่งของแอปพลิเคชัน
ฟีเจอร์ความปลอดภัยในตัวที่ช่วยปกป้องแอปพลิเคชันจากการโจมตีเว็บทั่วไป
การเข้าถึงชุมชนที่ใหญ่และคึกคักเพื่อขอการสนับสนุน
เราเข้าใจว่า Django มีเส้นโค้งการเรียนรู้ที่ชันกว่าเฟรมเวิร์กอื่น แต่เราเห็นว่าคุ้มค่ากับการลงทุนเพื่อประโยชน์ระยะยาวที่ให้
บทสรุป
จากปัจจัยที่พิจารณา เราตัดสินใจใช้เฟรมเวิร์กเว็บ Django สำหรับการพัฒนาเว็บแอปพลิเคชัน เราเชื่อว่าฟีเจอร์ การสนับสนุนจากชุมชน และความสามารถในการปรับขนาดของ Django ทำให้เป็นตัวเลือกที่ดีที่สุดสำหรับการสร้างเว็บแอปพลิเคชันที่สมบูรณ์ เราจะฝึกอบรมนักพัฒนาของเราให้ใช้ Django เพื่อให้แน่ใจว่าใช้เฟรมเวิร์กอย่างมีประสิทธิภาพและมีประสิทธิผล