สคริปต์ขนาดเล็กจำนวนมากหนึ่งที่เก็บหรือหลาย ๆ


15

เพื่อนร่วมงานและตัวฉันเองพบเจอปัญหาที่เรามีความคิดเห็นหลายอย่าง

ขณะนี้เรามีพื้นที่เก็บข้อมูล git ที่เราเก็บ cronjobs ของเราทั้งหมดมีประมาณ 20 crons และมันไม่เกี่ยวข้องจริงๆยกเว้นว่าพวกมันเป็นสคริปต์ python ขนาดเล็กและจำเป็นสำหรับกิจกรรมบางอย่าง เรากำลังใช้fabric.pyไฟล์เพื่อปรับใช้และrequirements.txtไฟล์เพื่อจัดการข้อกำหนดสำหรับสคริปต์ทั้งหมด

ปัญหาของเราคือโดยพื้นฐานแล้วเราจะเก็บสคริปต์เหล่านี้ทั้งหมดไว้ในที่เก็บคอมไพล์เดียวหรือเราควรแยกพวกมันออกเป็นที่เก็บของพวกเขาเองเหรอ? โดยทำให้พวกมันอยู่ในที่เก็บเดียวทำให้ง่ายต่อการปรับใช้กับเซิร์ฟเวอร์เดียว เราสามารถใช้ไฟล์ cron เพียงไฟล์เดียวสำหรับสคริปต์ทั้งหมด

อย่างไรก็ตามเรื่องนี้รู้สึกผิดเนื่องจาก cronjobs 20 คนไม่เกี่ยวข้องกับเหตุผล นอกจากนี้เมื่อใช้หนึ่งrequirements.txtไฟล์สำหรับสคริปต์ทั้งหมดมันยากที่จะเข้าใจว่าการอ้างอิงสำหรับสคริปต์นั้น ๆ และพวกเขาทั้งหมดต้องใช้แพ็คเกจรุ่นเดียวกัน

เราสามารถแยกสคริปต์ทั้งหมดออกเป็นที่เก็บข้อมูลของตนเอง แต่สิ่งนี้จะสร้างที่เก็บข้อมูลที่แตกต่างกัน 20 แห่งซึ่งจำเป็นต้องจดจำและจัดการ สคริปต์เหล่านี้ส่วนใหญ่ไม่ได้มีขนาดใหญ่มากและวิธีการแก้ปัญหานั้นดูเหมือนจะเกินความจริง

คำถามที่เกี่ยวข้องคือเราจะใช้ไฟล์ crontab ขนาดใหญ่หนึ่งไฟล์สำหรับ cronjobs ทั้งหมดหรือแยกไฟล์สำหรับแต่ละไฟล์หรือไม่ หากแต่ละคนมีของตัวเองการติดตั้งของ crontab จะหลีกเลี่ยงการเขียนทับอีก 19 รายการได้อย่างไร นี่ก็ดูเหมือนจะเป็นความเจ็บปวดเพราะในตอนนั้นมีไฟล์ cron 20 ไฟล์ที่แตกต่างกันเพื่อติดตาม

กล่าวโดยย่อคำถามและปัญหาหลักของเราคือเรารวบรวมพวกเขาทั้งหมดอย่างใกล้ชิดเป็นที่เก็บหนึ่งหรือเราแยกพวกเขาออกเป็นพื้นที่เก็บข้อมูลของตัวเองด้วยความต้องการของตัวเอง.txtและ fabfile.py? เรารู้สึกว่าเราอาจจะมองหาวิธีแก้ปัญหาที่ง่ายมาก มีวิธีที่ง่ายกว่าในการจัดการกับปัญหานี้หรือไม่?


สคริปต์เหล่านี้มีความเกี่ยวข้องกับงานอื่นหรือไม่
เกร็ก Burghardt

ฉันไม่เห็นสาเหตุที่มีพวกเขาในพื้นที่เก็บข้อมูลเดียวกันจะหมายความว่าพวกเขาจะต้องแบ่งปัน requirements.txt เดียวกัน พวกเขาแต่ละคนสามารถมี requirements.txt ที่แตกต่างกันถ้าคุณใส่ไว้ในไดเรกทอรีย่อยที่แยกต่างหากจากพื้นที่เก็บข้อมูล ...
ฌอนเบอร์

คำตอบ:


16

หากไม่มีเหตุผลที่เฉพาะเจาะจงสำหรับคุณที่จะคิดว่าแต่ละคนสมควรได้รับ repo (พวกเขาจะเติบโตมากหรือไม่อาจจะไม่!) ดูเหมือนว่ามีเหตุผลมากกว่าที่จะทำให้พวกเขาทั้งหมดใน repo เดียวและช่วยตัวคุณเองในการโคลนทั้งหมด ของพวกเขาจาก 20 repos

การรักษาแต่ละรายการใน repo แยกดูเหมือนว่าเส้นทางของการสร้างปัญหาที่ไม่มีปัญหา

อย่าสร้างงานพิเศษสำหรับตัวคุณเอง (และคนอื่น ๆ )


2
เห็นด้วย - ตราบใดที่สคริปต์นั้นมีชื่อดีและการทำซ้ำก็ยังอยู่ในระดับต่ำ (เช่นเนื้อหาในไลบรารีที่ใช้ร่วมกัน) เพื่อให้การค้นหา grep ไม่รกเกินไปฉันคิดว่ามันใช้งานได้ดี
Danny Staple

1

เว้นแต่จะมีเหตุผลที่ดีจริงๆสำหรับการแยก (ประสิทธิภาพการทำงาน, ความกังวลเกี่ยวกับความปลอดภัยขององค์กร / ฯลฯ ) สัญชาตญาณของฉันคือการเก็บเอกสารต้นฉบับไว้ในที่เก็บเดียวกัน

การแบ่งระบบออกเป็นที่เก็บแยกต่างหากโดยทั่วไปจะสร้างอุปสรรคที่ขัดขวางการใช้ซ้ำ เนื่องจากการนำกลับมาใช้ใหม่เป็นเพียงวิธีเดียวที่องค์กรต้องตัดจำหน่ายต้นทุนการพัฒนาสิ่งที่ได้รับในการนำมาใช้ซ้ำคือ ipso โดยพฤตินัยสิ่งเลวร้าย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.