เลือกความพยายามในการออกแบบรหัสหรือความเกียจคร้านในโลกธนาคาร


23

ฉันทำงานเป็นเวลาสองปีในวาณิชธนกิจที่ยิ่งใหญ่

ฉันทำโครงการด้านเทคนิคบางอย่างด้วยความปรารถนาที่จะสร้างโค้ดที่มีประสิทธิภาพสูงสุดโดยคำนึงถึงรูปแบบการออกแบบที่ดีที่ปรับได้หลักการ SOLID กฎหมายของ demeter และหลีกเลี่ยงรหัสที่ซ้ำกันทุกประเภท ...

เมื่อส่งมอบในการผลิต => ศูนย์ข้อบกพร่องทั้งหมดเกิดขึ้นตามที่คาดไว้

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

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

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

หรือในทางตรงกันข้ามพวกเขาควรเรียนรู้หลักการ OO ขั้นพื้นฐานและแนวปฏิบัติที่ดีที่สุดเพื่อปรับตัวให้เข้ากับรหัสของฉันหรือไม่?


19
มันยากที่จะทะยานเหมือนนกอินทรีเมื่อคุณทำงานกับไก่งวง ;-)
JonnyBoats

8
เปลี่ยนองค์กรของคุณหรือเปลี่ยนองค์กรของคุณ - Martin Fowler
Don Roby

9
@ Mik378 คุณอาจมีปัญหาในการสื่อสาร หากคุณบันทึกรหัสของคุณอย่างเลอะเทอะในขณะที่คุณเขียนคำถามนี้ (ยิ่งมี "cruft" OO มากขึ้นเท่าไหร่เอกสารที่คุณต้องการก็ยิ่งมากขึ้นเท่านั้นเพื่อให้ผู้คนรู้ว่าITradeSettlementVisitorอินเทอร์เฟซนี้ควรจะทำอย่างไร) มันเป็นสิ่งหนึ่งที่จะเขียนโค้ดที่สวยงามที่คุณชอบมันค่อนข้างจะเป็นโครงสร้างและจัดทำเอกสารในลักษณะที่ทำให้ผู้อื่นสามารถเข้าถึงและใช้งานได้
quant_dev

2
@quant_dev: ฉันคิดว่าคุณคิดว่าเกี่ยวกับ Mik378 มากเกินไป คำถามของเขาดูเหมือนไม่ได้พูดกับฉันอย่างแย่ เขาไม่ได้เป็นเจ้าของภาษา ฉันไม่ชอบคำฟุ่มเฟื่อยและการออกแบบ overengineered ใน OO มากเท่าที่คุณทำ แต่สถานการณ์ Mik378 อธิบายยังดังกริ่ง: ฉันได้ทำงานกับโปรแกรมเมอร์มากเกินไปที่ไม่เข้าใจสิ่งที่ง่ายเช่นการแสดงออกแบบบูลีน (ดังนั้นพวกเขาจะ เขียน "if (exp) ถ้างั้น True True False") ... อาจเป็นไปได้ว่าคนประเภทนี้จะต้องหวาดกลัวด้วยรูปแบบการออกแบบความหลากหลายและดังนั้นจึงจะเปลี่ยนกลับเป็นรหัสขั้นตอนเก่าแบบธรรมดา
Andres F.

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

คำตอบ:


20

ผู้จัดการโครงการของฉันบอกว่าฉันผิดจริง ๆ และเป็นนักอุดมคติในโลกของธนาคาร

GTFO!

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

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

ใช่ฉันรู้ว่านี่ไม่ใช่คำตอบปกติของฉัน แต่จริง ๆ แล้วถ้าคุณไม่สามารถเล่นเกมการเมืองใน บริษัท นี้ GTFO

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

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


4
+1 - เมื่อฉันรู้ว่า GTFO คืออะไร ... ( urbandictionary.com/define.php?term=gtfo )
Reddog

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

+1 ฉันเห็นด้วยอย่างสมบูรณ์ ธนาคารนี้ดูเหมือนจะไม่ได้มีสภาพแวดล้อมการทำงานที่ดีและปัญหาของมันดูเหมือนจะเอาชนะไม่ได้: โปรแกรมเมอร์ที่ไม่ดีการจัดการที่ไม่ดี GTFO แน่นอน!
Andres F.

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

+1, หากสามารถมอบการโหวตเพิ่มให้คุณได้คุณจะได้ 1,000 จากฉัน เมื่อทำงานในธนาคารเพื่อการลงทุนฉันรู้ว่า Mik378 กำลังทำอะไรอยู่ มันเป็นแหล่งเพาะพันธุ์สำหรับพฤติกรรมที่เป็นพิษผู้ตอบโต้ขั้วและ egomania ไม่ใช่สภาพแวดล้อมความคิดสำหรับการส่งเสริมความเป็นเลิศทางเทคนิค
Desolate Planet

18

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

  • นี่คือเรื่องเงิน ในฐานะที่เป็นงาน dev ใด ๆ ในความเป็นจริง แต่เนื่องจากคุณเน้นสภาพแวดล้อมของธนาคารสิ่งนี้จะทำงานได้ดียิ่งขึ้น;) แสดงให้พวกเขาเห็นว่าสไตล์ของคุณประหยัดเงิน ค้นหาตัวอย่างของการเปลี่ยนแปลงข้อกำหนดที่สามารถทำได้ง่าย ๆ เพราะการออกแบบของคุณ พยายามหารหัสอื่น ๆ (คุณต้องทำให้แน่ใจว่าคุณไม่ก้าวร้าวเกินไปที่นี่ แต่เดี๋ยวก่อนมันเกี่ยวกับการเปรียบเทียบรูปแบบของรหัส) ซึ่งมีแนวโน้มที่จะแตกเร็ว ๆ นี้และแสดงวิธีที่คุณไม่ต้องทำ สนใจเกี่ยวกับปัญหาดังกล่าวเพราะรหัสของคุณมีคุณภาพที่ดีกว่าในการเริ่มต้น

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


ขอบคุณสำหรับคำตอบของคุณ ฉันได้สังเกตคำแนะนำของคุณแล้ว :)
Mik378

ฉันจะเพิ่มปัญหา FizzBuzz ง่ายๆ เขียนใน Java แล้วทำมันอีกครั้งในลักษณะ TDD กลายเป็นอ่านไม่ได้ทันใดนั้นมัน ;-)
Martijn Verburg

@Martijn Verburg - คุณคิดว่า TDD นำไปสู่รหัสที่อ่านไม่ได้?
Don Roby

@ Don Roby - ในบางครั้งใช่โดยเฉพาะอย่างยิ่งเมื่อต้องรับมือกับบางสิ่งบางอย่างเช่น FizzBuzz ในภาษา OO
Martijn Verburg

+1 @ Nicolas78 "นอกจากนี้ยังเป็นไปได้ที่จะออกแบบ OOP มากเกินไป" - เช่นการสร้างชนิดข้อมูลดั้งเดิมวัตถุเช่น int เช่น
therobyouknow

16

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

มันเกิดขึ้นกับคุณได้มั้ย

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

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


1
+1000 เห็นด้วย รหัสสำหรับมนุษย์ ข้อแม้นั้นแน่นอนว่าผู้เขียนโค้ดคนอื่นควรสามารถอ่านสิ่งที่ผู้เขียนส่วนใหญ่เขียน ทุกคนที่ไม่เข้าใจพื้นฐานควรทำการปรับปรุง
ผู้ถือเลน

3
+1 @temptar สำหรับ "มีอะไรเกิดขึ้นกับคุณบ้างไหมที่พวกเขาอาจพูดถูก" และ "รหัสที่สามารถอธิบายได้ว่ามีความซับซ้อนนั้นแทบจะไม่สามารถอธิบายได้ว่าดีโดยเฉพาะ"
therobyouknow

2
-1: ฉันไม่คิดว่าพวกเขาถูกต้องเพียงแค่ระดับอาวุโสและฉันคิดว่าการอ่านคำถามให้ละเอียดยิ่งขึ้น วลีสำคัญจาก OP คือ "หลีกเลี่ยงรหัสที่ซ้ำกันทุกประเภท ... " เขาพยายามที่จะทำให้โค้ดแห้ง แต่การทำเช่นนี้จำเป็นต้องมีความซับซ้อนที่เพื่อนร่วมงานของเขาขาดอย่างเห็นได้ชัด นอกจากนี้เขายังอ้างคำแนะนำเพื่อนร่วมงานของเขาว่า "เพียงเพิ่ม if ... อินสแตนซ์ของ" นั่นยังบอกฉันว่า OP อยู่ในเส้นทางที่ถูกต้องและเพื่อนร่วมงานของเขากำลังสร้าง WTF อันยิ่งใหญ่
วินไคลน์

สิ่งที่ฉันเป็นห่วงคือ OOP "ซับซ้อนเกินไป" อาจเป็นสิ่งที่ดี แต่มันก็สามารถซับซ้อนได้อย่างรวดเร็วมาก ฉันสงสัยว่า Original Poster อาจดื่ม OOP cool aid aid และไม่เข้าใจว่ามันไม่ได้เป็นวิธีที่ดีที่สุดในการเขียนโค้ดและเขาอาจจะแนะนำความซับซ้อนเป็นพิเศษที่ไม่จำเป็น
Zachary K

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

10

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

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

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

สถานที่เดียวที่คุณใส่ใจในรายละเอียดและราคาเริ่มต้นจึงเป็นที่ยอมรับได้คือระบบวิกฤตชีวิตระดับ 1 เช่น Avionics / Aerospace, ยานยนต์, ทหารและการแพทย์


1
+1 @mattnz สำหรับ "คุณมีทางเลือกปรับเปลี่ยนหรือออกจาก"
therobyouknow

2
ผมไม่เห็นด้วย - นี้เป็นธนาคาร พวกเขามักจะชอบที่จะไม่มีข้อบกพร่องในซอฟต์แวร์ของพวกเขาเป็นข้อผิดพลาดอาจเติบโตค่อนข้างแพง โซลูชันอาจทำงานเป็นเวลาหลายปีหรือหลายทศวรรษ

2

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

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


+1 @jfrankcarr สำหรับการสังเกตอย่างชาญฉลาดของ "อาจได้รับมอบหมายขยะ" (รูปแบบของการเลิกจ้างเชิงสร้างสรรค์)
therobyouknow

2

ก่อนที่จะใช้มาตรการที่รุนแรงเช่นการเปลี่ยนนายจ้างของคุณฉันจะพยายามปรับปรุงความสามารถของคุณในการอธิบายผู้ที่ไม่ใช่โปรแกรมเมอร์เช่นคุณผู้บริหารว่าทำไมการเข้ารหัสของคุณจึงดีกว่าสำหรับ บริษัท และประหยัดเวลาและเงิน และตรวจสอบให้แน่ใจว่าคุณไม่ได้ใช้รูปแบบการออกแบบเพียงเพื่อประโยชน์ของรูปแบบการออกแบบ - คุณแน่ใจหรือไม่ว่าคุณได้ปฏิบัติตามกฎของ KISS และ YAGNI ด้วย? (ตกลงรูปแบบกลยุทธ์และ polymorphism ไม่ใช่วิทยาศาสตร์จรวดให้เวลากับเพื่อนร่วมงานของคุณในการปรับตัวและอธิบายเหตุผลที่คุณเลือกวิธีการนั้น)


ฉันเห็นด้วยปัญหาคือพวกเขาไม่ต้องการเรียนรู้ไม่ต้องการเปลี่ยนความคิด (ฉันไม่ใช่อัจฉริยะใน Java แต่เมื่อฉันไม่เข้าใจสิ่งที่คนส่วนใหญ่คิดว่าเป็นสิ่งที่ยอดเยี่ยม รู้ฉันจะพยายามเรียนรู้ (หนังสือบทความทางอินเทอร์เน็ตสแต็คโอเวอร์โฟลว์ ฯลฯ ... ) สรุปแล้วพวกเขาไม่ต้องการปวดหัวกับรูปแบบ (ฉันพูดรูปแบบ แต่ฉันสามารถพูดได้ว่า "ยอดเยี่ยม" หลักการของการเขียนโปรแกรมเพิ่มเติม โดยทั่วไป) ที่ไม่นำเงินมาให้พวกเขามากนัก ... มันยากที่จะพูด แต่มันก็เป็นความจริงถ้าแอปพลิเคชันทำงานได้ดี => ฉันจะไม่เขียนหัวข้อนี้แน่นอน
Mik378

@ Mik378: คุณกำลังพูดถึงสิ่งที่ "คนอื่นทำผิด" มาก แน่ใจว่าทุกสิ่งที่คุณทำถูกต้อง?
Doc Brown

@DocBrown polymorphism มีข้อเสียที่แตกต่างกันในการแยกส่วนตรรกะในไฟล์ที่อินสแตนซ์ที่เรียบง่ายของเก็บไว้ในวิธีการเดียว บางทีหน่วยงานมีขนาดเล็กเกินไป?

2

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

ตัวอย่างชีวิตจริงจากโครงการจริงก็ถูกพูดถึงเช่นกัน คำติชมจากผู้เข้าร่วม AFAIK เป็นบวกมาก แม้ว่าจะเป็นการยากที่จะวัดผลประโยชน์ที่แท้จริง

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


ฉันชอบความคิดนี้มาก
ล่อลวง

2

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

ยังดีกว่าไปที่ InfoQ และดูการพูดคุยของ Rich Hickey ใน"Simple Made Easy"


1

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

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


0

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

รหัสของคุณอาจมีคุณภาพสูง (ความเป็นจริง unproven) แต่พวกเขามีนโยบาย (แน่นอนว่าเป็นความจริงนรก)

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

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

(จากนั้นอีกครั้ง บริษัท ของคุณอาจไม่มีนโยบายภายในกับการออกแบบ OO แต่วิศวกรที่ผ่านการฝึกอบรมอย่าง COBOL ที่เงอะงะที่จะพยายามแก้ไขรหัสของคุณจะทำให้บางขึ้นจากอากาศและ IMHO ในสถานการณ์กรณีที่เลวร้ายที่สุดเขา ' จะมีโอกาส 40% ในการทำคะแนนการโจมตีคริติคอล)


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

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

@ZJR คุณถูกพาไปที่นี่ด้วยคำทำนายของ OP ที่ทำเวลาคุกสำหรับการใช้ OO รหัสธนาคารส่วนใหญ่ไม่อยู่ภายใต้การตรวจสอบข้อเท็จจริงดังกล่าว
quant_dev

0

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

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