วิธีการตรวจสอบว่ามีรหัสที่ถูกลบที่มีประโยชน์ในการควบคุมแหล่งที่มา?


9

ดังนั้นฉันอ่านคำถามนี้ฉันควรลบรหัสที่ไม่อ้างอิงหรือไม่

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

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

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


คุณถาม vcs อะไร avout? ฟังดูเหมือนsvn
gnat

svn คือสิ่งที่ฉันมีในใจ แต่สามารถนำไปใช้กับการควบคุมแหล่งใด ๆ ฉันคิดว่า?
ปีเตอร์สมิ ธ

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

คำตอบ:


6

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

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

โดยเฉพาะคุณอาจจะ ...

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

... ฯลฯ

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


4

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

  • น่าจะเป็นสิ่งสำคัญที่สุดคือความเกียจคร้าน ...

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

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

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

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

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


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

1
@PeterSmith: คุณควรสร้างสาขาแยกต่างหากสำหรับรหัสดังกล่าว จากนั้นไม่จำเป็นต้องลบรหัสเนื่องจากไม่มีอยู่ในสาขาการทำงานอยู่แล้ว
JacquesB

การเพิ่มสิ่งที่ @JacquesB พูดถ้าคุณมีรหัสใด ๆ ที่ไม่ได้ใช้เลยก็มีแนวโน้มที่จะล้าสมัยค่อนข้างเร็ว คุณอาจฟื้นฟูสาขาที่ตายแล้วหลังจากหนึ่งปีหลังจากห้าปีคุณจะต้องเริ่มต้นใหม่จากศูนย์ สาขาที่ตายแล้วอาจยังมีประโยชน์ในฐานะที่เป็นแหล่งความคิด แต่โค้ดของตัวเองนั้นมีแนวโน้มว่าจะไม่สามารถใช้งานได้อีกต่อไป
cmaster - คืนสถานะโมนิกา

1

คำถามนี้อาจกลับมาที่"คุณจะตรวจสอบความถูกต้องของเช็ค VCS ของคุณกับฐานข้อมูลบั๊กและความต้องการระบบของคุณได้อย่างไร"

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

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

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

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


0

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

"งานทดลอง" เป็นปัญหาที่แตกต่าง คุณควรมีสาขาแยกต่างหากสำหรับสิ่งนั้น

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