“ การเขียนโปรแกรมแบบไร้ egoless” คืออะไร?


12

ครั้งแรกที่ฉันได้ยินคำนี้ประมาณสิบห้าปีที่ผ่านมา

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

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

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


7
การเขียนโปรแกรม Ego-galore นั้นสนุกกว่าการเขียนโปรแกรม ego-less มาก
งาน

2
@ งาน: ใช่และอย่างที่ Mythbusters พูดทุกอย่างก็ดีขึ้นด้วย C-4
บ๊อบเมอร์ฟี่

คำตอบ:


17

จากทั้งหมดที่กล่าวมา

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

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


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

@ Bobmurphy ฉันรู้สองวิธีที่มีประสิทธิภาพเพื่อหลีกเลี่ยงการเชื่อฟัง 1) ไม่ให้อึเกี่ยวกับอุดมคติ 2) การใส่เวลาและพลังงานในการสร้างทีมพัฒนาที่มีอุดมคติร่วมกัน หลายคนยอมแพ้ใน 2 เขียนเอกสารมาตรฐานที่ไม่มีใครอ่านและค่อย ๆ เลื่อนเข้าเป็น 1 สิ่งเดียวที่ต้องทำคือการตรวจสอบโค้ดที่เกี่ยวกับความรู้สึกของผู้คน ไม่เกี่ยวกับกฎต่อไปนี้
candied_orange

8

วลีดังกล่าวไม่มีความหมายมาตรฐาน ISO ดังนั้นผู้คนที่แตกต่างกันจึงสามารถหมายถึงสิ่งต่าง ๆ ได้อย่างถูกกฎหมาย

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


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

@ บ๊อบ: ฉันไม่เห็นว่า eoless a la Weinburg นำไปสู่การไม่ขอโทษสำหรับข้อบกพร่อง นั่นฟังดูเป็นเรื่องที่น่ารักสำหรับฉัน
David Thornley

นั่นคือสิ่งที่ฉันคิดไม่ออก
Bob Murphy

6

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

ความหมายตามที่ฉันเข้าใจคำว่ามีความเป็นเจ้าของร่วมเพื่อให้แต่ละคนในทีมทำงานเพื่อผลประโยชน์ของทุกคนมากกว่าแค่ตัวเอง " David Logan เกี่ยวกับความเป็นผู้นำของชนเผ่า " เป็น TED Talk ที่เผ่าระดับ 4 จะเป็นหนึ่งในคนที่ไร้ความรู้สึกในแง่หนึ่ง


1

ฉันเป็นคนวัยกลางคน ฉันเคยไปหลายประเทศและโชคดีพอที่จะพบปะผู้คนที่ยอดเยี่ยมเช่นนักดาราศาสตร์และพระสงฆ์นิกายเซน

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

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

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

ขอโทษสำหรับภาษาอังกฤษที่ไม่ดีของฉัน ภาษาแม่ของฉันเป็นภาษาญี่ปุ่น


+1: ฉันเคยเห็นมาหลายครั้งแล้วไม่ใช่แค่เขียนโปรแกรม
Bob Murphy

BTW ฉันวัยกลางคนด้วย (52) เมื่อฉันอยู่ในวัยรุ่นและวัยยี่สิบฉันแน่ใจว่าฉันรู้อะไรมากมายหลายอย่าง ตอนนี้ฉันแน่ใจว่าฉันไม่ได้รู้อะไรมาก มันค่อนข้างสนุกที่ได้ดูหลานชายอายุ 18 ปีของฉันมั่นใจในตัวเองมาก
Bob Murphy

@ BobMurphy "ยิ่งฉันเรียนรู้มากเท่าไหร่ฉันก็รู้ว่าฉันรู้น้อยแค่ไหน"
gbjbaanb

1

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

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

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

อีกครั้งเพียงความเห็นของฉันตามประสบการณ์ รู้สึกอิสระที่จะทุบตีฉันในเรื่องนี้ :)

... และตอนนี้ฉันก็รู้ว่ากระทู้นี้มีความเก่า: P


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