ฉันควรเปลี่ยนชื่อผู้แต่งในไฟล์คลาสหรือไม่ถ้าฉันทำการเปลี่ยนแปลงมากกว่า 80%?


18

ฉันกำลัง refactoring ชุดทดสอบคลาส Java ที่มีอยู่สำหรับการทดสอบ UI อัตโนมัติ บางครั้งฉันก็ทำการเปลี่ยนแปลงครั้งใหญ่ในไฟล์คลาสหรือปรับปรุงใหม่ทั้งหมด นี่ทำให้ฉันคิดว่าเมื่อฉันเขียนทั้งชั้นฉันควรเปลี่ยนชื่อผู้แต่งในส่วนความคิดเห็นเป็นของฉันหรือไม่

ฉันเป็นคนโลภใช่ไหม หรือมันจะมีประโยชน์สำหรับคนที่จะเห็นชื่อของฉันและถามฉันในกรณีที่มีข้อสงสัย?


17
คุณใช้การควบคุมเวอร์ชันหรือไม่? ฉันพบว่าการบันทึกจะเป็นกลไกการติดตามที่เชื่อถือได้มากขึ้นสำหรับการประพันธ์ (ถ้ามีความต้องการที่ถูกต้องตามกฎหมายที่จะหา ... )
rwong

5
ชื่อควรจะอยู่ที่นั่นถ้ามันมีค่าใด ๆ กับรหัส คือบุคคลที่ติดต่อ ความรับผิดชอบและอื่น ๆ และหากกรณีดังกล่าวติดกับวันที่สิ้นสุดและชื่อใหม่ที่แนบมา
อิสระ

15
จุดประสงค์ของการมีชื่อผู้ใช้ในไฟล์คลาสคืออะไร?
BЈовић

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

1
เกิดอะไรขึ้นกับการปล่อยให้ชื่อของพวกเขาเป็นผู้แต่งและเพิ่มบรรทัดด้านล่างที่ระบุว่า "rewritten / refactored name date"
Ryathal

คำตอบ:


15

มันขึ้นอยู่กับ ...

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

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

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


13

ฉันเพิ่งเจอโพสต์อื่นที่ OP ถามว่าชื่อของผู้เขียนควรอยู่ในส่วนหัวของไฟล์หรือไม่และดูเหมือนว่าอย่างน้อย 2 ใน 3 ของผู้ตอบคำถามกล่าวว่าชื่อไม่ควรอยู่ในรายการและคุณควรใช้การควบคุมเวอร์ชันเพื่อ ติดตามผู้ที่เปลี่ยนไฟล์ ไม่รู้ว่าเกิดอะไรขึ้นกับโพสต์นั้น แต่ตอนนี้ฉันหามันไม่พบ <- (ไม่ระบุชื่อ "OP")

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

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

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

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

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


1
ฉันเห็นคะแนนของคุณ แต่ใครคือ "OP"
Tarun

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

@Tarun: OP = "ผู้โพสต์ดั้งเดิม" (คือคนที่ถามคำถาม) มันเป็นนิพจน์ที่ใช้ในฟอรัมสนทนาออนไลน์
sleske

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

1
@rwong: ทำไมมีปัญหาระหว่างการแยกและรวม? โดยปกติบุคคลที่รวมการเปลี่ยนแปลงควรเข้าใจ (อย่างอื่นทำไมพวกเขาถึงรวมกัน) ดังนั้นบุคคลในบันทึกจึงเป็นผู้ถาม
sleske

5

ฉันไม่พบชื่อของผู้เขียนที่มีประโยชน์มาก ตามที่คำถามนี้แสดงบ่อยครั้งที่ไม่มีผู้เขียนคนเดียวดังนั้นจึงไม่สามารถตั้งชื่อ "ผู้แต่ง" ได้

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

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

แก้ไข

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


so what's the point?โครงการที่ไม่ได้อยู่ภายใต้ vcs โครงการที่บางจุดย้ายไปยัง vcs อื่น (ไม่ใช่แผนการโยกย้ายทั้งหมดที่อนุญาตให้มีการโยกย้ายประวัติโชคไม่ดี) และโครงการที่ใช้มากกว่าหนึ่ง vcs ในเวลาเดียวกัน - โครงการ FLOSS บางโครงการยอมรับว่า วิธีการที่จะทำให้ง่ายขึ้นสำหรับผู้ที่มีส่วนร่วมโดยไม่ จำกัด เพียงหนึ่ง vcs (คน svn พบคอมไพล์ยากคน git พบ svn ใช้ไม่ได้และเรา hg คนหัวเราะทั้ง)
yannis

1
@YannisRizos: ตกลงนั่นเป็นความจริง ฉันคาดว่าโครงการซอฟต์แวร์ใด ๆ จะใช้การควบคุมเวอร์ชันโดยปริยาย แก้ไขคำตอบของฉัน
sleske

และแน่นอนประเด็นอื่น ๆ ของฉันควรแก้ไขได้อย่างง่ายดายด้วย vcs-fu เล็กน้อยบางส่วนโดยไม่คำนึงถึง vcs ที่เกี่ยวข้อง แต่ในทางปฏิบัติพวกเขาไม่ค่อยน่าเสียดาย
yannis

2

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


1

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

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

/**
 * $comment
 * <p />
 * $cr_number, $date, $author, $description 
 **/

3
"หากการตัดสินใจเปลี่ยน VCS เกิดขึ้นจะมีประวัติของรหัส" ฉันหวังว่าจะไม่มีองค์กรที่มีสติจะพิจารณาการโยกย้าย VCS โดยไม่ต้องย้ายประวัติ (อย่างน้อยประวัติศาสตร์ล่าสุด) ท้ายที่สุดแล้วประเด็นของการใช้ VCS ก็คือ
sleske

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

1
@Bryan Oakley ฉันไม่ได้ลบการควบคุมเวอร์ชันเลยฉันกำลังบอกว่าการรับรู้รหัสเป็นวิธีหนึ่งในการรู้ว่าใครทำงานกับซอร์สโดยไม่จำเป็นต้องทำการค้นหาที่จำเป็นผ่านการควบคุมเวอร์ชัน นอกจากนี้ยังมีรหัสบางส่วนที่มีอยู่นอกระบบควบคุมเวอร์ชันควรจะยกเว้นชื่อผู้แต่งหรือไม่
Buhake Sindi

1

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

ฉันอยากจะแนะนำให้คุณเพิ่มชื่อของคุณด้านล่างของผู้เขียนต้นฉบับ

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


+1 สำหรับย่อหน้าที่สามเนื่องจากผู้เขียนดั้งเดิมอาจรู้จักบุคคลอื่นที่ทำบางอย่างในรหัส แต่ไม่ได้ใส่ชื่อของเขาไว้
โคโยตี้ 21

1

นโยบายของฉันเกี่ยวกับความคิดเห็น @author คือ:

  1. หากเป็นไฟล์ใหม่ฉันก็จะเป็น @author
  2. หากเป็นไฟล์ที่มีอยู่ฉันจะออกจาก @author โดยลำพังไม่ว่าฉันจะทำอย่างไรกับไฟล์

หากคุณมีคำถามเกี่ยวกับบางสิ่งมันไม่สำคัญว่า @author ของไฟล์คือใคร - มันสำคัญกับ @author ของไฟล์ที่คุณแก้ไขส่วนใด นั่นคือสิ่งที่[git/svn/whatever] blameมีไว้เพื่อ

IMO, @author จำเป็นต้องหายไป


ในอีกด้านหนึ่งคุณแสดงว่าคุณเป็นผู้แต่งในไฟล์ใหม่ คุณต้องการให้ผู้แต่งหายตัวไปหรือไม่?
Anthony Pegram

1
มาตรฐานการเข้ารหัสของ บริษัท ต้องมีแท็ก @author มิฉะนั้นฉันจะไม่ใช้มันเลย (เพราะฉันต้องการให้มันหายไป :))
Michael Moussa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.