โปรแกรมเมอร์บางครั้งจงใจใช้โค้ดที่ซับซ้อนหรือไม่? [ปิด]


26

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

นี่เป็นเรื่องปกติสำหรับโปรแกรมเมอร์ ..... หรือฉันแค่ไม่คิดในแง่ที่ถูกต้อง


5
1. ใช่ฉันคิดว่าบางครั้ง 2. ใช่อย่างน้อยโปรแกรมเมอร์บางคนอย่างน้อยบางครั้งทำให้รหัสของพวกเขาซับซ้อนเกินไปอย่างน้อยก็บางครั้งก็จงใจ 3. คดีปิด
งาน

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

คำตอบ:


18

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

โค้ดที่แย่ที่สุดที่ฉันเคยเห็นคือวิธีการที่มีโค้ดมากกว่า 2,000 บรรทัด ไม่ต้องสงสัยเลยว่ารหัสนี้ซับซ้อน แต่ก็แย่มาก

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

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

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


32

ฉันเห็นโค้ดจำนวนมากที่ซับซ้อนกว่าที่จำเป็นและเกือบทุกครั้งด้วยเหตุผลสามประการนี้:

1) over-engineered เนื่องจากลักษณะทั่วไปก่อนกำหนดหรือพยายามคาดการณ์ความต้องการในอนาคตที่ไม่เคยเกิดขึ้น

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

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


ฉันมีความผิดในข้อที่ 2 ฉันกลัว ด้วยประสบการณ์ (และวุฒิภาวะ?) ตอนนี้ฉันมักจะละเว้นตัวเอง แต่ ... และทดลองทำที่บ้านแทน :)
Matthieu M.

ฉันเห็นคนทำ 1 ตลอดเวลาพวกเขาจบลงด้วยการสร้างงานให้ตัวเอง 5 เท่า
Ally

11

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

ดังที่ Martin Fowler กล่าวผู้ที่เรียนรู้เทคโนโลยีใหม่มีปัญหาระยะสั้นซึ่งเป็นแนวทางขับเคลื่อน "เทคโนโลยี"


4
-1: ตามที่หนังสือส่วนใหญ่พูดว่านักพัฒนาซอฟต์แวร์ที่ดีรู้วิธีทำให้มันง่าย - คุณพูดถูกเกี่ยวกับเรื่องนี้อย่างแน่นอน แต่คุณก็บอกเป็นนัยว่าการใช้เทคโนโลยีใหม่ ๆ ในทางที่ผิดนั้นเป็นสาเหตุที่ใหญ่ที่สุด คุณผิดเกี่ยวกับเรื่องนั้น เชื่อฉันสิมีโค้ดที่ซับซ้อนมากมายที่ไม่เกี่ยวข้องกับการใช้เทคโนโลยีในทางที่ผิด
จิม G.

ฉันไม่ได้หมายความว่ามันเป็น "สาเหตุที่ใหญ่ที่สุดของรหัส overcomplicating"? มันเป็นปัญหาอย่างแน่นอน "เฮ้ฉันเพิ่งเรียนรู้รูปแบบ X ซึ่งฉันสามารถนำไปประยุกต์ใช้ได้" - Patternitus คุณใส่คำเข้าไปในปากของฉันที่นั่นจิม
Martin Blore

4
"ฉันทำจดหมายนี้นานกว่าปกติเพียงเพราะฉันไม่มีเวลาทำให้สั้นลงเท่านั้น" - Blaise Pascal ใช้ได้กับที่นี่เช่นกัน "ซับซ้อน" มักเป็นสัญญาณของการเข้ารหัสที่รีบเร่งขี้เกียจหรือไร้ความสามารถ
Bill

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

10

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

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


1
นั่นเป็นวิธีที่ฉันดู IE ถ้ามันง่ายเกินไปไม่คุ้มค่าใช่มั้ย

@Mercfh ฉันไม่เข้าใจมุมมอง ความง่ายในการแก้ปัญหาเกี่ยวข้องกับประสิทธิผลอย่างไร
GSto

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

7

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


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

7

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

ฉันมักจะพบว่าฟังก์ชั่นขนาดใหญ่ดู "ง่าย" จนกว่าคุณจะต้องทำการเปลี่ยนแปลงจากนั้นมันจะซับซ้อนอย่างรวดเร็ว

กล่าวอีกนัยหนึ่งง่ายๆคือในสายตาของคนดูในหลายกรณี


2
+1: โปรแกรมเมอร์มากเกินไปไม่คิดเกี่ยวกับมัน
Luca

5

ปัญหาคือถ้าคุณไม่เห็นวิธีแก้ปัญหาอย่างง่าย ๆ (นี่คือที่ที่การพูดคุยกับเพื่อนร่วมงานเข้ามาเล่น) หรือถ้าคุณพูดคุยกันเร็วเกินไป

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

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


4

ในบางกรณีอาจเป็นความซับซ้อนของการหาวิธีแก้ปัญหาที่เรียบง่าย

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

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


4
ข้อความอ้างอิงอื่นที่เกี่ยวข้องคือ "ฉันจะเขียนจดหมายสั้นลง แต่ไม่มีเวลา"
user16764

3
“ ความรู้ที่สมบูรณ์แบบนั้นไม่ได้เกิดขึ้นเมื่อฉันเพิ่ม ajouter, mais quand il n'y a บวก rien à retrancher” (“ ดูเหมือนว่าความสมบูรณ์แบบไม่ได้เกิดขึ้นเมื่อมีอะไรเพิ่มเติมที่จะเพิ่ม แต่เมื่อ ไม่มีอะไรให้ลบอีกแล้ว”) - นักบินกวีและวิศวกรชาวฝรั่งเศส Antoine Marie Roger Vicomte de Saint-Exupéry, 1939 (จากหนังสือTerre des Hommes ( ลมทรายและดวงดาว ))
Jörg W Mittag

ขอบคุณดูเหมือนว่าฉันไม่เคยรู้ที่มาที่แท้จริง :-) ดี
Stephen Bailey

3

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


3
อุ๊ย! ฉันกำลังจะให้ +1 กับคุณ แต่จากนั้นฉันเห็นการเปรียบเทียบของคุณกับการเมืองและนั่นก็เป็นจุดอ่อนที่ดีที่สุด // มันเป็นเรื่องจริง - มีสิ่งที่ทำให้งงงวยการเคลื่อนไหวที่สูญเปล่าการโบกมือและความสนใจเป็นพิเศษที่ฝังอยู่ในการเมืองและด้วยเหตุนี้ตั๋วเงินอาจกลายเป็นเรื่องที่ซับซ้อน แต่ overcomplication เป็นผลพลอยได้จาก obfuscation, การเคลื่อนไหวที่สูญเปล่า, โบกมือและความสนใจพิเศษ ไม่ใช่สาเหตุที่แท้จริง
จิม G.

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

1
@JimG ใช่ฉันเห็นด้วยกับคุณ ... ดูเหมือนว่าฉันจะมีปัญหาหลายอย่างเกี่ยวกับการแก้ปัญหาทางการเมืองคือนักการเมืองที่อ้างว่ามีทางออกที่ง่าย (ของพวกเขา!) สำหรับปัญหาที่ซับซ้อนมากซึ่งไม่มีทางออกที่ง่ายจริงๆ
Michael

2

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


1

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

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

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


เป็นเรื่องที่น่าอัศจรรย์ว่าระบบจำนวนมากเริ่มต้นด้วยแกนหลักที่เรียบง่ายจริง ๆ ซึ่งเกือบจะเหมาะกับความต้องการ แต่ขาดความชัดเจนในหลาย ๆ ด้านแล้วจบลงด้วยการเพิ่มความซับซ้อนจำนวนมากเพื่อจัดการกับช่องว่างจำนวนมากที่สามารถหลีกเลี่ยงได้ พิจารณาการออกแบบที่เรียบง่ายของประเภทจำนวนเต็มของ C และกฎที่ซับซ้อนที่แปลกประหลาดบางอย่างที่ไปกับพวกมัน ถ้าสำหรับแต่ละประเภทจะมีตัวเลือก "ควรเป็นแบบเลื่อนได้" ซึ่งจะมีจำนวนประเภทเพิ่มขึ้นสองเท่า (แม้ว่าจะไม่ใช่ในลักษณะที่แตกต่างจากตัวระบุเช่นvolatileฯลฯ ) แต่ ...
supercat

... มันจะมีกฎการเลื่อนระดับ / การส่งเสริมสมดุล สั้น ๆ ที่ไม่ได้รับการเลื่อนตำแหน่งที่ไม่ได้ลงชื่อเพิ่มใน int ที่สามารถเลื่อนตำแหน่งได้จะให้สั้นที่ไม่ได้ลงนามไม่สามารถเลื่อนตำแหน่งได้ไม่ว่าจะshortมีขนาดใหญ่หรือไม่intก็ตาม เลื่อนตำแหน่งunsigned shortเพิ่มให้กับการเลื่อนตำแหน่งจะให้ผลผลิตint intการเพิ่มสิ่งที่ลงชื่อและไม่ได้ลงชื่อที่มีขนาดเดียวกันหรือเพิ่มสิ่งที่ไม่สามารถประชาสัมพันธ์ได้ขนาดต่างกันจะเป็นข้อผิดพลาด เพิ่มความซับซ้อนนิดหน่อยไว้ข้างหน้าและมุมที่แปลกประหลาดล่องหายไป
supercat

1

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


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

0

อาจเป็นปัญหาของความผิดพลาดแบบคลาสสิก?

30. นักพัฒนาทองคำชุบ

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

  • Steve McConnell การพัฒนาอย่างรวดเร็ว

0

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


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

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

-1

ใช่ ... และฉันจ่ายเงินหลายครั้งเกินไป

ไวท์บอร์ดของฉันตอนนี้มีข้อความเป็นเครื่องหมายดอกจันที่อยู่ด้านบนสุดซึ่งอ่านได้

"ถ้ามันไม่ง่ายมันไม่ถูก"

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

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

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