คุณลืมรหัสหลังจากทำงานเสร็จหรือไม่ [ปิด]


13

ฉันเป็นโปรแกรมเมอร์ใหม่และต้องการถามโปรแกรมเมอร์อาวุโส (โปรแกรมเมอร์ที่มีประสบการณ์ในโลกแห่งความเป็นจริง)

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

บางครั้งฉันก็สงสัยตัวเองว่าฉันทำอย่างนั้น?

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

แก้ไข:

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

คำตอบ:


24

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

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


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

ฉันคิดว่าคุณพูดถูกเพราะฉัน "ลืม" รหัสที่ฉันสามารถโปรแกรมในแพลตฟอร์มที่แตกต่างกัน 3-4!
necixy

9

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

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

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


5

ฉันลืมหลายสิ่งหลายอย่างหลังจากใช้งานเสร็จ แต่ลืมไปต่างกัน

ฉันเฝ้าดูตัวเองในช่วงหลายปีที่ผ่านมาและฉันก็ได้ข้อสรุปว่าสมองของเรา (โอเคสมองของฉัน) ใช้กลยุทธ์แคชบางอย่าง:

  • มีการเรียนรู้ข้อมูลใหม่ ๆ ใช้แล้วใส่คิวที่หมดอายุ ในอีกไม่กี่สัปดาห์มันก็จะหมดไป

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

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

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


2

บ่อยครั้ง. ความคิดเห็นกลายเป็น passe 'แต่ฉันพบว่าฉันมักจะจำรหัสของฉันโดยความคิดเห็นของฉัน

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


ความคิดเห็นที่ผ่าน? ไม่จริง
Steve

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

2
ฉันจะยืนยันว่าในขณะที่ PullContractDataFromProfileAndDetermineZipRadiusFromCurrentLocation () เป็นคำอธิบายก็ยังทำให้รหัสไม่สามารถอ่านได้เพราะทำลายกระแส
Dave Wise

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

@Dave: ในขณะที่ฉันเห็นด้วยกับคุณคุณมีวิธีการที่มีความรับผิดชอบสองประการ การตบตาของคุณคือ 4 Hail Martins และ 2 GangOfFours
Michael Blackburn

1

ฉันมักจะจำไวยากรณ์หลังจากใช้งานไปสองสามครั้ง ตัวอย่างเช่นเมื่อฉันเริ่มใช้ generics หรือ linq ครั้งแรกฉันมีปัญหาในการเรียกใช้ไวยากรณ์

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


1

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


0

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

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

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