เทมเพลต Django Reel ก่อให้เกิดการถกเถียงในหมู่ผู้พัฒนาถึงการบำรุงรักษาโปรเจกต์และการเลือกใช้เครื่องมือ

ทีมชุมชน BigGo
เทมเพลต Django Reel ก่อให้เกิดการถกเถียงในหมู่ผู้พัฒนาถึงการบำรุงรักษาโปรเจกต์และการเลือกใช้เครื่องมือ

ชุมชน 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