ฉันจะเพิ่มการควบคุมเวอร์ชันในเวิร์กโฟลว์ของฉันได้อย่างไร


11

ฉันพัฒนาชุดรูปแบบพวกเขามากมาย ฉันได้รับ PSD โค้ด HTML / CSS ตบรหัสลงใน Wordpress และทำการแก้ไขตามที่พวกเขาได้รับ QC'd เมื่อเผยแพร่แล้วลูกค้าสามารถแก้ไขโพสต์บล็อกเช่นปกติหรืออัปโหลดรูปภาพโดยใช้ปลั๊กอินที่กำหนดเอง

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

ได้รับการแนะนำให้ใช้ Git และ Mercurial และฉันต้องการใช้ประโยชน์จากเครื่องมือเหล่านี้ แต่ฉันสับสนเกี่ยวกับวิธีปรับให้เหมาะกับเวิร์กโฟลว์

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


ฉันคิดว่าสิ่งนี้มีคุณสมบัติเป็นคำถามระบบนิเวศที่อยู่นอกขอบเขต ดูที่นี่สำหรับการอภิปรายอย่างต่อเนื่อง
Chip Bennett

4
@ChipBennett ฉันไม่เห็นด้วย การพึ่งพาเฉพาะของ WordPress ระหว่างธีมปลั๊กอินและฐานข้อมูลและผลกระทบที่พวกเขามีต่อการปฏิบัติงานของนักพัฒนาทั่วไปยินดี
fuxia

@toscho ฉันมั่นใจได้อย่างแน่นอน นั่นเป็นเหตุผลที่ฉันชี้ไปที่การอภิปราย Meta :)
Chip Bennett

คำตอบ:


9

ก่อนอื่นคุณต้องตระหนักว่ามีสองเวิร์กโฟลว์ที่นี่: คุณและลูกค้าของคุณ

เวิร์กโฟลว์ของคุณ

  • รับ PSD
  • รหัส HTML / CSS
  • รหัสแม่แบบ WordPress
  • ปรับใช้ชุดรูปแบบเพื่อเว็บไซต์ WordPress สด

เวิร์กโฟลว์ของพวกเขา

  • คิดค้นการเปลี่ยนแปลงที่จำเป็นและส่งอีเมลถึงคุณ
  • เขียนโพสต์
  • อัพโหลดรูป

ปัญหา

การใช้การควบคุมเวอร์ชันที่นี่ไม่มีอะไรเกี่ยวข้องกับเวิร์กโฟลว์ของลูกค้า ทุกอย่างเกี่ยวกับการติดตามรหัสที่คุณใช้สำหรับธีม WordPress ไฟล์ธีมของคุณปลั๊กอินที่กำหนดเอง ฯลฯ ทั้งหมดควรอยู่ในระบบควบคุมเวอร์ชัน (Git, Mercurial, Subversion หรืออะไรก็ตามที่คุณเลือกใช้)

เวิร์กโฟลว์ของคุณจะกลายเป็น:

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

โปรดจำไว้ว่านี้เป็นเรื่องเกี่ยวกับการรักษาประวัติศาสตร์การควบคุมเวอร์ชันสำหรับรหัส รหัสคือสิ่งที่ลูกค้าของคุณไม่ควรเปลี่ยนแปลง - และคุณไม่ควรเปลี่ยนรหัสในไซต์ที่ใช้งานจริงในขณะผลิต

แต่การเปลี่ยนแปลงเนื้อหา (โพสต์ภาพถ่าย ฯลฯ ) อยู่นอกขอบเขตของระบบควบคุมเวอร์ชันของคุณ กล่าวอีกนัยหนึ่งคุณไม่ได้ทำการเปลี่ยนแปลงในการพัฒนาแล้วผลักฐานข้อมูลออกสู่การผลิต นั่นเป็นแนวทางการพัฒนาที่ไม่ดี หากคุณต้องการให้ฐานข้อมูล dev และ prod ซิงค์กันคุณควรดึงข้อมูลสำรองจากกล่องการผลิตเป็นประจำและกู้คืนเวอร์ชันในเครื่องของคุณจากข้อมูลสำรองนั้น

การเปลี่ยนแปลงรหัสไหลจากการพัฒนาเพื่อการผลิต
การเปลี่ยนแปลงฐานข้อมูลไหลจากการผลิตไปสู่การพัฒนา


คุณไม่สามารถซิงค์ฐานข้อมูลได้อย่างง่ายดายเว้นแต่คุณจะมีสคริปต์พิเศษที่จัดการวิธีการจัดเก็บข้อมูลเนื้อหาในฐานข้อมูล นั่นคือเหตุผลที่คุณแยกรหัสจากเนื้อหาในเวิร์กโฟลว์ของคุณทางเลือกคือใช้เซิร์ฟเวอร์ staging หรือลองและใช้สคริปต์ซิงค์ db ตัวใดตัวหนึ่งหรือเขียนของคุณเอง
Wyck

@EAMann การตอบสนองที่ดีขอขอบคุณ! สิ่งเดียวที่ฉันจะเพิ่มในเวิร์กโฟลว์ที่คุณอธิบายคือเขียนรหัสกระทำการเปลี่ยนแปลงผลักไปยังไซต์พัฒนารับข้อคิดเห็นกลับมาจากไคลเอนต์ ... ฉันไม่ได้พิจารณาเวิร์กโฟลว์สองแยกเพราะปกติเราจะต้องเปลี่ยน พึงพอใจกับตัวเองสำหรับลูกค้า บางครั้งเราจะต้องใส่ HTML ในเนื้อหาเพื่อรองรับคำขอพิเศษภายในเนื้อหา (สไตล์พิเศษ ฯลฯ ) บางครั้งพวกเขาจำเป็นต้องได้รับการอนุมัติจากลูกค้าก่อนที่จะเผยแพร่ซึ่งเป็นสาเหตุที่ฐานข้อมูลจะต้องซิงค์ มีแนวทางปฏิบัติที่ดีที่สุดสำหรับการตั้งค่าประเภทนี้หรือไม่?
cfree

@Wyck แทนที่จะวางเนื้อหาควบคู่ไปกับชุดรูปแบบจะเป็นการดีที่จะแยกกระบวนการทั้งสองออก ฉันชอบความคิดในการพัฒนาพื้นที่สำหรับการจัดเก็บและพื้นที่จัดเตรียมเนื้อหาที่แยกออกจากกัน ปัญหาเดียวที่ฉันเห็นคือลูกค้าต้องการเห็นทั้งชุดรูปแบบและเนื้อหา (ไซต์ทั้งหมด, หน้าคงที่) ก่อนที่จะเปิดใช้งานจริง
cfree

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

3
นอกจากนี้ยังไม่เป็นจริงหนามในด้านของ WordPress แต่ไม่เฉพาะปัญหา WordPress CMS เป็นจำนวนมากมีปัญหานี้คุณสามารถอ่านได้ที่นี่wordpress.stackexchange.com/questions/119/...เพิ่มเติมในเชิงลึกบาง มีสคริปต์อยู่ที่นั่น แต่ส่วนใหญ่อยู่ในบ้านเพราะมีลักษณะเฉพาะกับสภาพแวดล้อมบางอย่าง
Wyck

1

คุณสามารถใช้ซอฟต์แวร์ที่ซิงค์ฐานข้อมูล แต่ยังมีตัวเลือกในการกำหนดเวอร์ชันข้อมูลด้วยhttp://chronicdb.com


มันดูน่าสนใจ อาจแก้ปัญหาได้ไม่กี่ข้อ ฉันจะตรวจสอบเรื่องนี้ขอบคุณ
cfree

1

ฉันเพิ่งเขียนคำตอบอย่างละเอียดสำหรับคำถามอื่น โดยส่วนตัวฉันใช้คอมไพล์และมันวิเศษมาก ในแง่ของการเริ่มต้นกับมันฉันขอแนะนำให้ตรวจสอบจากhttp://gitref.org/และhttp://help.github.com/mac-set-up-git/ หากคุณเป็นประเภทหนังสือฉันได้อ่านหนังสือเล่มนี้แล้วและมันคุ้มค่ากับราคา ebook $ 22 ทำให้ตัวเองทำคุณจะไม่เสียใจในการตัดสินใจ


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