กำลังเขียนส่งข้อความในฐานะนักพัฒนาเดี่ยว?


30

ในโครงการของฉันที่ซึ่งที่เก็บถูกแชร์ระหว่างฉันและโปรแกรมเมอร์คนอื่น ๆ ฉันมักจะเขียนข้อความยอมรับแม้ว่าฉันจะเป็นนักพัฒนาหลัก

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

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

มีเหตุผลที่ดีอะไรบ้างในการเขียนคอมมิทข้อความในฐานะผู้พัฒนาเดี่ยวหรือคุณควรจะข้ามไปเพื่อเน้นการพัฒนาหรือไม่?


14
"ฉันไม่เคยย้อนกลับไปดูข้อความที่ส่ง"ดีครั้งแรกที่คุณต้องย้อนกลับอาจจะให้เหตุผลที่ดีแก่คุณ ที่จริงแล้วการเดินเล่นในรองเท้าของคุณฉันอาจจะทำตัวเงียบ ๆ จนกว่าจะเกิด
อาการโกลาหล

5
"ฉันมักจะเขียนคอมมิทข้อความแม้ว่าฉันจะเป็นผู้พัฒนาหลัก" คุณคิดว่ามันผิดปกติเหรอ? แน่นอนว่าผู้พัฒนาหลักควรเขียนข้อความแม้กระทั่ง moreso มากกว่านักพัฒนาคนอื่น ๆ (ใครควร 100% ของเวลา)
AlbeyAmakiir

7
ข้อความยืนยันเป็นทองคำบริสุทธิ์เมื่อคุณเริ่มบำรุงรักษาซอฟต์แวร์รุ่นเก่าไม่ใช่เฉพาะรุ่นล่าสุด

คำตอบ:


43

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

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


13
+1 สำหรับย่อหน้าสุดท้าย ฉันพบว่าการเขียนข้อความการส่งข้อความที่เหมาะสมนั้นใช้เวลาค่อนข้างนานเพราะฉันรู้อยู่เสมอว่าทำไมฉันถึงทำการเปลี่ยนแปลง
Stephen Darlington

5
สำหรับเนื้อหาเดี่ยวของฉันฉันได้รับข้อความยืนยันก่อนที่จะทำอะไรสักอย่าง ฉันทำสิ่งเล็ก ๆ (ตั้งเป้าเป็นเวลา 30-45 นาที ... มีภรรยาและลูก ๆ ที่นี่!) และทำมัน บางทีคุณอาจเรียกได้ว่ามันเป็นการพัฒนาที่ขับเคลื่อน?
corsiKa

52

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


12
นอกจากนี้ยังช่วยเมื่อสร้างรายงานรายเดือน รายการส่งข้อความเป็นการเริ่มต้นที่ดีสำหรับรายงาน
mhoran_psprep

2
ใช่และมันใช้เวลาเพียงครั้งเดียวที่คุณต้องการจ่ายคืนในเวลาที่ใช้ในการแสดงความคิดเห็น
tzerb

20

คุณเชื่ออย่างสุจริตหรือไม่ว่าค่าใช้จ่ายในการพิมพ์ประมาณ 40 ถึง 80 ตัวอักษรในภาษาอังกฤษล้วนเป็นค่าใช้จ่ายที่สำคัญสำหรับการกระทำหรือคุณกำลังมองหาข้ออ้างที่จะขี้เกียจ?

บางทีคุณอาจมีปัญหาในการแสดงเป็นภาษาอังกฤษธรรมดาทำไมคุณทำการเปลี่ยนแปลงในกรณีนี้คุณอาจจำเป็นต้องตรวจสอบวัตถุประสงค์ของการเปลี่ยนแปลงแม้กระทั่งถึงจุดที่ถามตัวเองว่าคุณจำเป็นต้องทำจริงๆ

คำแนะนำของฉันคืออย่าคิดว่าเพราะคุณกำลังบินเดี่ยวคุณสามารถฝ่าฝืนกฎ ยังคงเป็นมืออาชีพตลอดเวลาและเพิ่มข้อความกระทำที่มีความหมาย ดังที่บันทึกไว้โดยการอัศจรรย์อื่น ๆ วันหนึ่งคุณจะต้องขอบคุณมัน


14
  • คุณไม่ได้เป็นนักพัฒนาเดี่ยวเสมอไป

  • ในที่สุดคุณจะทำลาย codebase ของคุณและพยายามกู้คืน ข้อความยืนยันที่ดีจะช่วยคุณประหยัดเวลา

  • คุณจำไม่ได้ว่าคุณทำงานอะไรเมื่อสามสัปดาห์ก่อนใช่มั้ย

  • ข้อความยืนยันควรชัดเจนมาก หากไม่ใช่คุณก็ไม่ได้ทำงานให้เสร็จหรืองานเดี่ยวแผ่กระจายไปทั่วงานสองงานหรือมากกว่า


7

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


6

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

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


สนใจที่จะทบทวนคำตอบนี้อีกครั้ง เมื่อเร็ว ๆ นี้ฉันได้รับตำแหน่งที่ค่อนข้างรุนแรง: ไม่มีการส่งข้อความใด ๆ เลย แต่นั่นเป็นโครงการ HTML / JS ที่ค่อนข้างแบนซึ่งฉันไม่สามารถจินตนาการได้ว่าเคยพยายามติดตามการถดถอย ความพยายามใด ๆ ที่ใช้ในการเขียนข้อความกระทำแน่นอนจะดีกว่าการใช้ที่อื่น (ไม่ใช่โครงการทั้งหมดที่อยู่ในหมวดหมู่นี้!)
Steve Bennett

4

ฉันเป็นผู้ดูแลโครงการ TXR แต่เพียงผู้เดียวและได้เก็บรายละเอียด ChangeLog ไว้ตั้งแต่ต้นในโครงการ นี่คือใกล้กับ 11,000 บรรทัดยาวและเติบโต: http://www.kylheku.com/cgit/txr/tree/ChangeLog

(ข้อความคอมมิชชันใน repo เป็นเพียงสำเนาของสิ่งที่เกิดขึ้นใน ChangeLog)

[2016 แก้ไข: ตั้งแต่กลางปี ​​2558 ฉันไม่ได้ดูแลไฟล์ ChangeLog อีกต่อไป อย่างไรก็ตามข้อความคอมมิทจะถูกเขียนในรูปแบบที่สอดคล้องกับ Git และ ChangeLog ในเวลาเดียวกัน มีรายละเอียดในระดับเดียวกันในลักษณะที่ไม่ทำให้เกิดปัญหาการรวม ไฟล์ ChangeLog สามารถสร้างขึ้นใหม่โดยอัตโนมัติจากความคิดเห็นเหล่านี้]

ใช่มากกว่าหนึ่งครั้งฉันกลับไปที่ข้อความคอมมิชชันเก่าที่เกี่ยวข้องกับการเปลี่ยนแปลงซึ่งทำลายบางสิ่งบางอย่าง (เปิดเผยด้วยความช่วยเหลือของgit bisect) ข้อความนี้ช่วยให้ฉันเข้าใจว่ากำลังทำอะไรอยู่

ใน ChangeLog คุณสามารถบอกได้เมื่อมีการแนะนำฟังก์ชั่นประเภทมาโครหรือตัวแปรส่วนกลางและเมื่อสัมผัสกับการเปลี่ยนแปลงในภายหลัง

แต่เหตุผลหลักสำหรับการเขียนรายละเอียดกระทำเช่นข้อความเหล่านี้เมื่อทำงานด้วยตัวเองคือ: คุณพบข้อบกพร่องเมื่อทำเช่นนี้

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

เมื่อคุณพยายามอธิบายสิ่งต่าง ๆ บางครั้งคุณพบว่าสิ่งเหล่านั้นไม่สมเหตุสมผล

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

ผมได้ทำบางครั้งการเปลี่ยนแปลงเมื่ออยู่ในช่วงกลางของการเขียนรายการ ChangeLog ฉันตระหนักว่านี่คือจะเป็นgit reset --hard(โยนออกไปการเปลี่ยนแปลงที่ไร้ประโยชน์เหล่านี้) git commit -aมากกว่า


3

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

นี่คือคำถามที่เกี่ยวข้องกับวัตถุประสงค์ของการส่งข้อความ: ทำไมฉันจึงควรเขียนข้อความยืนยัน


3

ฉันมักจะส่งข้อความที่มีความหมายเกี่ยวกับการเปลี่ยนแปลงและฉันมักจะทำกับการเปลี่ยนแปลงที่เพิ่มขึ้น

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


3

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

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