ข้อมูลเชิงลึกหรือคำถามประเภทใดที่จะนำคุณไปสู่การกำหนดทักษะ OOAD ของบุคคล
ข้อมูลเชิงลึกหรือคำถามประเภทใดที่จะนำคุณไปสู่การกำหนดทักษะ OOAD ของบุคคล
คำตอบ:
คุณสามารถแสดงการออกแบบ OO แบบครึ่ง ๆ ของปัญหาง่าย ๆ และหารือเกี่ยวกับสิ่งที่มันทำสิ่งที่ดีและไม่ดีเกี่ยวกับมันไม่ว่ามันจะยืดหยุ่นเพียงพอสิ่งที่ควรปรับปรุงและวิธีการ
หากคุณต้องการให้การสนทนาดำเนินต่อไปให้ถามสิ่งที่บุคคลนั้นคิดเกี่ยวกับบางแง่มุมของรหัส แต่ไม่ใช่ด้วยคำถามนำ
สิ่งสำคัญคือต้องจำไว้ว่าการสนทนานั้นสำคัญไม่ใช่คุณรู้คำตอบล่วงหน้า นักพัฒนาที่ดีควรจะชี้ให้เห็นบางอย่างเกี่ยวกับรหัสที่คุณไม่เคยนึกถึงมาก่อน
อภิปรายปัญหาการออกแบบที่เปิดกว้างกับบุคคลนั้น ดูวิธีการที่เขา / เธอดำเนินการสร้างแบบจำลองของระบบคำถามประเภทใดที่ถูกถามการออกแบบเปลี่ยนแปลงอย่างไรเพื่อตอบสนองต่อข้อมูลใหม่
ตัวอย่างที่ดีที่ Steve Yegge พูดถึงในหนึ่งในบล็อกโพสต์ของเขาคือขอให้บุคคลนั้นสร้างโมเดลวัตถุสำหรับ XML
การมีความรู้ที่ดีของรูปแบบการออกแบบที่ได้รับความนิยมสูงสุดสามารถพิสูจน์ได้ว่าผู้สมัครได้ค้นหาวิธีแก้ไขปัญหาการออกแบบของเขา
ความสามารถในการพูดคุยกับพวกเขาและรู้ว่าเมื่อใดที่จะใช้พวกเขาหรือไม่เป็นตัวบ่งชี้ที่ดีว่าเขาเข้าใจพวกเขา
การถามเขาตัวอย่างการใช้ประสบการณ์ที่ผ่านมาอาจช่วยได้เช่นกัน
อย่าให้แบบทดสอบคำศัพท์ "กำหนดมรดก" หรือ "คุณสมบัติ 3 ชื่อของการออกแบบ OO" เป็นคำถามที่จะไม่บอกอะไรคุณเกี่ยวกับทักษะของแต่ละบุคคลเพียงระยะเวลาที่เขา / เธออ่านตำราเรียนครั้งสุดท้ายเท่านั้น ฉันได้พบโปรแกรมเมอร์ที่ยอดเยี่ยมหลายคนที่ใช้ทักษะเหล่านี้ทุกวัน แต่จะทำให้หายใจไม่ออกถ้าขอให้ให้คำจำกัดความอย่างเป็นทางการ
จะขอให้เขาเขียนวัตถุธุรกิจคลาสและอินเทอร์เฟซ / วิธีการสำหรับห้องหรือเอนทิตีเสมือนอื่น ๆ
ถ้าเป็นไปได้ขอรหัสตัวอย่าง
มิฉะนั้นให้ค้นหารหัสขั้นตอนบางอย่างที่จะใช้เป็นตัวอย่าง (หรือรหัส OO ที่ออกแบบมาไม่ดี) จากนั้นให้ถามพวกเขาว่าพวกเขาจะออกแบบใหม่วางหลักเกณฑ์และปรับปรุงอย่างไร ตรวจสอบให้แน่ใจว่าโปรแกรมมีบริบทเพิ่มเติมเพื่อให้การออกแบบใหม่มีความหมาย
ในที่สุดสิ่งที่คุณกำลังทดสอบ - การออกแบบ - เป็นเรื่องส่วนตัว ดังนั้นการประเมินผลของคุณควรเป็นแบบปลายเปิดเพื่อให้สามารถใช้งานโซลูชันที่ดีได้หลายแบบและไม่ใช่เพียงโซลูชันเดียว จากนั้นให้คิดถึงการเปลี่ยนแปลงที่เป็นไปได้ของข้อกำหนดที่จะบังคับให้เปลี่ยนอินเทอร์เฟซ: พวกมันจัดการได้อย่างไร?
อ่านหนังสือหัวหน้ารูปแบบการออกแบบครั้งแรก ตัวอย่างทั้งหมดในหนังสือเริ่มต้นด้วยปัญหาเชิงวัตถุและสิ้นสุดลงในรูปแบบการออกแบบ พวกเขายังบอกด้วยว่าเหตุใดแนวคิดของ OOP บางอย่างจึงบรรลุผลลัพธ์ที่ จำกัด และเหตุใดบางอย่างจึงดีกว่าแนวคิดอื่น
แม้ว่าหนังสือรูปแบบการออกแบบหนังสือเล่มนี้เต็มไปด้วยปัญหาของ OOP :-)
เริ่มจากง่าย ๆ : มีอะไรเกี่ยวกับ OOP บ้าง
คุณสามารถเริ่มต้นด้วยการถามเกี่ยวกับสถานที่พื้นฐานของ OOP: สิ่งที่เป็นนามธรรมความหลากหลายรูปแบบการสืบทอดและการห่อหุ้ม อาหารที่ดีสำหรับความคิดที่จะทำให้พวกเขาอบอุ่นขึ้น
ทำให้พวกเขามีปัญหา
ถัดไปนำเสนอปัญหาที่น่าจะเกี่ยวข้องกับรูปแบบ ไม่จำเป็นต้องตั้งชื่อหรือใช้รูปแบบ แต่วิธีการของพวกเขาอาจให้ผลบ้างหากพวกเขามีประสบการณ์ในพื้นที่
บางทีการตรวจสอบการป้อนข้อความแบบไดนามิก คุณต้องการที่จะสามารถตรวจสอบตัวอักษรที่ป้อนตามตัวละครเพื่อดูว่ามันเป็นวันที่เวลาหรือวันที่และเวลาที่ถูกต้องในรูปแบบ ISO8601 คุณจะได้รับสำเนาของสตริงป้อนข้อมูลในแต่ละครั้งที่กดปุ่มและคุณสามารถส่งกลับบูลีนเพื่อระบุว่าข้อความยังคงดีในรูปแบบอย่างน้อยหนึ่งรูปแบบหรือไม่ ขอให้พวกเขาพูดคุยและร่างการออกแบบโดยใช้หลักการออกแบบ OO
เมื่อถึงเวลาที่คุณพูดคุยจบแล้ว
คุณจะมีความคิดที่ดีถ้าพวกเขาเข้าใจ OOD
ให้พวกเขามีปัญหาเดียวกันอีกครั้ง แต่คราวนี้ขอการออกแบบที่แตกต่าง
ตอนนี้ขอให้พวกเขาออกแบบระบบใหม่โดยไม่ใช้รูปแบบการสังเกตการณ์ (ถ้าพวกเขาพูดถึงมัน) - พวกเขาอาจเลือกที่จะใช้แนวทางแห่งความรับผิดชอบหรืออาจเป็นรูปแบบคำสั่ง คุณไม่สนใจจริงๆซึ่งคุณรู้ว่าพวกเขาเข้าใจหลักการที่เกี่ยวข้องอย่างสมเหตุสมผล
แม้ว่าพวกเขาจะไม่ใช้วิธีการตามรูปแบบเพียงแค่ฟังวิธีที่พวกเขาพยายามที่จะทำลายปัญหาลงในฟังก์ชั่นที่เกี่ยวข้องจะให้ผลลัพธ์ที่คุณตามมา
ฉันมักจะเลือกสถานการณ์โลกแห่งความเป็นจริงซึ่งเป็นสิ่งที่ทุกคนรู้จักและขอให้พวกเขาระบุเอนทิตี; นักแสดงที่เกี่ยวข้อง สิ่งที่มีปฏิสัมพันธ์ระหว่างพวกเขา; คุณลักษณะทั่วไปสามารถแยกออกได้ คุณสมบัติอะไรที่ต้องพิจารณา
ใช่คุณสามารถขอให้พวกเขานั่งลงและวาด UML ใช่คุณสามารถถามพวกเขาค้นหาคำถามเกี่ยวกับการใช้งาน OOP เฉพาะเพื่อดูว่าพวกเขาสามารถ
แต่สิ่งที่นายจ้างต้องการจริงๆภายในทีมของพวกเขาคือจิตใจที่เข้าใจแนวคิดที่เกี่ยวข้องและสามารถนำไปใช้กับสิ่งที่เกิดขึ้นได้ ข้อมูลเฉพาะสามารถเรียนรู้ได้อย่างรวดเร็วเมื่อแนวคิดถูกฝัง
†มีความคุ้นเคยอย่างลึกซึ้งและไม่มีการเชื่อมต่อกับการใช้รหัส: ครอบครัวใช้ห้องน้ำในตอนเช้า ทำอาหารเย็น เส้นทางรถบัสไปทำงาน การประกอบรถยนต์
บางสิ่งที่ดูเหมือนจะทำงานได้ค่อนข้างดีและใช้เวลาเพียงไม่กี่วินาที: ขอให้พวกเขาออกแบบโมเดลวัตถุ มันไม่สำคัญว่าจะเกิดอะไรขึ้น มันเป็นเรื่องเล็กน้อยอย่างแน่นอน ในความเป็นจริงมันอาจจะเป็นเรื่องไม่สำคัญที่จะไม่ดึงการทดสอบออกโดยไม่จำเป็น
หากสิ่งแรกที่พวกเขาเขียนนั้นเป็นวัตถุพวกเขาอยู่ข้างหน้า 99% ของคนรอบข้างในความเข้าใจ OO หากสิ่งแรกที่พวกเขาเขียนคือชั้นเรียนกรุณาขอให้พวกเขาออกไปข้างนอกและส่งผู้สมัครคนต่อไปแล้วพิจารณาว่าทำไมมันถึงเรียกว่า OOP ไม่ใช่ COP