ฉันถูกบังคับให้เขียนรหัสไม่ดี ฉันจะบันทึกใบหน้าของฉันได้อย่างไร [ปิด]


69

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

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

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


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

17
"ส่งเสริมแฮ็กที่รวดเร็วและสกปรก"? ให้กำลังใจ? ซึ่งแย่กว่านั้น ความภาคภูมิใจของคุณ (และการหางานใหม่) หรือยึดติดกับงานนี้ การยืนหยัดเพื่อสิ่งที่ถูกต้องอาจไม่เลว คุณกำลังหยุดอะไร ภัยคุกคามจากความรุนแรง? แบล็กเมล์? กระบวนการทางอาญา? อย่างจริงจัง. คุณหยุดเขียนโค้ดดีอะไร โปรดเฉพาะ และซื่อสัตย์
S.Lott

113
หากเป็นการปลอบใจใด ๆ แม้แต่รหัสที่ดีที่คุณเขียนในวันนี้จะดูไม่ดีสำหรับคุณในอีกห้าปี
Kyralessa

7
face it PHP ส่งเสริมให้ "รวดเร็วและสกปรก" โดยไม่ทำให้ท้อถอยและทำให้ง่ายต่อความจริงฉันจะพูด PHP เก่งที่ "qucik และสกปรก" ดีกว่าภาษาอื่น ๆ ยกเว้นอาจ Perl เมื่อโมเมนตัมที่จัดตั้งขึ้นมันเป็น ยากที่จะหยุดโดยเฉพาะถ้าผู้บริหารสนับสนุนพฤติกรรมเช่นกัน ในรหัสสิ้นสุดที่ดูเหมือนว่าจะทำงานโดยไม่คำนึงถึงวิธีปฏิบัติที่มีคุณค่าต่อ บริษัท มากกว่าไม่มีรหัสเลย

7
ขออภัย แต่มีมีวิธีการที่ถูกต้องและไม่ถูกต้องในการเขียนโค้ด วิธีที่ถูกต้องใช้วิธีปฏิบัติที่เป็นมาตรฐานอุตสาหกรรม วิธีเลวแฮ็กเข้าด้วยกันอึและบอกว่ามัน "ทำงาน"
Wayne Molina

คำตอบ:


132

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

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


2
+1 คุณไม่ต้องเสียสละทุกสิ่งที่คุณเชื่อเพียงแค่แก้ไขอย่างรวดเร็ว
tdammers

4
+1: สำหรับทั้งหมดหรือไม่มีอะไร - จริงมาก
Umber Ferrule

3
กฎลูกเสือในมือผิดอาจเป็นสาเหตุของปัญหาได้เนื่องจากคำจำกัดความของ 'ชื่อฟังก์ชันที่เหมาะสม' ของ superiour ของเขาอาจเป็น 'bolChkLst' (สัญกรณ์ฮังการีเพื่อให้ตรงกับ styleguide, ChkLst แทนที่จะเป็นรายการตรวจสอบเพราะสั้นกว่า ') นี่คือการใช้งานกฎลูกเสือที่ฉันพบในงานที่แตกต่างกันฉันพยายามที่จะไม่ปฏิบัติตาม: 'เข้าร่วมฟังก์ชั่นให้มีให้น้อยที่สุดเท่าที่จะเป็นไปได้', 'ไม่ต้องมีการโต้แย้งผ่านการโทร 3 ครั้ง ทำให้มันเร็วขึ้น '
keppla

40
+1 สำหรับEvery time you touch the code, leave it better than it was before.
Qwerky

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

59

เห็นด้วยกับ S.Lott จากความคิดเห็น * (ครั้งเดียว :) ไม่มีใครบังคับให้คุณเขียนโค้ดที่ไม่ดี สิ่งคือจูเนียร์ dev บ่อยครั้ง (เว็บไซต์นี้ยังเป็นโทษสำหรับสิ่งนั้น) หลงทางแนวปฏิบัติที่ดีที่สุด "รหัสที่สวยงาม", ... ทุกสิ่งที่คุณต้องการเรียกมันว่า ... และพวกเขาก็ไม่ได้ทำอะไรมาก หรือทำเสร็จ แต่เสียเวลามาก ด้วยการบอกให้พวกเขาเขียนโค้ดที่ไม่ดี (ซึ่งเป็นโค้ดที่ใช้งานได้) มันจะได้รับมากกว่า "ถึงคำนั้น" เพียงแค่ทำให้พวกเขาส่งบางสิ่งบางอย่าง เมื่อเวลาผ่านไปผลลัพธ์นั้นก็คือ (ตอนนี้ไม่ได้แล้ว :) รุ่นใหม่อย่างรวดเร็วมาพร้อมกับโซลูชันที่รวดเร็วและสกปรก แต่ใช้เวลาที่เหลือในการปรับปรุง และเมื่อเวลาผ่านไปคุณจะได้เรียนรู้มากขึ้นและในบางครั้งคุณก็เริ่มนำเสนอโซลูชั่นที่รวดเร็วและสกปรกซึ่งเป็นรหัสที่ดีจริงๆ

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

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

ไม่มีใครเขียนคำตอบที่สมบูรณ์แบบในครั้งแรก

* อันนี้มันสั้นกว่านี้ไหมถ้าเป็นความคิดเห็น


1
+1 ฉันเห็นด้วยอย่างยิ่งกับคำตอบนี้ ฉันจะลงคะแนนให้คุณสองครั้ง
Vitor Py

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

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

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

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

40

ความคิดเห็นเกี่ยวกับรหัสคือเพื่อนของคุณที่นี่

เมื่อใดก็ตามที่คุณรู้สึกว่าคุณต้องเขียนแฮ็คราคาถูกเพราะความกดดันเพียงพูดอะไรทำนองนี้ "รหัสนี้ทำ X เนื่องจากข้อ จำกัด ด้านเวลาในอุดมคติแล้วฉันจะทำ Y แทน - Ashamed One, 5 กรกฎาคม 2011"

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


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

ดีคุณสามารถบอกบางสิ่งบางอย่างเกี่ยวกับคนที่มีความคิดเห็นกระทำ "แก้ไข", "เสร็จแล้ว", "blahblahblah" :)
gbjbaanb

+1 ฉันทำมาหลายครั้งแล้วและในกรณีของนักพัฒนาเพียร์มันก็ใช้ได้
Jacek Prucia

7
ฉันมักจะลบความคิดเห็นเช่นนั้นเมื่อใดก็ตามที่ฉันวิ่งข้ามพวกเขา ความคิดเห็นที่ระบุว่าเป็นสิ่งที่ต้องทำหรือสิ่งที่มีศักยภาพในอนาคตอาจสมควรที่จะอยู่ แต่การขอโทษเป็นเพียงขยะ
Kristopher Johnson

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

10

ขึ้นอยู่กับว่าพวกเขาบังคับคุณอย่างไร

จากประสบการณ์ของฉันมีความเป็นไปได้สองอย่าง:

คุณรู้สึกว่าถูกบังคับโดยกำหนดเวลาที่เข้มงวดรหัสดั้งเดิม ฯลฯ

ในกรณีนี้คำตอบอื่น ๆ ส่วนใหญ่พูดแล้วมันขึ้นอยู่กับคุณที่จะ 'เพิ่มประสิทธิภาพเพื่อความเย็น' คุณอาจไม่มีเวลาที่จะเขียน codebase เป็น MVC แต่เป็นขั้นตอนแรกคุณสามารถหยุดกาว SQL ของคุณด้วยมือและแทนที่จะเขียนดีexecute_sql($query, $params)ที่วางรากฐานสำหรับ abstractions เช่นfetch_customer($filter_params)ฯลฯ จำไว้ว่าสิ่งที่ดีที่สุด ในที่สุดก็มีวิธีปฏิบัติที่เจ้านายของคุณได้รับผลิตภัณฑ์ก่อนหน้านี้ดังนั้นจึงมีเพียงความขัดแย้งในระยะเวลาที่จะลงทุนในอนาคตเทียบกับในปัจจุบัน

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

คุณได้รับคำสั่งให้ใช้งานอย่างชัดเจนในแบบที่คุณไม่เห็นว่าเหมาะสม

ความพยายามในการแยกมุมมองจากแบบจำลองไม่สามารถอยู่รอดจากการตรวจทานได้เพราะ 'มันซับซ้อนเกินไปทำไมคุณไม่ลองคำสั่ง sql ธรรมดา' คุณexecute_sqlได้รับการบรรจุกระป๋องเพราะ 'coder ที่มีวินัยไม่จำเป็นต้องใช้'

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

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


8

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

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

หากทุกอย่างล้มเหลวให้ไปหางานอื่น


3

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

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


4
-1: ในสหรัฐอเมริกาถ้าเจ้านายของคุณพูดว่า "เขียนรหัสเส็งเคร็งเร็ว" และคุณปฏิเสธที่จะทำสิ่งนั้นพวกเขาสามารถไล่คุณออกได้ การไม่เชื่อฟังคำสั่งโดยตรงเพื่อทำสิ่งที่ถูกกฎหมายเป็นเหตุให้เลิกจ้างโดยไม่สมัครใจ ดังนั้นในขณะที่อาจไม่ "บังคับ" คุณทางเลือกในการทำสิ่งที่เจ้านายของคุณพูดอาจแย่กว่านั้นมาก
Bob Murphy

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

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

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

1
ฉันแทบจะไม่เคยสนับสนุนการเขียนระบบใหญ่ครั้งใหญ่ แต่นั่นไม่ได้หมายความว่ารหัสที่คุณเขียนในอนาคตจะต้องมีความน่ากลัว
PeterAllenWebb

3

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

รหัสที่ดีที่สุดในโลกไม่สำคัญว่าจะล้าสมัยก่อนที่จะเผยแพร่หรือไม่

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

ต้องใช้ประสบการณ์มากมาย (มากกว่าตัวเข้ารหัสส่วนใหญ่ที่เคยมี) เพื่อให้ได้สมดุลนี้ มันง่ายมากที่จะไปให้ไกลที่สุด การหาทางกลางนั้นยากกว่า

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

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


2

ฉันต้องการเพิ่มว่าคุณไม่ควรดำเนินการต่อเหมือนตอนนี้โดยไม่พูดอะไรและแค่แฮ็คและแฮ็ค

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

ฉันแน่ใจว่ามีเครื่องมือมากมายให้ใช้งานฟรีสำหรับการวิเคราะห์โค้ด php http://en.wikipedia.org/wiki/Code_analysis

นอกจากนี้แน่นอนhttp://en.wikipedia.org/wiki/Code_smellนี้

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

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

HTH


0

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

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

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

เพื่อเป็นตัวอย่างของฉันฉันเคยไปถึงกลางโครงการด้วยแอปพลิเคชั่น Perl / CGI ที่ HTML ทั้งหมดอยู่ในรหัส แอปทั้งหมดอยู่ในไฟล์เดียวโดยไม่มีโครงสร้างที่ชัดเจน ไม่มีอะไรเป็นเวอร์ชัน ฉันเริ่มต้นด้วยการกำหนดค่า CVS repo (ไม่มี SVN ให้บริการในเวลานั้น) ใส่เว็บอินเตอร์เฟสไว้ให้ลูกค้า ตอนแรกฉันจัดการกับข้อผูกพันจากเพื่อนร่วมงานด้วยตัวเอง จากนั้นฉันแบ่งวิธีทั้งหมดเป็นโมดูล (ไฟล์) ที่แตกต่างกัน เมื่อถึงตอนนั้นเพื่อนร่วมงานก็เริ่มนำ CVS มาใช้ จากนั้นฉันย้าย HTML ออกจากรหัส จากนั้นทุกครั้งที่ฉันต้องทำการเปลี่ยนแปลงบางส่วนของรหัสฉันใช้เวลาสักครู่เพื่อปรับโครงสร้างบางส่วนของมัน ในที่สุดความเร็วการพัฒนาเพิ่มขึ้นมากจนลูกค้ามีความสุขมาก พวกเขาจะขอเปลี่ยนแปลงเครื่องสำอางและแทนที่จะบอกพวกเราว่า "จะใช้เวลา 2 วัน"

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

สิ่งสุดท้ายที่เขียนใหม่ทั้งหมดบางครั้งเป็นทางออกเดียว แต่มักจะยากที่จะประเมินค่าใช้จ่ายในการจัดการ


0

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

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