ชุมชน Django กำลังมีการพูดคุยอย่างคึกคักเกี่ยวกับเทมเพลตโปรเจกต์และขั้นตอนการทำงานในการพัฒนาหลังจากการเปิดตัว Django Reel ซึ่งเป็นเทมเพลตที่ครอบคลุมออกแบบมาเพื่อปรับปรุงกระบวนการพัฒนาแอปพลิเคชัน Django ให้มีประสิทธิภาพมากขึ้น แม้เทมเพลตจะนำเสนอคุณสมบัติพื้นฐานมากมาย แต่การสนทนาในชุมชนได้เผยให้เห็นความกังวลในระดับลึกเกี่ยวกับการบำรุงรักษาโปรเจกต์ในระยะยาวและการตัดสินใจเลือกใช้เครื่องมือซึ่งส่งผลต่อการใช้งาน Django ในโลกจริง
ปัญหาการอัปเดตในโปรเจกต์ Django
หนึ่งในความกังวลหลักที่ผู้พัฒนาระบุไว้คือวิธีการทำให้โปรเจกต์ทันสมัยอยู่เสมอเมื่อใช้เทมเพลตอย่าง Django Reel นี่ไม่ใช่แค่เรื่องของการแพตช์ความปลอดภัยเท่านั้น แต่ยังเกี่ยวกับการรักษาความสามารถที่เท่าเทียมกันกับการพัฒนาของเทมเพลตที่วิวัฒนาการไป พร้อมกับรักษารหัสที่กำหนดเองสำหรับโปรเจกต์ไว้
นี่เป็นสิ่งที่ฉันกำลังต่อสู้อยู่ - อะไรคือวิธีที่ดีที่สุดในการส่งมอบเทมเพลตเช่นนี้ มันควรจะเป็นเครื่องมือสร้างเทมเพลตเช่นนี้หรือไม่? มันจะดีที่สุดหากคัดลอก repository พื้นฐานที่มีตัวเลือกทั้งหมดตั้งไว้แล้ว? หรือเราควรจะ fork repository พื้นฐานนั้นและทำการ rebase เมื่อพื้นฐานมีการอัปเดต?
ผู้สร้างเทมเพลตได้กล่าวถึงความกังวลนี้โดยอธิบายการใช้งาน Copier ของ Django Reel แทนที่ Cookiecutter แบบดั้งเดิม ซึ่งแตกต่างจากเครื่องมือสร้างแบบครั้งเดียว Copier ช่วยให้ผู้พัฒนาสามารถรัน copier update
เพื่อรวมคุณสมบัติใหม่จากเทมเพลตเข้าไปในโปรเจกต์ที่มีอยู่แล้ว วิธีการนี้พยายามจะแก้ปัญหาที่สร้างความยากลำบากให้กับผู้พัฒนา Django มานานหลายปี นั่นคือความยากในการทำให้โปรเจกต์ที่ใช้เทมเพลตคงความสอดคล้องกับการพัฒนาของเทมเพลตโดยไม่ต้องคัดลอกและวางด้วยตนเอง
การเลือกใช้เครื่องมือและการจัดการการพึ่งพา
การสนทนาในชุมชนยังได้เน้นย้ำถึงความท้าทายในการจัดการการพึ่งพาในโปรเจกต์ Django ที่ซับซ้อน ผู้พัฒนาได้แสดงความกังวลเกี่ยวกับการทำให้การพึ่งพาของเทมเพลตทันสมัยอยู่เสมอ โดยสังเกตว่าแม้แต่เครื่องมือที่จำเป็นอย่าง Django Debug Toolbar อาจล้าหลัง behind เวอร์ชันปัจจุบันในการกำหนดค่าเทมเพลต
การสนทนาได้ขยายไปถึงทางเลือกเครื่องมืออื่นๆ โดยมีผู้พัฒนารายหนึ่งกล่าวถึงความชอบส่วนตัวในการใช้ ty (ตัวตรวจสอบประเภทของ Astral) แทนที่ตัวเลือกอื่น สิ่งนี้สะท้อนให้เห็นแนวโน้มที่กว้างขึ้นในระบบนิเวศของ Django ที่ผู้พัฒนากำลังกังวลมากขึ้นเกี่ยวกับความปลอดภัยของประเภทและคุณภาพของโค้ดตั้งแต่เริ่มต้นโปรเจกต์ การรวม Temporal เป็นทางเลือกแทน Celery สำหรับการประมวลผลงานเบื้องหลังก็ทำให้เกิดความสนใจเช่นกัน แม้ว่าผู้สร้างเทมเพลตจะยอมรับว่านี่เป็นการทดลองมากกว่าที่จะผ่านการทดสอบในสถานการณ์จริงมาแล้ว
ความชอบเครื่องมือของชุมชนที่ถูกกล่าวถึง:
- Copier: ระบบเทมเพลตที่มีความสามารถในการอัปเดต (ใช้โดย Django Reel)
- Cookiecutter: เครื่องมือสร้างเทมเพลตแบบดั้งเดิมที่ใช้ครั้งเดียว
- Cruft: เครื่องมือทางเลือกสำหรับการอัปเดตเทมเพลต
- ty: ตัวตรวจสอบประเภทของ Astral (ที่ชุมชนร้องขอ)
- Temporal: ทางเลือกอื่นของ Celery สำหรับงานเบื้องหลัง
- Strawberry GraphQL: การใช้งาน GraphQL ที่ชุมชนชื่นชอบ
การเตรียมแอปพลิเคชัน Django สำหรับอนาคต
เมื่อมองไปยังอนาคต ผู้พัฒนาได้สอบถามเกี่ยวกับการสนับสนุนของเทมเพลตสำหรับเวอร์ชัน Django และ Python ที่จะมาถึง ชุมชนต้องการความมั่นใจว่าเทมเพลตจะวิวัฒนาการไปพร้อมกับระบบนิเวศ โดยสนับสนุนการเปิดตัว Django ใหม่ได้ทันที ในขณะที่ยังคงความเข้ากันได้กับเวอร์ชันก่อนหน้า ผู้ดูแลเทมเพลตได้ให้คำมั่นว่าจะสนับสนุนอย่างน้อยสองเวอร์ชันก่อนหน้าของทั้ง Python และ Django โดยตระหนักถึงความเป็นจริงของการรอบการอัปเกรดในองค์กร
มุมมองที่มองไปข้างหน้านี้มีความสำคัญอย่างยิ่งสำหรับผู้พัฒนาที่เลือกเทคโนโลยีพื้นฐาน การตัดสินใจสร้างบนเทมเพลตเฉพาะเจาะจงมีผลกระทบในระยะยาวต่อภาระการบำรุงรักษา การอัปเดตความปลอดภัย และความพร้อมใช้งานของคุณสมบัติต่างๆ ผู้พัฒนากำลังชั่งน้ำหนักอย่างชัดเจนไม่เพียงแค่ว่าเทมเพลตนำเสนออะไรในวันนี้ แต่รวมถึงว่ามันจะตอบสนองความต้องการของพวกเขาในอีกหลายปีข้างหน้าอย่างไร
ภาพรวมฟีเจอร์หลักของ Django Reel:
หมวดหมู่ฟีเจอร์ | คอมโพเนนต์หลัก | สถานะ |
---|---|---|
API และ Backend | Django REST Framework, Swagger/OpenAPI, GraphQL | รวมอยู่ด้วย |
การยืนยันตัวตน | AllAuth (โซเชียลมีเดีย), JWT, สิทธิ์การเข้าถึงตามบทบาท | รวมอยู่ด้วย |
งานเบื้องหลัง | Celery, TensorFlow, Django Channels | รวมอยู่ด้วย |
การตรวจสอบ | Sentry, OpenTelemetry, Flower | รวมอยู่ด้วย |
การติดตั้งใช้งาน | Docker, Kubernetes, AWS, Azure, Bare Metal | มีหลายตัวเลือก |
ความปลอดภัย | การป้องกัน CSRF, การจำกัดอัตรา, ส่วนหัวความปลอดภัย | รวมอยู่ด้วยโดยค่าเริ่มต้น |
วิวัฒนาการของขั้นตอนการทำงานในการพัฒนา Django
เหนือกว่าความกังวลทางเทคนิคเฉพาะ การสนทนาได้เผยให้เห็นถึงแนวคิดที่กำลังพัฒนาขึ้นในการพัฒนา Django แนวทางดั้งเดิมของการเริ่มต้นจากศูนย์หรือการใช้เทมเพลตขั้นต่ำกำลังถูกแทนที่ด้วยเทมเพลตพื้นฐานที่ซับซ้อนมากขึ้นซึ่งรวมเครื่องมือที่ครอบคลุมสำหรับการทดสอบ การปรับใช้ และการตรวจสอบ อย่างไรก็ตาม ความสะดวกสบายนี้มาพร้อมกับความซับซ้อน—ผู้พัฒนาต้องประเมินไม่เพียงแค่เฟรมเวิร์กเองเท่านั้น แต่ยังรวมถึงระบบนิเวศของเครื่องมือและข้อตกลงที่มาพร้อมกับเทมเพลตสมัยใหม่
การมีส่วนร่วมของชุมชนกับ Django Reel สะท้อนให้เห็นถึงความเข้าใจที่โตเต็มที่แล้วว่าการตัดสินใจตั้งค่าโปรเจกต์เริ่มต้นมีผลที่ยั่งยืน ตั้งแต่ความชอบในการตรวจสอบประเภทไปจนถึงทางเลือกในการประมวลผลงานเบื้องหลัง ผู้พัฒนากำลังคิดอย่างมีวิจารณญาณเกี่ยวกับว่าการตัดสินใจพื้นฐานเหล่านี้จะส่งผลกระทบต่อทีมและโปรเจกต์ของพวกเขาอย่างไรในช่วงเวลาที่ผ่านไป
บทสนทนาที่ต่อเนื่องระหว่างผู้สร้างเทมเพลตและผู้ใช้ชี้ให้เห็นถึงระบบนิเวศที่ดีซึ่งความกังวลในทางปฏิบัติเป็นตัวขับเคลื่อนการปรับปรุงเครื่องมือ ขณะที่ Django ยังคงวิวัฒนาการต่อไป เทมเพลตและขั้นตอนการทำงานที่สนับสนุนมันก็จะพัฒนาตามไปด้วย โดยข้อเสนอแนะจากชุมชนมีบทบาทสำคัญในการกำหนดทิศทางการพัฒนานี้
อ้างอิง: Django Reel