เราควรใส่เอกสารข้อกำหนดในระบบควบคุมแหล่งเช่น svn?


11

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

คำตอบ:


4

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


2
จริงฉันมีความสุขถ้า SVN ทำให้แน่ใจว่าฉันมีเวอร์ชันปัจจุบันเสมอ ความแตกต่างมีความสำคัญน้อยลงเป็นส่วนใหญ่
Zachary K

นั่นไม่ใช่ปัญหาเดียวการเปลี่ยนแปลงและการล็อคการเขียนทับเป็นปัญหาเมื่อมีผู้แก้ไขหลายคน
Nicole

1
เอกสารที่เผยแพร่ไม่สำคัญสำหรับคุณ แต่สำหรับ PM ความสามารถในการมองเห็นการเปลี่ยนแปลงในรายละเอียดนั้นสำคัญมาก
Martin York

คำตอบนี้ดูเหมือนความคิดเห็นเพิ่มเติมเกี่ยวกับคำตอบอื่น ๆ ตัวอย่างเช่นคำถามไม่ได้เกี่ยวข้องกับ blobs
Bryan Oakley

15

ด้วยพื้นที่ว่างบนฮาร์ดดิสก์ที่ pennies ต่อกิกะไบต์ต่อเดือนไม่มีเหตุผลที่ดีที่จะไม่ใส่เอกสารในระบบควบคุมแหล่งที่มาและน่าจะมีประโยชน์ ความชอบส่วนบุคคลของฉันคือการเขียนเอกสารที่ใช้มาร์กอัปแบบอินไลน์เช่นวิกิพีเดียมาร์กอัปหรือDocBook สิ่งนี้ช่วยให้การใช้เครื่องมือที่มีประสิทธิภาพสำหรับการเปรียบเทียบและแก้ไขเอกสาร


3
ถ้าไม่มีอะไรน่าสนุกที่เห็นว่า v1.0 ของสเปคนั้นดูเป็นอย่างไรเมื่อเทียบกับเรือรบ!
Martin Beckett

8

เอกสารข้อกำหนดการกำหนดเวอร์ชันเป็นเป้าหมายที่ควรค่า

อย่างไรก็ตามเอกสารข้อมูลจำเพาะของคุณเป็นข้อความอย่างเดียวและอยู่ในไฟล์ข้อความธรรมดาหรือไม่? ถ้าเป็นเช่นนี้อาจเป็นทางออกที่ดี

ถ้าไม่ควบคุมแหล่งที่มาอาจจะไม่ได้เป็นสถานที่ที่เหมาะสมสำหรับพวกเขา - ควบคุมแหล่งที่มาจะไม่ดีสำหรับไฟล์ไบนารี

โดยปกติแล้วไฟล์ข้อความธรรมดาไม่ดีสำหรับการจัดรูปแบบหรือการดูอย่างรวดเร็วดังนั้นวิกิที่มีการกำหนดเวอร์ชันอาจเป็นแนวคิดที่ดีกว่า


โดยปกติแล้วเอกสารของเราจะรวมถึงเนื้อหาข้อความธรรมดาเท่านั้น แต่ยังรวมถึงรูปภาพเช่นแผนภาพ UML หรือเนื้อหาอื่น ๆ ฉันเห็นด้วยอย่างยิ่งว่าไฟล์ที่จัดรูปแบบไบนารีไม่เหมาะสำหรับระบบควบคุมแหล่งที่มา อย่างไรก็ตามฉันคิดว่ามันดีกว่าไม่มีอะไร ขวา? หากมีวิกิเราก็สามารถรับเอาได้ มันจะดีมาก. แต่ฉันกังวลเรื่องนั้น คนของเราจะ "ยุ่งมาก" เพื่อเรียนรู้วิธีใช้วิกิ (เศร้า)
Edison Chuang

1
มีวิกิจำนวนมากในแต่ละวันกับบรรณาธิการ WYSIWYG ฉันเป็นคนที่ยอมแปลงจุดเปลี่ยนอย่างไม่เต็มใจ ในฐานะนักพัฒนาฉันเกลียดจุดแบ่งปันด้วยความหลงใหล จากนั้นฉันลงทะเบียนกับ Microsoft BPOS ซึ่งมาพร้อมกับ sharepoint และใช้สำหรับการทำงานร่วมกันในโครงการที่มีสมาชิกทีมระยะไกล มีวิกิบอร์ดฟอรัมปฏิทินและไลบรารีเอกสาร (ซึ่งติดตาม Microsoft Office Docs) และสิ่งอื่น ๆ ที่ทำให้การทำงานร่วมกันของโครงการเป็นเรื่องง่าย ฉันคิดว่า Wiki เป็นสเปคที่มีชีวิตสมบูรณ์แบบเพราะมันมีให้ในประวัติศาสตร์
Michael Brown

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

1

เอกสารทั้งหมดควรอยู่ในรูปแบบของการเก็บถาวร (ควรมีการควบคุมการแก้ไขเพิ่มเติม)

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

แต่มีโซลูชั่นอื่น ๆ ที่ออกแบบมาโดยเฉพาะสำหรับเอกสาร SharePoint คำนึงถึง แต่ฉันแน่ใจว่ามีคนอื่น ๆ


0

อย่างแน่นอน. ปัญหาที่เอกสารถูกจัดเก็บเป็นไบนารี (เช่นเอกสารคำ) น่ารำคาญ วิธีแก้ปัญหาที่ดีคือถ้าคุณใช้เครื่องมือ Tortoise (ฉันลองใช้ SVN และ Mercurial) คุณสามารถเลือก "Visual Diff" ที่ให้คุณเลือก docdiff ด้วย docdiff คุณจะได้เห็นการเปลี่ยนแปลงทั้งหมดด้วยสีและเนื้อหา :-) ข้อเสียเปรียบหลักคือทุกครั้งที่คุณทำการเปลี่ยนแปลงเอกสารทั้งหมดจะถูกส่งมอบอีกครั้ง (ไม่ใช่แค่การเปลี่ยนแปลง) แต่เมื่อพิจารณาว่าเอกสารข้อความไม่ได้มีขนาดใหญ่มากและพื้นที่นั้นอาจไม่ใช่ปัญหาหลักของคุณนี่ก็ไม่มีปัญหา

ฉันแน่ใจว่าคุณสามารถใช้ docdiff โดยไม่มีเต่าเป็นเพียงที่ฉันไม่ได้ลอง


มันไม่ได้เกี่ยวข้องกับปัญหา "การเขียนทับการเปลี่ยนแปลงจากหลายบรรณาธิการ"
Omar Kohl

0

มีวิธีการอื่นที่คุณควรพิจารณา: BDD

โปรดพิจารณาการพัฒนาพฤติกรรมขับเคลื่อนด้วยสเปคที่สามารถใช้งานได้ ข้อมูลจำเพาะของคุณจะได้รับการทำให้ง่ายขึ้นเป็นชุดของ Given - เมื่อ - จากนั้นชุดคำสั่งที่เก็บไว้ในไฟล์ข้อความ เครื่องมือ BDD เช่น Cucumber หรือ SpecFlow แปลงไฟล์ข้อความเหล่านั้นเป็นการทดสอบที่ปฏิบัติการได้ซึ่งเครื่องมือสร้างของคุณสามารถดำเนินการได้

Cucumber: http://cukes.info/ - BDD สำหรับ Ruby

SpecFlow: http://www.specflow.org/ - BDD สำหรับ. Net

สำหรับการสาธิตขั้นตอนการทำงานอย่างรวดเร็วด้วยเครื่องมืออย่าง SpecFlow เช็คเอาต์ SpecFlow ของ Rob Conery: http://tekpub.com/view/concepts/5

ตอนนี้ไม่เพียง แต่คุณกำลังกำหนดรหัสของคุณ แต่ข้อมูลจำเพาะของคุณและเครื่องมือการรวมอย่างต่อเนื่องของคุณ (คิดว่า TeamCity, CruiseControl, Hudson และอื่น ๆ ) กำลังบังคับใช้ว่าข้อกำหนดทั้งหมดยังคงใช้ได้กับทุกรุ่น ... สิ่งนั้นมีค่าสำหรับคุณหรือไม่

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