วิธีง่ายๆในการดึงดูดผู้ที่ไม่ใช่โปรแกรมเมอร์ (เช่นผู้ออกแบบ) ให้เข้าสู่การใช้การควบคุมเวอร์ชันคืออะไร?


13

อะไรคือวิธีสำคัญในการทำให้ทีมของคุณมีส่วนร่วมในการใช้การควบคุมเวอร์ชันในระหว่างการพัฒนาการพัฒนาเว็บหรืออื่น ๆ

ฉันปฏิเสธที่จะทำงานโดยปราศจากมันซึ่งหมายความว่าทุกคนที่เกี่ยวข้องในโครงการจะต้องใช้ด้วย มันเป็นแค่แนวปฏิบัติที่ดี

GUIs เช่น Tower ได้ช่วย แต่แนวคิดของมันพบกับความโกรธ ('ไม่ใช่งานของฉัน!' ทัศนคติที่ดี) ความขี้ขลาดหรือตรงไปตรงมาไม่ได้ใช้ (ใช้ FTP แทนหลีกเลี่ยงการควบคุมเวอร์ชันสำหรับการพูด dev หรือการปรับใช้ )

แก้ไข: ฉันควรจะชี้แจงเล็กน้อยที่ฉันไม่ได้หมายถึงภาพ / PSDs


11
ทำให้ง่ายต่อการใช้ ...

1
ฉันพบว่า Git นั้นง่ายมากเมื่อคุณใช้เวลาสองสามวันไปกับมันและมีฉันทามติว่าการพัฒนาควรจะเป็นอย่างไร .. มันยังคงเป็นอุปสรรค์ที่ยิ่งใหญ่กว่าสำหรับผู้อื่น
เควิน

2
สิ่งหนึ่งที่ควรจำไว้คือการควบคุมเวอร์ชันและการสำรองข้อมูลบางครั้งผสมผสาน (ในขณะที่แตกต่างกันอย่างมากมาย) และต่อผู้ออกแบบที่มีข้อมูลไบนารี การสำรองข้อมูลอาจเป็นบรรทัดฐานและเข้าใจว่าเขาหรือเธอต้องการได้รับความเข้าใจ
Aaron McIver

1
@ เควิน: สิ่งที่ง่ายชัดเจนและใช้งานง่ายสำหรับโปรแกรมเมอร์ไม่จำเป็นต้องเป็นเรื่องของคนอื่นแม้แต่คนที่ฉลาดและมีความคิดสร้างสรรค์
David Thornley

1
มีส่วนร่วมกับนักออกแบบจากนั้นให้เธอมีส่วนร่วมในการควบคุมเวอร์ชัน :)

คำตอบ:


11

ฉันทำงานกับทีมนักพัฒนาและนักออกแบบและเราทุกคนใช้การควบคุมเวอร์ชัน สำหรับนักออกแบบมันดูด

การแชร์ไฟล์ / สำรองข้อมูลจะเท่ากับการควบคุมเวอร์ชันเสมอ

เมื่อคุณพูดว่า:

ฉันปฏิเสธที่จะทำงานโดยปราศจากมันซึ่งหมายความว่าทุกคนที่เกี่ยวข้องในโครงการจะต้องใช้ด้วย มันเป็นแค่แนวปฏิบัติที่ดี

คุณต้องระวังข้อผิดพลาดในการใช้การควบคุมเวอร์ชันด้วยข้อมูลไบนารี:

  • การเขียนทับ : หากนักออกแบบสองคนกำลังทำงานกับไฟล์เดียวกันคนที่สองที่มอบหมายจะเขียนทับการเปลี่ยนแปลงครั้งแรกของเวอร์ชันปัจจุบัน วิธีเดียวที่จะป้องกันไม่ให้เกิดการล็อคหรือการสื่อสารอย่างต่อเนื่องเกี่ยวกับผู้ที่ทำสิ่งที่ไฟล์ซึ่งทั้งสองสามารถขัดขวางกระบวนการทำงานของทีม
  • การผสาน : การผสานการใช้เครื่องมือช่วยไม่มีอยู่ในข้อมูลไบนารี การรวมกันด้วยตนเองนั้นเจ็บปวดและมีแนวโน้มที่จะเกิดข้อผิดพลาดจำนวนมาก
  • พื้นที่เก็บข้อมูล bloating:ระบบ VC จัดเก็บบรรทัดที่เปลี่ยนแปลงสำหรับไฟล์ข้อความเท่านั้น ไม่สามารถทำได้กับข้อมูลไบนารีเนื่องจากไฟล์ทั้งหมดจะดูแตกต่างจากระบบ VC ซึ่งหมายความว่าในขณะที่ไฟล์ข้อความ 10KB เวอร์ชัน 20 อาจใช้เวลา 20KB เท่านั้น แต่ไฟล์ 1MB เวอร์ชัน 20 อาจจะใช้เวลาใกล้ถึง 20MB ทีมออกแบบขนาดกลางสามารถสร้างการแก้ไขจำนวนมากบนไฟล์ไบนารีจำนวนมากได้อย่างง่ายดาย แผนกไอทีของคุณอาจเกลียดคุณในเรื่องความต้องการในการจัดเก็บข้อมูลและอาจเพิ่มหน่วยความจำ / CPU เซิร์ฟเวอร์ VC ที่คุณมี

    คุณและนักพัฒนาอื่น ๆ อาจจะเกลียดการเช็คเอาต์หรือการอัปเดตเป็นระยะเวลานาน ๆ จนกว่าคุณจะได้จัดตั้งองค์กรที่เก็บข้อมูลที่ดีมากเพื่อหลีกเลี่ยงไฟล์ไบนารี

  • ประโยชน์ที่ได้รับลดลง : นักออกแบบของคุณจะไม่ค่อยกลับไปที่ไฟล์ไบนารีรุ่นก่อนหน้าเพราะ 1) ไม่มีวิธีที่ง่ายในการตรวจสอบเนื้อหาของรุ่นที่ผ่านมา 2) ไม่มีวิธีที่ง่ายในการผสานมันและที่สำคัญที่สุดคือ 3) ใช้งานไม่ได้ - ใช้เพื่อสร้างกราฟิกสำรองบางรุ่นซึ่งอาจยังมีประโยชน์ในไฟล์การผลิตด้วยตนเอง

สำหรับรหัสของคุณคุณควรใช้ VC อย่างแน่นอนและคุณมีสิทธิ์ที่จะเรียกร้องมัน

แต่คุณต้องตรวจสอบสมมติฐานที่ว่านั่นหมายความว่าทุกคนจะต้องใช้มันรวมถึงวิธีปฏิบัติที่ดีสำหรับนักออกแบบ (แม้ว่าจะสำรองข้อมูล) คุณควรจัดเก็บเนื้อหากราฟิกสุดท้ายที่เว็บไซต์ / แอปพลิเคชันของคุณต้องการใน VC ของคุณ แต่สำหรับไฟล์ที่ใช้งานจริงมันอาจไม่ใช่วิธีที่เหมาะสม


เกี่ยวกับ "พื้นที่เก็บข้อมูล bloat": คุณสามารถลองแก้ไขด้วยรูปแบบไฟล์ที่ถูกต้องได้ เอกสารที่จัดเก็บในรูปแบบภาษามาร์กอัปเอกสารและกราฟิกที่จัดเก็บในรูปแบบภาษามาร์กอัปกราฟิกแทนรูปแบบไบนารีเทียบเท่าสามารถช่วยได้มาก แน่นอนความมีชีวิตของสิ่งนี้ขึ้นอยู่กับโครงการที่มีปัญหาและความเต็มใจและความสามารถของผู้ที่เกี่ยวข้อง ;)
Baelnorn

5
การเขียนทับไม่ได้เกิดขึ้นกับ VCS ที่คุ้มค่าอะไร สิ่งที่เกิดขึ้นคือคุณมีไฟล์เดียวกันสองเวอร์ชัน ใช่ HEAD ของที่เก็บจะมีการบันทึกครั้งล่าสุด แต่ผลงานของนักออกแบบคนอื่นจะไม่สูญหายเหมือนจะอยู่ในฮาร์ดไดรฟ์ที่ใช้ร่วมกัน ฉันคิดว่านั่นเป็นความแตกต่างที่สำคัญ
Berin Loritsch

2
@Berin: จริง แต่ข้อดีอย่างหนึ่งของ VCS ที่ทันสมัยก็คือคนสองคนสามารถทำงานในสิ่งเดียวกันได้ในเวลาเดียวกันและงานคืนดีมากมายนั้นเป็นไปโดยอัตโนมัติ อย่างไรก็ตามด้วยไฟล์ไบนารีที่ไม่มีกระบวนการผสานที่มีความหมายจึงเป็นไปไม่ได้ นอกจากนี้หัวของที่เก็บเป็นที่ที่คนจะคิดว่าเป็น "ของจริง"
jprete

1
เนื่องจากระยะเวลาการสนับสนุนสำหรับซอร์สโค้ดและเอกสารการออกแบบแตกต่างกันตรวจสอบให้แน่ใจว่าใช้ที่เก็บ seprarate สำหรับพวกเขา ฉันไม่เห็นด้วยที่เก็บของสำหรับนักออกแบบ เวลาส่วนใหญ่ใช้ความคิดและการสร้างแบบจำลองไม่ใช่การเปลี่ยนแปลงเอกสารเล็กน้อย นอกจากนี้เรายังกำหนดเป็นกฎที่จะไม่อนุญาตให้รวมอัตโนมัติ (ในไฟล์ทั้งหมดที่เก็บไว้ในที่เก็บ) และดังนั้นจึงมีการล็อคไฟล์บังคับสำหรับการแก้ไข เมื่อรวมกับการสื่อสารเป็นทีมที่ดีจะช่วยป้องกันข้อเสียมากมายที่คุณพูดถึง
rsp

1
คุณค่อนข้างผิดเช่น: การเขียนทับ - สิ่งนี้ไม่ใช่ปัญหาของการควบคุมเวอร์ชันในทางกลับกันมันช่วยให้คุณตรวจจับได้ ระบบ VC จัดเก็บบรรทัดที่เปลี่ยนแปลงสำหรับไฟล์ข้อความเท่านั้น - เท็จสำหรับคอมไพล์
maaartinus

4

ฉันปฏิเสธที่จะทำงานโดยปราศจากมันซึ่งหมายความว่าทุกคนที่เกี่ยวข้องในโครงการจะต้องใช้ด้วย มันเป็นแค่แนวปฏิบัติที่ดี

นั่นเป็นทัศนคติที่ยอดเยี่ยมอยู่ตรงนั้นด้วย 'ไม่ใช่งานของฉัน!' :-)

วิธีที่ดีที่สุดในการรับซื้อคือการใช้ TortoiseGit หรือ TortoiseSVN เพื่อรวมการควบคุมเวอร์ชันเข้ากับ Explorer (สมมติว่าเป็น Windows) ต้องใช้เวลาในการเห็นประโยชน์ที่แท้จริงหากคุณไม่คุ้นเคยกับกระบวนทัศน์การควบคุมเวอร์ชัน อย่างน้อยเต่าทำให้การใช้งาน VCS กับเมาส์ทำได้ง่าย "คลิกขวา -> เช็คอิน" อย่างง่ายคือสิ่งที่ต้องทำ

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

ฉันมีปัญหาเดียวกันนี้กับเอกสารการตรวจสอบจำนวนมากที่ฉันไม่สามารถควบคุมผู้คนได้ดังนั้นเราจึงมีเอกสารฉบับเดียวกัน 50 ฉบับที่ลอยไปมาซึ่งต่างกันอย่างละเอียด


4

วิธีการในการตั้งค่าระบบการสร้าง (เช่นฮัดสัน ) ซึ่งใช้ระบบควบคุมเวอร์ชันเพื่อดึงแหล่งที่มาของการสร้างและทำให้มันเป็นกฎโครงการที่มีเพียงสิ่งประดิษฐ์ที่ส่งมอบโดยระบบสร้างจะไปที่ทีมทดสอบและ นำไปใช้ในที่สุดที่เว็บไซต์ของลูกค้า

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


2

แสดงให้เห็นถึงข้อดี:

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

1
-1 สิ่งนี้เกี่ยวกับการมีส่วนร่วมที่ไม่ใช่โปรแกรมเมอร์ รายการจะปรากฏขึ้นที่โปรแกรมเมอร์ หากคุณปรับเปลี่ยนคำตอบของคุณฉันจะลบการลงคะแนนอย่างแน่นอน ...
Aaron McIver

1
ฉันคิดว่าคุณพลาดส่วน "สำหรับผู้ที่ไม่ใช่โปรแกรมเมอร์" งานทั้งหมดที่คุณกล่าวถึงเป็นงานโปรแกรมเมอร์
Erik Funkenbusch

ขออภัยฉันเพิ่งอ่านคำถามไม่ใช่ชื่อ ฉันจะแก้ไขคำตอบ
jzd

1 ลบแล้ว ...
Aaron McIver

1

"ไม่ใช่งานของฉัน" เกี่ยวกับการควบคุมเวอร์ชันเป็นทัศนคติที่มีเหตุผลจากผู้ที่ไม่ใช่โปรแกรมเมอร์

สร้างระบบควบคุมเวอร์ชันที่เรียบง่ายและมองไม่เห็นเนื่องจาก Dropbox ใช้สำหรับการซิงค์หรือ Time Machine สำหรับการสำรองข้อมูล

มันควรจะทำงาน ไม่มีการชำระเงินไม่มีการกระทำ เพียงแค่วางไฟล์ในโฟลเดอร์โครงการ


1

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

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


0

ฉันจะบอกว่าการใช้เต่า * มันง่ายกว่าที่จะได้รับ หรือรวมการควบคุมเวอร์ชันใน IDE หรืออะไรก็ตาม

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