จากรูปลักษณ์ของคำถาม codereview ที่คุณถามคุณอยู่ในขั้นตอนของการหักโหม ฉันคิดว่ามันเป็นปัญหาที่พบได้บ่อยในคนที่ค้นพบความสำคัญของการออกแบบที่ดี
จริงๆแล้วมันเป็นขั้นตอนที่เป็นธรรมชาติและอาจจำเป็นด้วยทักษะใด ๆ ก็ตามที่คุณเลือก เมื่อคุณเริ่มเรียนรู้บางสิ่งคุณยิ่งพัฒนาทักษะความรู้มากขึ้นและยิ่งนำไปใช้มากเท่าไรผลลัพธ์ของคุณก็จะยิ่งดีขึ้นและดูเหมือนว่าคุณกำลังมุ่งสู่ความเชี่ยวชาญ ปัญหาคือเป้าหมายใหม่ของคุณไม่ใช่คุณภาพของผลลัพธ์ แต่เป็นความรู้ที่คุณได้สะสมในทักษะของคุณ
ความเชี่ยวชาญที่แท้จริงของทักษะเกี่ยวข้องกับความเข้าใจว่าจะใช้เมื่อใดและเมื่อใด การใช้ทักษะนั้นมากเกินไปอาจเป็นหนทางเดียวในการพัฒนาความเข้าใจเช่นนั้น แน่นอนว่าคุณสามารถอ่านเกี่ยวกับเรื่องนี้ได้ แต่การอ่านไม่ใช่สิ่งทดแทนประสบการณ์
สำหรับสิ่งหนึ่งการอ่านเกี่ยวกับรูปแบบการออกแบบเป็นจุดเริ่มต้นที่แย่ IMHO การอ่านเกี่ยวกับหลักการออกแบบของ OO เช่นSOLIDและGRASPนั้นดีกว่า หลังจากทำความคุ้นเคยกับพวกเขาแล้วการศึกษารูปแบบการออกแบบทั่วไปเป็นความคิดที่ดีเพราะคุณจะเห็นว่าหลักการเหล่านั้นสามารถนำไปใช้กับรูปแบบของสำนวนที่เป็นรูปธรรมได้อย่างไร
มันถูกอ้างว่าเมื่อรูปแบบเกิดขึ้นในการใช้ภาษาแล้วภาษานั้นขาดคุณสมบัติจริงๆ แม้ว่าข้อความนี้จะรุนแรงมาก แต่ก็มีความจริงมากมาย ดังนั้นฉันขอแนะนำให้คุณดูและเล่นกับภาษาอื่น ๆ เพื่อทำความเข้าใจแนวคิดที่คุณต้องการจ้างงานและเรียนรู้เกี่ยวกับแนวคิดใหม่ ๆ ตัวเลือกจะเป็น Squeak, Ruby และ Lisp
สำหรับรายการคำแนะนำส่วนตัวของฉันคือโครงสร้างและการตีความของโปรแกรมคอมพิวเตอร์ซึ่งสอนฉันอย่างมากเกี่ยวกับการออกแบบโดยแสดงให้ฉันเห็นว่าคน ๆ หนึ่งสามารถสร้างวิธีการแก้ปัญหาที่มีประสิทธิภาพสำหรับปัญหาที่ซับซ้อนได้อย่างง่ายดายเพียงใด ลักษณะจากบนลงล่าง
ดังนั้นนี่คือสิ่งที่ฉันแนะนำ:
- เขียนรหัส (และพยายามเข้าใจสิ่งที่ทำให้มันแย่)
- อ่านรหัส (และพยายามเข้าใจสิ่งที่ทำให้ดี)
- แลกเปลี่ยนความรู้กับผู้อื่น นำความคิดของคุณไปทดสอบ