คำถามไม่ได้เกี่ยวกับว่าการเขียนโปรแกรมเมตาไม่เป็นไรหรือไม่ แต่ค่อนข้างจะดีกว่าคนอื่น ๆ ในทีมดังนั้นนี่คือจุดโต้เถียงสองสามข้อเกี่ยวกับวิธีที่ฉันเห็น ...
ฉันเพิ่งย้ายไปทำงานใหม่ที่ฉันทำงานในทีมที่ใหญ่กว่าและ [meta-programming] กังวลเพื่อนร่วมงานของฉันเพราะพวกเขาไม่เข้าใจ
พวกเขากังวลว่าคุณจะดีขึ้นแล้ว ดีแล้ว. คุณจะเป็นผู้เชี่ยวชาญคนใหม่ คุณเพิ่งทำลายโลกที่เป็นอยู่ของพวกเขา
ฉันพยายามยกระดับความสามารถของภาษาอย่างเต็มที่ แต่เพื่อนร่วมงานของฉันบางคน (ไม่ใช่ทั้งหมด) เข้าใจว่าเป็นความเสี่ยง (บางคนยินดีต้อนรับวิธีการ)
แน่นอนว่าไม่มีใครชอบมีทักษะน้อยกว่าคนอื่นดังนั้นพวกเขาจึงพยายามหยุดคุณไม่ให้ใช้เทคนิคที่ซับซ้อนเกินไปสำหรับพวกเขา พวกเขาไม่สามารถเข้าใจหรือไม่ไปเพราะพวกเขารู้สึกปลอดภัยในขณะนี้
ฉันยอมรับว่ามันเป็นปัญหาในการเขียนโค้ดที่ไม่มีใครในทีมสามารถเข้าใจได้
ฉันไม่. ฉันคิดว่ามันแสดงความเชี่ยวชาญของคุณ
คำถามของฉันคือใครถูกต้องฉันควรทำอย่างไร
คุณควรใช้ทักษะทั้งหมดของคุณในการเขียนรหัสที่ดีที่สุดที่คุณสามารถเขียนได้และอย่ามองไปที่คนที่ไม่เข้าใจ มิฉะนั้นคุณจะติดอยู่ในระดับของพวกเขาและเป็นเพียง coder ธรรมดา มันเป็นเรื่องดีที่จะดีกว่าคนอื่นและเป็นเรื่องดีที่จะพยายามดีกว่าพวกเขา คุณจะไม่ได้รับประสบการณ์ใหม่ ๆ ถ้าคุณไม่ลองใช้สิ่งใหม่หรือทำสิ่งที่แตกต่าง
ฉันรู้ว่าฉันจะถูกลดระดับลง แต่นี่เป็นลักษณะที่ปรากฏ ไม่ใช่อาชญากรรมที่จะดีกว่าคนอื่น ๆ ในทีมและไม่ใช่อาชญากรรมที่จะใช้ทักษะของคุณ เป็นเพียงว่าทุกคนกลัวที่จะยอมรับ ... เพราะพวกเขาอยู่ในด้านที่ไม่ใช่ฝีมือและเกลียดว่าผู้ชายคนใหม่ก็สามารถทำสิ่งที่พวกเขาทำไม่ได้ หากพวกเขาฉลาดพวกเขาจะขอความช่วยเหลือและขอคำแนะนำและไม่วิจารณ์รหัสของคุณว่าเข้าใจยาก
แก้ไข
ดูเหมือนจะมีความสับสนมากมายเกี่ยวกับคำถามนี้ ในขณะที่ความคิดเห็นแสดงให้เห็นว่าหลายคนคิดว่ามันเกี่ยวกับการอ่านรหัสทั่วไป ไม่มันไม่ใช่. เป็นเรื่องเกี่ยวกับคุณสมบัติหรือโครงสร้างภาษาบางอย่างที่ต้องห้ามหรือหลีกเลี่ยงเนื่องจากสมาชิกในทีมบางคนไม่เข้าใจ
คำตอบของฉันคือไม่มี พวกเขาไม่ควรถูกห้าม หากคุณต้องการห้ามบางสิ่งบางอย่างคุณจะทำอย่างไร คุณต้องเตรียมแบบสอบถามบางอย่างเพื่อค้นหาว่าสมาชิกในทีมของคุณสามารถและไม่สามารถ - หรือไม่ต้องการเรียนรู้เพราะฉันคิดว่าฟีเจอร์ภาษาที่เป็นประโยชน์ทุกที่ดังนั้นการรู้จักพวกเขาและสามารถใช้พวกเขาได้เสมอ ดีและยิ่งคุณรู้รหัสที่ดีกว่าที่คุณสามารถเขียนได้ นอกจากนี้คุณยังต้องใช้เครื่องชั่งเพื่อกำหนดคุณลักษณะที่เป็นคุณสมบัติระดับเริ่มต้นระดับกลางหรือระดับสูง
เพื่อแสดงให้เห็นว่าข้อ จำกัด ดังกล่าวไร้สาระมาเป็นตัวอย่างที่ง่ายมาก: คุณจะได้รับการว่าจ้างเป็นวิศวกรซอฟต์แวร์ แต่หัวหน้าในอนาคตของคุณจะบอกคุณว่าคุณจะไม่ได้รับอนุญาตให้ใช้do/while
ลูปเพราะมีคนอยู่สองสามคน ทีมที่ไม่เคยใช้มาก่อนและจะไม่ไปเพราะพวกเขามักจะใช้for
ลูปสำหรับทุกสิ่งดังนั้นพวกเขาจึงพบว่าdo/while
ลูปสับสน
ตอนนี้คุณคิดว่านี่โง่และบ้าแล้วใช่ไหม แต่เพื่อไม่ให้มีคุณสมบัติอื่น ๆ กวีบางคนสามารถใช้พวกเขาและคนอื่น ๆ ไม่ต้องการเรียนรู้
ทำไมคุณควรสร้างโค้ดที่แย่กว่านี้ถ้าคุณรู้ว่ามีบางอย่างที่ทำให้คุณทำแบบเดียวกันโดยใช้ความพยายามน้อยลงและยังส่งผลให้โค้ดที่อ่านง่ายกว่านั้นคือ
และไม่สำคัญว่าคุณจะใช้คุณลักษณะภาษาขั้นพื้นฐานหรือคุณสมบัติขั้นสูงเพียงใดคุณสามารถใช้คุณสมบัติใดภาษาหนึ่งเพื่อสร้างรหัสที่ไม่สามารถแยกออกได้และไม่สามารถแก้ไขได้อย่างเท่าเทียมกันดังนั้นนี่จึงเป็นหัวข้อที่แตกต่างอย่างสิ้นเชิง