มันคุ้มค่าหรือที่จะทำ แต่เพียงผู้เดียวเพื่อแก้ไขความผิดพลาดที่ไม่สำคัญ?


67

หากฉันเจอคำผิดที่ไม่สำคัญในรหัส (พูดคำว่า apostrophe ที่ผิดพลาดในคำสั่งพิมพ์ (ข้อผิดพลาด)) มันคุ้มค่าที่จะให้คำมั่นที่จะแก้ไขข้อผิดพลาดนั้นหรือควรปล่อยไว้ตามลำพัง?

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


40
หากสิ่งเล็กน้อยกระทำการใด ๆ คุณต้องลงทุนใน VCS ที่ดีกว่าเครื่องมือกรองการบันทึกที่ดีขึ้นหรือแนวทางปฏิบัติที่ดีกว่าสำหรับการระบุความรุนแรงที่แตกต่างกันของการแก้ไข
Rex Kerr

@ root45 ถึงแม้ว่าคุณจะดูผลลัพธ์มันก็เป็นไวยากรณ์ที่แตกต่างไปจากคำถามนี้
Izkata

คำตอบ:


130

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

คุณอาจต้องการนำหน้าด้วยTRIVIAL:แท็กหรือทำเครื่องหมายว่าเล็กน้อยหาก VCS ของคุณรองรับ


72
แค่อยากจะเพิ่มเข้าไปในนี้ก็คือฉันอยากจะทำสิ่งนี้มากกว่าที่จะแยกออกจากกันด้วยสิ่งอื่น ปัญหาที่เกิดขึ้นกับก้อนคือเสียงมากเกินไปอาจทำให้ผู้ตรวจสอบรหัสหันเหความสนใจจากการเปลี่ยนแปลงที่เกี่ยวข้อง +1
Andy

9
+1 สำหรับการกล่าวถึงเอฟเฟกต์หน้าต่างที่เสียหาย เรื่องเล็ก ๆ น้อย ๆ หากทุกอย่างสะอาดจริงๆผู้คนจะคิดสองครั้งก่อนที่จะเขียนโค้ดที่ไม่ได้ตั้งใจหรือไม่ผ่านการทดสอบ
Roy Tinker

25
นอกจากนี้หากคุณทิ้งมันลงไปในสถานที่นั้นให้นำบทบาทที่คุณเปลี่ยนแปลงไปกลับคืนมา กระทำสิ่งหนึ่งครั้ง
ctrl-alt-delor

4
ฉันสนใจจริง ๆ ว่า VCS ใดที่อนุญาตให้ทำเครื่องหมายความคิดเห็นว่าเป็นเรื่องเล็กน้อย ฉันทำงานกับ SVN, Hg และ Git และไม่ได้สังเกตอะไรแบบนั้น
Xion

3
@ เสียงรบกวนนั้นไม่ใช่ส่วนที่แย่ที่สุด ... หากมีใครบางคนตัดสินใจที่จะยกเลิกการกระทำนี้ในภายหลังเพราะพวกเขาไม่ต้องการคุณลักษณะนั้นทันใดนั้นคุณก็สูญเสียการปรับปรุงเล็กน้อยซึ่งเป็นส่วนหนึ่งของความมุ่งมั่น
rFactor

49

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


9
+1 การแก้ไขแต่ละรายการควรเกี่ยวข้องกับการแก้ไขหนึ่งรายการเท่านั้น มันจะกลายเป็น NIGHTMARE ไปสู่การแก้ไขแบ็คพอร์ทหากการแก้ไขแต่ละครั้งมีการพิมพ์ผิดจำนวนมากซึ่งได้รับการแก้ไขระหว่างการเปลี่ยนแปลงจริง
แกรนท์

28

ในกรณีทั่วไป: ใช่

มันคุ้มค่าเสมอที่จะเพิ่มการบำรุงรักษาซอฟต์แวร์ของคุณ

เพียงไปเพื่อมัน

หากคุณกำลังจะส่งรุ่น ...

... และถ้าคุณไม่ได้เป็นผู้นำทีมแล้วตรวจสอบกับเขา / เธอ


เกี่ยวกับเนื้อหาของบันทึกการกระทำ ...

ฉันเห็นด้วยกับคนอื่น ๆ ว่าอย่างน้อยคุณควรเขียนบางสิ่งบางอย่างทำให้มันแตกต่างจาก "คุณสมบัติ" - ความมุ่งมั่นที่เกี่ยวข้องถ้ามันเป็นเพียงเกี่ยวกับการแก้ไขพิมพ์ผิด

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

  • การทำความสะอาดอัตโนมัติที่ไม่เป็นอันตรายขนาดใหญ่ (ช่องว่างกวาด)
  • หลักไวยากรณ์และการสะกดคำการล่าสัตว์
  • สร้างการปรับเปลี่ยนระบบ
  • ฯลฯ ...

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


7
กำลังตรวจสอบกับหัวหน้าทีมของคุณสำหรับการพิมพ์ผิดหรือไม่? ถ้าฉันเป็นหัวหน้าทีมที่เครียดกับการเปิดตัวที่กำลังจะมาถึงฉันก็ไม่อยากถูกรบกวนด้วยเรื่องเล็กน้อย
Joh

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

2
@ โจ: โดยทั่วไปถ้าหัวหน้าทีมของฉันเห็นบิลด์ใหม่กระโดดขึ้นไปบนระบบบิลด์เมื่อเขากำลังจะสร้างบิลด์ใหม่ (หรือเริ่มแล้ว) จากนั้นฉันก็มั่นใจได้ว่าระดับความเครียดของเขาจะเพิ่มขึ้นโดยใช้วิธีการนี้ เช่นกัน ...
haylem

7

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

การใช้ข้อความคอมมิทเช่น "แก้ไขการพิมพ์ผิด" หรือ "แก้ไขคำผิดใน file.c" จะช่วยให้คุณแยกแยะการคอมมิทเหล่านี้ออกจากคอมมิชชันหลัก ๆ


7

ใช่คุณควรทำสิ่งนี้อย่างแน่นอนโดยเฉพาะในโครงการ

ทำไม? สองคะแนน:

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

  2. การแก้ไขการพิมพ์ผิดเร็วและจงใจจะง่ายกว่าการแก้ไขหลังจากหลายร้อยบรรทัดของการเรียกใช้รหัส / ฟังก์ชั่น อีกครั้งแฮ็กชั่วคราวจะกลายเป็นกึ่งถาวรอย่างรวดเร็วอย่างแปลกใจ นี่คือเหตุผลที่ฉันต้องจัดการกับวัตถุที่มีทั้ง "CollapseAll" และ "ColapseAll" วิธี


2
ใช่ - จากคำตอบที่ถูกต้องทั้งหมดฉันชอบคำนี้ที่ดีที่สุดสำหรับการกล่าวถึงว่าขึ้นอยู่กับ "เมื่อใด"
Wonko the Sane

4

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

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


3

หากคุณกังวลเกี่ยวกับการทำบันทึกการกระทำคุณจะทำสิ่งอื่นผิดไป :-) ความมุ่งมั่นที่ทำบ่อยเป็นสิ่งที่ดี! ฉันกระทำการพิมพ์ผิดแก้ไขตลอดเวลา รับ 'em ใน codebase ASAP และเร่งรอบการพัฒนา!


2
I commit typo fixes all the timeIMO น่าเป็นห่วงลองหาโปรแกรมเมอร์ที่มีภาษาอังกฤษดีกว่าไหม
โกหกไรอัน

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

2

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


0

กระบวนการจัดการการเปลี่ยนแปลงของคุณอนุญาตหรือไม่

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

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


+1 ในบางสภาพแวดล้อมสิ่งนี้เป็นจริง กรุณาอย่าลงคะแนนเพียงเพราะสิ่งนี้ไม่เป็นความจริงที่คุณทำงาน
MarkJ

-1 กระบวนการจัดการการเปลี่ยนแปลงของคุณน่าจะดูดครั้งใหญ่ ฉันจะเข้าใจ (และชอบมากกว่า ) ว่าการกระทำทุกอย่างจะต้องเกี่ยวข้องกับการร้องขอการเปลี่ยนแปลงซึ่งเป็นส่วนหนึ่งของกระบวนการของคุณที่ดูดี แต่ OMG ดูเหมือนว่าคำขอนักพัฒนาเริ่มต้น (เช่นrefactor นี้ / แก้ไขความผิดพลาดในการที่ ) ห้ามซึ่งยกธงสีแดงขนาดใหญ่ให้ฉัน เป็นการสมมติว่าผู้ใช้ทางธุรกิจ / ผู้ตรวจสอบมักจะรู้ดีกว่านักพัฒนา - หากนั่นจะใกล้เคียงกับความจริงพวกเขาจะเขียนรหัสด้วยตัวเอง
gnat

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

@alroc ที่ "if-can-convince" เพียงซ่อนกระบวนการต่อต้านภายใต้พื้นผิวที่ดูสมเหตุสมผล ความต้องการในการโน้มน้าวใจธุรกิจ / การตรวจสอบเกี่ยวกับการเปลี่ยนแปลงครั้งใหญ่เกี่ยวกับจุดตรวจสอบขั้นสำคัญที่ตกลงกันไว้ / อื่น ๆ ฯลฯ ทำให้รู้สึกดีตกลง ใช้เวลาสองสามชั่วโมง / วันเพื่อพิสูจน์ความพยายามที่ใช้เวลาหนึ่งสัปดาห์ในการพัฒนาและควบคุมคุณภาพนั่นเป็นเรื่องน่าเบื่อ แต่ก็ยุติธรรม แต่บังคับให้ทำเช่นนี้กับทุกการสะกดคำแก้ไขหรือแยกวิธี ... ให้ฉันพัก - นี่คือไม่มีอะไรนอกจากควบคุมแทรกอย่างไม่ใส่ใจในขั้นตอนที่ผิดในเวลาที่ไม่ถูกต้อง
ริ้น

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

-1

ใช้ DVCS เพื่อแก้ไขประวัติ

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

เก็บสามัญสำนึกไว้เป็นอย่างอื่น

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

โปรดทราบว่าข้อผิดพลาดในการทำงานยังควรถูกส่งโดยเร็วที่สุดในการกระทำแบบปรมาณู

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

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