ฉันเป็นผู้รับจ้างอิสระดังนั้นฉันจึงสัมภาษณ์ 3-4 ครั้งต่อปีเพื่อหากิ๊กใหม่ ๆ ตอนนี้ฉันอยู่ในรอบนั้นและกลับกลายเป็นโอกาสแม้ว่าฉันจะรู้สึกว่าการสัมภาษณ์เป็นไปด้วยดี สิ่งเดียวกันเกิดขึ้นกับฉันสองสามครั้งในปีนี้
ตอนนี้ฉันไม่ได้เป็นคนที่สมบูรณ์แบบและฉันไม่คาดหวังว่าจะเป็นแบบที่ดีสำหรับทุกองค์กร ที่กล่าวว่าแม่นเฉลี่ยของฉันต่ำกว่าปกติดังนั้นฉันถามผู้สัมภาษณ์สุดท้ายของฉันสำหรับข้อเสนอแนะที่สร้างสรรค์และเขาส่ง!
สิ่งสำคัญตามที่ผู้สัมภาษณ์กล่าวคือฉันดูเหมือนจะเอนตัวไปสู่การใช้ abstractions (เช่น LINQ) มากกว่าที่จะไปสู่อัลกอริทึมที่ต่ำกว่าและมีการเติบโตแบบออร์แกนิก
บนพื้นผิวสิ่งนี้ก็สมเหตุสมผล - ในความเป็นจริงมันทำให้คนอื่นปฏิเสธด้วยเช่นกันเพราะฉันพูดเรื่อง LINQ ในการสัมภาษณ์เหล่านั้นด้วยและดูเหมือนว่าผู้สัมภาษณ์รู้เรื่อง LINQ ไม่มากนัก (แม้ว่าพวกเขาจะเป็น. NET ผู้ชาย)
ดังนั้นตอนนี้ฉันเหลือคำถามนี้:ถ้าเราควรจะ "ยืนอยู่บนไหล่ของยักษ์" และใช้ abstractions ที่มีให้เรา (เช่น LINQ) แล้วทำไมบางคนคิดว่ามันต้องห้าม? มันไม่สมเหตุสมผลที่จะดึงรหัส "ปิดชั้นวาง" ถ้ามันบรรลุเป้าหมายเดียวกันโดยไม่มีค่าใช้จ่ายเพิ่มเติมหรือไม่
สำหรับฉันแล้วดูเหมือนว่า LINQ แม้ว่ามันจะเป็นนามธรรม แต่ก็เป็นเพียงนามธรรมของอัลกอริทึมเดียวกันทั้งหมดที่จะเขียนเพื่อให้บรรลุจุดสิ้นสุดเดียวกัน เฉพาะการทดสอบประสิทธิภาพเท่านั้นที่สามารถบอกคุณได้ว่าวิธีการที่กำหนดเองของคุณดีกว่าหรือไม่ แต่ถ้าสิ่งใดที่ LINQ มีคุณสมบัติตรงตามข้อกำหนดทำไมไม่ต้องเขียนชั้นเรียนของคุณเองในตอนแรก
ฉันไม่ได้ตั้งใจจะให้ความสำคัญกับ LINQ ที่นี่ ฉันแน่ใจว่าโลกของ JAVA นั้นมีบางสิ่งที่คล้ายคลึงกันฉันแค่อยากจะรู้ว่าทำไมคนบางคนถึงรู้สึกอึดอัดใจกับความคิดที่จะใช้สิ่งที่เป็นนามธรรมที่พวกเขาไม่ได้เขียน
UPDATE
ตามที่ Euphoric ชี้ให้เห็นไม่มีอะไรเทียบได้กับ LINQ ในโลก Java ดังนั้นหากคุณกำลังพัฒนาบน. NET สแต็คทำไมไม่ลองและใช้ประโยชน์จากมันเสมอไป? เป็นไปได้ไหมที่คนเราไม่เข้าใจอย่างถ่องแท้ว่าทำอะไร?
objectCollection.Where(oc=>oc.price > 100)
เช่น จะไม่เป็นการใช้สิ่งที่เป็นนามธรรมหรือไม่? บางทีคุณสามารถบอกฉันว่าฉันหายไปที่นี่ . .