วิธีที่ดีที่สุดในการแสดงความคิดเห็นในการตรวจสอบรหัสคืออะไร


13

ทีมของฉันเพิ่งเริ่มใช้เบ้าหลอม / ฟิชอายในการเริ่มต้นการตรวจสอบโค้ดเมื่อใดก็ตามที่เราตรวจสอบอะไรบางอย่างมีเพียง 3 ของเราและเราแต่ละคนได้รับการสนับสนุนให้ตรวจสอบรหัสและแสดงความคิดเห็นที่เราเห็นว่าเหมาะสม

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

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

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


2
นอกเหนือจากการขว้างปาชื่อ FishEye และ Crucible (เครื่องมือโปรดของฉัน) ฉันไม่เห็นการเขียนโปรแกรมเฉพาะที่นี่ หนึ่งสามารถรับคำแนะนำมากมายเกี่ยวกับสิ่งต่าง ๆ เช่นนั้นโดยการค้นหาเว็บเพื่อหาคำตอบที่สร้างสรรค์
gnat


@caleb ฉันไม่เห็นด้วยนี่เป็นเรื่องเกี่ยวกับวิธีวลีความคิดเห็นมากกว่ากระทู้อื่น ๆ
HLGEM

1
@HLGEM ฉันจะบอกว่านั่นคือสิ่งที่ล่อลวงที่แนะนำเกี่ยวกับ: "ฉันจะแนะนำอย่างมีชั้นเชิง ... " โดยทั่วไปให้ความสำคัญกับการแก้ปัญหาที่มีอยู่ในรหัสที่ตรวจสอบไม่ใช่ในรูปแบบหรือความชอบส่วนตัวของคุณเอง อธิบายว่าข้อเสนอแนะของคุณทำให้โค้ดดีขึ้นได้อย่างไร
คาเลบ

@stinkycheeseman เพียงแค่ให้คนอื่นรู้ว่าทำในแบบของคุณดีกว่า และผู้คนในทีมของคุณจะได้เรียนรู้บางอย่างผ่านกระบวนการ
upton

คำตอบ:


8

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

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

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

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

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


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

@mcmcc นั่นคือจุดยุติธรรมหรือคุณอาจอ้างถึงสถานที่อื่น ๆ ในรหัสที่ใช้เทคนิคคล้าย ๆ กัน ฉันมักจะใช้ความคิดเห็นเพื่อเรียกการอภิปรายจริงหลังจากนั้นถ้าพวกเขาไม่สำคัญ
HLGEM

6

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

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

คุณอาจเรียนรู้บางอย่างในกระบวนการ


4

ฉันต้องการจุดผ่านโดยไม่ขัด

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

  • สิ่งนี้จะทำให้ frobnitz ทำงานผิดปกติเมื่อ fooble อยู่ภายใน 5 grimbles ของปัจจัย snorgatz

  • การประชุมที่จัดตั้งขึ้นสำหรับการทำเช่นนี้คือการเรียก fazzatz () ด้วย Squidge เริ่มต้นใหม่ ทำให้สิ่งนี้เป็นวิธีการหนึ่งซึ่งจะเกิดขึ้นในลักษณะเดียวกันและไม่ซ้ำกัน

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

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

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


+1 เพียงแค่ปัจจัย snorgatz (ดีฉันชอบคำตอบที่เหลือด้วย)
HLGEM

3

ขึ้นอยู่กับปัญหาที่สังเกตได้

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

1

จากประสบการณ์ของฉัน:

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

  2. มีการสนทนาที่เป็นมิตร ขอบคุณส่วนที่ดีของการเข้ารหัส บอกเขาว่า "นี่คือสิ่งที่ดีที่สุดที่ฉันเคยเห็น" ถ้าคุณเห็นบางส่วนที่ดีในรหัส

  3. ขอให้เขาตรวจสอบรหัสของคุณและยอมรับและยอมรับคะแนนที่ถูกต้องและแก้ไขให้ถูกต้อง ให้ความเคารพต่อความคิดเห็นของเขาในรหัสของคุณและเขาจะเคารพความคิดเห็นในการตรวจสอบรหัสของคุณโดยอัตโนมัติ
  4. จัดการกับที่ระดับนักพัฒนาเว้นแต่จะมีความสำคัญมากหรือจำเป็นต้องใช้เวลามากขึ้นในการแก้ไขปัญหาการตรวจสอบรหัส อย่าส่งต่อไปยังผู้จัดการเพื่อให้ง่ายถ้าไม่มีปัญหาที่เกิดขึ้น
  5. ดูด้วยมุมมองของ "การเรียนรู้จากโค้ดอื่น" แทนที่จะชี้ข้อผิดพลาดในโค้ด
  6. ในระหว่างช่วงการตรวจสอบรหัสให้อ้างข้อผิดพลาดในอดีตที่คุณทำและวิธีการตรวจสอบรหัสช่วยคุณและหลีกเลี่ยงปัญหาการผลิตขนาดใหญ่เพราะสายตาอีกชุดหนึ่งช่วยคุณได้
  7. จงนอบน้อม ชื่นชมมากขึ้นและแสดงความคิดเห็นน้อยกับเขา :) คุณจะได้เรียนรู้มากในระหว่างการตรวจสอบรหัสและเขาก็ยินดีที่จะยอมรับความคิดเห็นของคุณ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.