คุณจะทำงานอย่างมีประสิทธิผลได้อย่างไรเมื่อจัดการกับโค้ดที่เขียนไม่ดีอย่างมาก?


63

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

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

ไม่ใช่ว่ารหัสอ่านยากเกินไป แม้จะมีปัญหา - แต่ละโครงการมีชั้นเรียนหนึ่งที่มีวิธีการคัดลอกวางหลาย, การทำifรังขนาดใหญ่, ระบบฮังการี, การเชื่อมต่อที่ไม่ขาดตอน - มันยังคงอ่านได้

อย่างไรก็ตามฉันพบว่าตัวเองไม่ได้ผลแม้จะทำอะไรง่ายๆแค่เพิ่มการบันทึก โดยทั่วไปฉันแค่ต้องผ่านขั้นตอนของรหัสและเพิ่มการโทรติดตาม แต่ความโง่เขลาของรหัสเป็นที่น่ารำคาญมากที่ฉันได้รับเหนื่อยภายใน 10 นาทีของการเริ่มต้น ในตอนแรกฉันใช้เพื่อเพิ่มusingโครงสร้างลดการซ้อนโดยย้อนกลับifเปลี่ยนชื่อตัวแปรเป็นชื่อที่อ่านได้ - แต่โครงการมีขนาดใหญ่และในที่สุดฉันก็ยอมแพ้ ฉันรู้ว่านี่ไม่ใช่งานที่ฉันควรทำ แต่อย่างน้อยการลดความยุ่งเหยิงก็ทำให้ฉันได้รับรางวัลทางจิตวิทยาบางอย่างเพื่อที่ฉันจะได้ไปต่อ ทีนี้เคล็ดลับก็หยุดทำงานและฉันก็ยังมีงานอีก 60% ที่ต้องทำ

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

นี่ไม่ใช่แค่เสียงโวยวายครั้งใหญ่เพียงเพราะฉันมีคำถามจริง:

มีวิธีที่จะรักษาประสิทธิผลและไม่ต่อสู้กับกังหันลมหรือไม่?

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


สัญกรณ์ฮังการีไม่เลวอ่านเอกสารต้นฉบับเพื่อดูสิ่งที่เขากำลังพูดถึง :)
Woot4Moo

14
ฉันรู้ว่าชาวฮังการีไม่ได้เลวร้าย นี่คือเหตุผลที่ฉันเขียนSystems Hungarian ไม่ใช่Apps Hungarian (ดั้งเดิม) ฉันไม่รู้สึกว่าใช้ภาษาฮังการีกับระบบใน C # เพราะมันมีระบบที่ดีเยี่ยมและ IDE การมี 10 ตัวแปรในขอบเขตเดียวกับที่เริ่มต้นobjคือ daunting เพราะโดยทั่วไปไม่สามารถอ่านได้
ด่าน

2
ฉันหวังว่าฉันจะให้คำถามนี้มากกว่าหนึ่งคะแนน!
o6tech


9
ฉันระเบิดไอน้ำโดยถามคำถามที่ไม่พอใจบนสแต็กที่ทำให้ฉันรู้สึกแย่
Erik Reppen

คำตอบ:


32

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

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

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

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

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

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


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

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

3
-1 ทำไมต้องเชื่อมโยงชีวิตการทำงานและชีวิตส่วนตัวของคุณ? ฟังดูคล้ายกับการทำงานล่วงเวลาอย่างต่อเนื่อง -I didn't finish my under-estimated task by Friday - so I need to stay at home and feel bad.
Vorac

@Vorac ~ ฉันบอกว่านั่นคือสิ่งที่ฉันทำเพื่อกระตุ้นตัวเอง ทุกคนต่างกัน และฉันรับรองได้ว่าฉันไม่ทำงาน OT อย่างต่อเนื่อง ค้นหาสิ่งที่กระตุ้นให้คุณและใช้มัน ฉันพบว่ารางวัลวัตถุมีประสิทธิภาพดีที่สุดเมื่อฉันมีงานที่ฉันไม่ต้องการทำ
Tyanna

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

30

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


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

24

ฉันอยู่ในสถานการณ์ที่คล้ายกันโดยมอบหมายให้ล้างโค้ดขนาดใหญ่ที่เขียนได้ไม่ดีคัดลอกและวางอย่างหนาแน่น

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

ฉันจะมองหาตัวชี้วัดที่คล้ายกันซึ่งคุณสามารถเขียนสคริปต์เพื่อให้คุณเข้าใจถึงความก้าวหน้าและกลายเป็นเกมแปลก ๆ บรรทัดของโค้ด (เพิ่งเรียกใช้wc -l), ความซับซ้อนตามวัฏจักร (ซึ่งควรลงไปในขณะที่คุณทำความสะอาด "ifs" ที่ซ้อนกันที่น่ารังเกียจ), บรรทัดของโค้ดที่คุณแตะต้องแทนที่จะเป็นรุ่นก่อน (ฉันคิดว่าFishEyeสามารถบอกคุณได้ $ 10) และอื่น ๆ คุณสามารถเขียนสคริปต์ Perl ได้โดยไม่ยุ่งยากในการนับจำนวนบล็อกโค้ดที่ยังไม่มีคำสั่งการบันทึก


ฉันใช้ SourceMonitor
UmNyobe

13

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

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


2
หนังสือเล่มนี้เกี่ยวกับการเปลี่ยนรหัสที่มีอยู่เพื่อให้สามารถทดสอบได้ ฉันไม่คิดว่ามันจะช่วยอะไรได้มากในการสร้างแรงบันดาลใจ
Billy ONeal

2
จุดดี @Billy ONeal แต่การมีรหัสที่สามารถทดสอบได้และตัวชี้วัดที่เกี่ยวข้องสามารถแสดงความคืบหน้าซึ่งอาจเป็นแรงจูงใจ
StuperUser

1
ฉันอ่านหนังสือเล่มนี้แล้ว คุ้มค่าที่จะอ่านแน่นอน จริง ๆ แล้วฉันพบว่า WEWLC เป็นแรงบันดาลใจเพราะเป็นเรื่องดีที่รู้ว่ามีใครบางคนอยู่ที่นั่นซึ่งเข้าใจถึงความผิดหวังที่ฉันมีและมีวิธีคิดที่มีประสิทธิภาพเพื่อบรรเทาความผิดหวังเหล่านั้น
Jason Swett

1
หนังสือเล่มนั้นเก่าและล้าสมัยแล้ว หากคุณไม่ได้อ่านทำไมคุณแนะนำ
BЈовић

1
@ SuperUser เมื่อฉันอ่านมันฉันสามารถบอกได้ว่ามันล้าสมัยและสามารถให้คำแนะนำที่เป็นประโยชน์สำหรับผู้ใช้มือใหม่
BЈовић

6

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

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


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

@gaearon - อะไรทำให้คุณไม่สามารถใช้โซลูชัน 2 สายของคุณได้ คุณต้องหาวิธีที่จะทำสิ่งที่คุณมอบหมายให้แก้ไขปัญหาเกี่ยวกับรหัสนั้นสามารถแก้ไขได้ในภายหลังเมื่อคุณไม่ได้อยู่ในสำนักงานของลูกค้า คุณควรจดบันทึกสิ่งที่คุณทำสิ่งที่ทำงานเพื่อให้คุณสามารถกลับไปในอนาคตและใช้การเปลี่ยนแปลงของคุณเพื่อตรวจสอบรหัสและการทดสอบการรวมสามารถทำได้
Ramhound

@gaearon ah-ha! คุณเป็นผู้เขียนโค้ดคนเดียว ดังนั้นคนที่แต่งตัวประหลาดก่อนที่คุณจะเป็น coder เท่านั้น คุณสามารถหนีไปได้มากมายเมื่อคุณเป็น coder เพียงคนเดียว จำไว้เมื่อคุณมองหางานต่อไป ;)
davidhaskins

@Ramhound ฉันเดิมพันว่าจะไม่มีรีวิวโค้ดใด ๆ ฉันพนันได้เลยว่าจะไม่มีการทดสอบการรวมกลุ่มอย่างเป็นทางการ ฉันเคยทำงานในตำแหน่งเหล่านี้สองสามครั้ง โดยทั่วไปแล้วคนต้องการเพียงรหัสที่ทำงานได้ดีพอและพวกเขาต้องการมันโดยเร็วที่สุด การอธิบาย "วิธีปฏิบัติที่ดีที่สุด" นั้นเหมือนกับการพูดคุยกับกำแพง IMHO
davidhaskins

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

6

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

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

นี่เป็นวิธีที่สะดวกในการสนทนาแบบไม่ จำกัด ระยะเวลากับผู้เชี่ยวชาญด้านโดเมน :)


3

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


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

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

2

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


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

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

2

gamify งานของคุณ ตัวอย่างเช่นให้คะแนนตัวเอง 5 คะแนนในแต่ละครั้งที่คุณถามคำถามที่ดีเกี่ยวกับรหัสและ 10 คะแนนในแต่ละครั้งที่ตอบคำถาม ให้ป้ายกับตัวเองทุกครั้งที่คุณปรับวิธีการใหม่หรือเพิ่มคุณสมบัติใหม่ เมื่อคุณได้รับคะแนนมากพอคุณจะได้รับสิทธิพิเศษเช่นช่วงพักดื่มกาแฟหรือบิสกิต เมื่อคุณทำโครงการทั้งหมดเสร็จสิ้นคุณจะได้รับสิทธิพิเศษในการปฏิบัติต่อตัวเองกับสิ่งที่คุณต้องการจริงๆ


0

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

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


0

"การทำงานอย่างมีประสิทธิภาพด้วยรหัสมรดก" โดย Michael Feathers อาจช่วยได้

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


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