Score:0

วิธีจัดการกับการเปลี่ยนแปลงการกำหนดค่าในผลิตภัณฑ์และโดยนักพัฒนาหลายคน

ธง cn

ฉันมีสองสถานการณ์ในการจัดการการกำหนดค่าที่ฉันไม่แน่ใจว่าจะจัดการอย่างไร:

  1. ผู้ใช้ Geeky ทำการเปลี่ยนแปลงการกำหนดค่าในการผลิต ข้อใดคือแนวทางปฏิบัติที่ดีที่สุดในการนำเข้าการเปลี่ยนแปลงเหล่านี้ใน dev โดยไม่ทำลายงานที่กำลังดำเนินการใน dev คอมไพล์ดึง และ ซิม จะแทนที่ทุกสิ่งที่คุณกำลังทำอยู่ใน dev ฉันรู้ว่ามี drush ซิม -- บางส่วนแต่จากสิ่งที่ฉันเข้าใจว่านี่ไม่ใช่วิธีที่แนะนำให้ทำ (แหล่งที่มา). ฉันสามารถใช้โมดูลอ่านอย่างเดียวสำหรับการกำหนดค่าใน prod เพื่อหลีกเลี่ยงการเปลี่ยนแปลงการกำหนดค่าเลย แต่มีหลายตัวอย่างที่ผู้ใช้ควรได้รับอนุญาตให้เปลี่ยนการกำหนดค่าได้

  2. ผู้พัฒนา 2 รายทำงานในสภาพแวดล้อม dev ในพื้นที่ของตน: ฉันจะแน่ใจได้อย่างไรว่าฝ่ายหนึ่งจะไม่แทนที่งานจากอีกฝ่ายหนึ่งเมื่อพุชไปยังสเตจหรือผลิตภัณฑ์ โดยเฉพาะอย่างยิ่งเมื่อมีการเปลี่ยนแปลงการกำหนดค่าในผลิตภัณฑ์ที่เกิดขึ้นด้วย (ดู 1) วิธีการแตกกิ่งคอมไพล์บางอย่างอาจช่วยได้ แต่ฉันสามารถใช้ความช่วยเหลือเพิ่มเติมเกี่ยวกับวิธีใช้มันได้

Score:4
ธง us

การใช้ git branching ที่ดีสามารถช่วยในเรื่องนี้ได้อย่างแน่นอน สิ่งสำคัญคือแต่ละสาขามีพื้นฐานการกำหนดค่าที่มั่นคง: ไม่มีอะไรภายนอกสาขาควรเปลี่ยนสถานะการกำหนดค่าภายในสาขา ดังนั้นเมื่อถึงเวลาส่งออกการกำหนดค่าในสาขาและรวมเข้ากับการผลิตในภายหลัง เฉพาะการเปลี่ยนแปลงที่เกี่ยวข้อง บันทึกไปยังสาขา

วิธีหนึ่งในการทำเช่นนี้คือการเรียกสาขาหลัก การผลิตและ HEAD ของสาขานั้นจะติดตามสถานะการผลิตปัจจุบันของโค้ดเบสของคุณเสมอ คุณทุกคนตกลงที่จะไม่ผูกมัดหรือรวมสิ่งต่างๆ การผลิต นอกเสียจากว่าคุณกำลังเตรียมที่จะเผยแพร่สิ่งเหล่านั้นแบบสดๆ

เมื่อ Arjun ต้องการทำงานในลักษณะใหม่ พวกเขาสร้างสาขาใหม่ขึ้นมา การผลิตและพวกเขาเรียกมันว่า อาร์จัน-1.

วันรุ่งขึ้น เบธต้องแก้ไขจุดบกพร่อง เธอจึงสร้างสาขาใหม่ของเธอเอง การผลิต เรียกว่า เบธ-1.

ในขณะเดียวกัน Ceci ผู้จัดการเนื้อหาอยู่ใน UI ของไซต์ที่สร้างเว็บฟอร์ม ซึ่งหมายความว่าเธอกำลังทำการเปลี่ยนแปลงการกำหนดค่าแบบสดที่แตกต่างจากสถานะการกำหนดค่าของ การผลิต. ในทางหนึ่งเธอก็แตกแขนงออกไปเช่นกัน การผลิต! อันที่จริง เรามาเริ่มสร้าง เซซี-1 สาขาออกจาก การผลิต ตอนนี้เพื่อเป็นตัวแทนของสิ่งนี้แม้ว่าเราอาจจะยังไม่ได้ทำอะไรกับมัน

ไม่กี่วันต่อมา สาขาที่เกี่ยวข้องของ Arjun และ Beth ได้รับการตรวจสอบและยอมรับแล้ว และผู้บริหารต้องการนำผลงานรุ่นใหม่ไปใช้กับไซต์ที่ใช้งานจริง

สิ่งแรกที่ต้องทำคือตรวจสอบ เซซี-1 สาขา ส่งออกการกำหนดค่าที่ใช้งานอยู่และยอมรับไฟล์การกำหนดค่าที่อัปเดตแล้ว เซซี-1.

ตอนนี้คุณสามารถดำเนินการผสานกับ การผลิต: คุณสมบัติใหม่ อาร์จัน-1การแก้ไขจุดบกพร่อง เบธ-1และการอัปเดตการกำหนดค่าแบบสด เซซี-1. อาจมีข้อขัดแย้งในการผสานที่ต้องตรวจสอบ แต่คุณไม่ควรกังวลเกี่ยวกับการเขียนทับการกำหนดค่าของผู้อื่นโดยไม่ตั้งใจ เนื่องจากแต่ละสาขามีพื้นฐานที่สอดคล้องกันในการส่งออกการเปลี่ยนแปลงการกำหนดค่าของตนเอง

สมมติว่าคุณไม่ได้ทำ เซซี-1 สาขา. แต่คุณรวมกันแทน อาร์จัน-1 และ เบธ-1 เข้าไปข้างใน การผลิตจากนั้นส่งออกการกำหนดค่าที่ใช้งานจริงและยืนยันการอัปเดตที่ใช้งานจริง การผลิต. คุณทำพลาดแล้ว! คุณเปลี่ยนพื้นฐานสำหรับการเปลี่ยนแปลงการกำหนดค่าไซต์สดของ Ceci พวกเขาตั้งอยู่บนสถานะของการผลิตโดยไม่มีสาขาของ Arjun และ Beth การส่งออกตอนนี้จะเขียนทับการเปลี่ยนแปลงการกำหนดค่าที่ทำไว้

Extect avatar
cn flag
ขอบคุณมากสำหรับการตอบกลับโดยละเอียด !!!
Score:0
ธง de

ไม่ควรทำการเปลี่ยนแปลงในการผลิต การเปลี่ยนแปลงการกำหนดค่าการผลิตควรดำเนินการภายในเครื่องโดยนักพัฒนา ควรจัดเรียงความขัดแย้งในการผสานบนเครื่องโลคัล ดังนั้นมันจะเป็นดังนี้:

  1. นักพัฒนาตรวจสอบรหัส
  2. นักพัฒนาทำการเปลี่ยนแปลงการส่งออกการกำหนดค่า
  3. นักพัฒนาพยายามผลักดัน ถูกปฏิเสธไม่ให้กระทำการใหม่
  4. ดึงนักพัฒนาเห็นการเปลี่ยนแปลงในการกำหนดค่า
  5. นักพัฒนาซอฟต์แวร์นำเข้าการกำหนดค่าใหม่เพื่อให้แน่ใจว่านำเข้าอย่างถูกต้อง และการเปลี่ยนแปลงในคอมมิตจะไม่หยุดชะงัก
  6. นักพัฒนาส่งออกการกำหนดค่าหลังจากทำการแก้ไข คอมมิต และพุชไปยังเซิร์ฟเวอร์

การเปลี่ยนแปลงใด ๆ ในการกำหนดค่าที่ทำโดยตรงบนเซิร์ฟเวอร์ระยะไกลควรถูกเขียนทับทุกครั้งที่พุช วิธีนี้จะแก้ปัญหาข้างต้นของคุณ ยกเว้น:

มีหลายตัวอย่างที่ผู้ใช้ควรได้รับอนุญาต เพื่อเปลี่ยนการกำหนดค่า

เช่น?

Les Lim avatar
us flag
เช่น การเพิ่มหรือกำหนดค่าเว็บฟอร์ม การจัดเรียงบล็อกใหม่ การเพิ่มบทบาทของผู้ใช้ การปรับเวิร์กโฟลว์ การเปลี่ยนรูปภาพเริ่มต้นของช่องรูปภาพ ฯลฯ แน่นอนว่าเป็นเรื่องดีหากทั้งหมดนี้เกิดขึ้นได้ในสภาพแวดล้อมของ dev ที่ควบคุมได้ แต่ไซต์ Drupal ส่วนใหญ่ไม่มี ทีมพัฒนาที่สามารถดูแลการเปลี่ยนแปลงทั้งหมดผ่านเวิร์กโฟลว์การปรับใช้
Extect avatar
cn flag
ขอบคุณ @Les Lim! นี่คือกรณีการใช้งานที่ฉันหมายถึง บางโครงการต้องการความยืดหยุ่นมากขึ้นหรือโครงการมีขนาดเล็กจนไม่มีทีม dev ที่พร้อมทำการเปลี่ยนแปลงในสภาพแวดล้อม dev ที่มีการควบคุมตลอดเวลา ในทั้งสองกรณีมีการเปลี่ยนแปลงเพิ่มเติมใน prod และนี่เป็นปัญหาที่ฉันสับสนว่าเวิร์กโฟลว์ที่ดีที่สุดจะมีลักษณะอย่างไร (ถ้ามี)
Jaypan avatar
de flag
ฉันมีข้อพิพาทเป็นการส่วนตัวกับไคลเอนต์ที่การเปลี่ยนแปลงการกำหนดค่าเช่นข้างต้นเป็นการสร้างเว็บไซต์ ไม่ใช่การจัดการเนื้อหา ฉันไม่เห็นสถานการณ์ที่ลูกค้าควรเพิ่มบทบาทของผู้ใช้ เปลี่ยนเวิร์กโฟลว์ และเปลี่ยนรูปภาพเริ่มต้นในฟิลด์ เราสร้างไซต์เพื่อให้ลูกค้าใช้งาน การเปิดให้สร้างไซต์แก่ลูกค้าทำให้เกิดปัญหา เช่นอันนี้!
Jaypan avatar
de flag
ฉันควรเพิ่มตัวสร้างเค้าโครงสามารถใช้เพื่อแก้ไขปัญหาเกี่ยวกับบล็อกได้ Webform เป็นปัญหาใหญ่ที่สุดที่ฉันเห็นสำหรับคุณ ฉันไม่ได้ใช้มันเพราะมันเปิดปัญหาจากประสบการณ์ของฉันเท่านั้น ข้อยกเว้นที่ฉันต้องการใช้คือข้อกำหนดของโครงการคือลูกค้าสามารถสร้างแบบฟอร์มของตนเองได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา