Category Design Pattern

Design Principle

ออกแบบ Database ยังไง มี Best Practice หรือ Pattern อะไรบ้าง ?

พอดีได้เห็นคำถามในหลายกลุ่มเลย เช่น สมาคมโปรแกรมเมอร์ไทย หรือ .NET Thailand แนวๆจะออกแบบ Database ยังไง มี Best Practice หรือ Pattern อะไรบ้าง ผมมีตอบๆไปนะ เลยคิดว่าเขียน Blog สรุปดีกว่าครับ Recap ACID Type of Database ตามนี้เลยครับ ถ้าเอาตามเทรนลองถาม ChatGPT เพิ่มเติมได้ครับ แต่ตอนนี้ผมหนีมาอีกค่าย claude ai ตัวไม่ดังบ้าง

Design Technique for Enterprise Transaction Design

สรุปแนวคิดสำหรับการออกแบบระบบให้ระบบขนาดใหญ่ (Enterprise) และรองรับข้อมูลธุรกรรม(Transaction) จำนวนมาก โดยต้องการให้ขยายระบบ(Scalability) ได้ในอนาคตครับ เลือกรูปแบบ Data Modeling – Transaction – ORM vs ER – พวก Sensitive Data จัดการอย่างไร – Data distribution / Data Centralization เลือกรูปแบบ Architectural Patterns การเลือก Architecture ต้องดูจาก – Resource Handings (POSA-3) ตรงนี้จะเห็นว่า กล่องสีๆ พวก Performance…

[Design Pattern] Command Pattern in Depth

อันนี้น่าจะเป็น Pattern ที่ 4 ที่เขียนกันครับ ทำไมต้องใช้ Command Pattern ต้องการเชื่อมของหลายๆสิ่งเข้าด้วยกันได้ เช่น Remote กับเครื่องใช้ไฟฟ้า แต่ละอย่างในบ้าน เช่น หลอดไฟ, พัดลม หรือ ทีวี ที่มีลักษณะการทำงานคล้ายๆกัน เช่น เปิด(ON) หรือป ปิด(OFF) เป็นต้น แต่ไม่อยากให้มันผูกแน่นกันจนเกินไป มาดูโจทย์ของเราดึงกว่า โดยผมรับ Requirement มาว่าให้ได้ออกแบบ Application ETradeStock อันนึงที่สามารถส่งคำสั่งไปที่ตลาดหุ้น SAT ซึ่งสำหรับ SAT มี API อยู่ 2 เจ้าครับ…

[Design Pattern] Decorator Pattern in Depth

ทำไมต้องใช้ Decorator Pattern อยากเพิ่มความสามารถของ Object (Object ทำงานเหมือนเดิมนะ แต่ถูกเพิ่มความสามารถ) เมื่อไหร่ควรจะใช้ ไม่อยากใช้คุณสมบัตินึงของ OOP-Inheritance มากเกินไป เพราะใช้ไปแล้ว ก็ต้อง Override ไปแก้ความสามารถที่ได้มาจาก Class แม่อีก หรือมี Class ลูก (Sub Class) ที่มากจนเกินไปครับ ซึ่งเจ้า Decorator มันมาช่วยตรงนี้ครับ ไม่ต้องแก้ แต่เราเพิ่ม (Wrap) ความสามารถใหม่ลงไป โดยที่ความสามารถเดิม ยังคงอยู่ ลดจำนวน Sub Class ลงได้ สนับสนุนแนวคิด Open-Close Principle ด้วย…

[Design Pattern] Observer Pattern in Depth

คราวนี้มาเป็น Pattern ที่ 2 แล้วที่ผมเขียนในเรื่อง Design Pattern in Depth โดยตอนนี้ขอเขียนเกี่ยวกับ BNK48 แล้วกันครับ น้องเณอปราง ^___^ ทำไมต้องใช้ Observer Pattern ถ้า Design ด้านแนวคิดที่ว่า อยากรู้ให้มาถาม (Server) สิ่งที่เกิดขึ้น คือ Client ต้องคอยวิ่งมาถาม (Request) ตรวจสอบว่าข้อมูลที่ Server มัน Update ยัง … Update ยังงง ถ้าเกิดข้อมูลที่ต้องกระจายเป็นข้อมูลของวง Girl Group อย่าง BNK48…

[Design Pattern] Strategy Pattern in Depth

ภาพจาก https://commons.wikimedia.org/wiki/File:John_Lavery_-_IWM_War_Room.jpg

วันนี้ Blog นี้มาเน้นทางสาย Pattern กันเยอะ เชื่อว่าหลายๆคน Copy & Paste Development มาใช้งาน แต่ก็ไม่รู้ว่า มัน คือ อะไรครับ โดย Pattern ที่ผมมาเขียนลง Blog ในวันนี้ คือ Strategy Pattern ซึ่งข้อมูลส่วนใหญ่ผมเอามาจากของ Head First นะครับ ตัวอย่างมันอธิบายได้ง่ายดีครับ ทำไมต้องใช้ Strategy ทุกปัญหามันไม่สามารถแก้ไขด้วยกับใช้เทคนิคเดิมของ OOP – Inheritance ได้ไง ? ตัวอย่าง เช่น นายเจมส์ได้รับหน้าที่ในการสร้าง Class ของ Duck…

[CodeMania100] Emergent Design with Code

Blog  นี้สรุปมาจาก CodeMania 100 : Coding Defines Anything ลองดูแล้วมันน่าจะแยอะ เขียนแยกง่ายกว่า สำหรับเรื่องนี้เป็นเรื่อง Coding Defines Reality – Emergent Design with Code  โดยคุณ Varokas Panusuwan เข้าเรื่องเลยดีกว่า หมายเหตุ: สรุปตามความเข้าใจของผม และอาจจะมีอารมณ์ร่วมแถม 5555 ย้อนไปถึงการ Design ในการพัฒนา Software ถ้าไม่ลืมจากที่เรียนไปมันมีเรื่อง SDLC (Software Development Life Cycle) มันมีขั้นตอน ตั้งแต่ Requirement > Design > Implementation >…

Best Practices คำแนะนำที่เรียบง่าย แต่มีที่มาที่ล้ำลึก

Best Practices คำแนะนำที่เรียบง่าย แต่มีที่มาที่ล้ำลึก โดยเวลาที่เราเขียนโปรแกรม เราอาจจะโดนจำกัดการใช้ตัวแปร ให้เขียน Code ตามรูปแบบที่ SA กำหนดไว้ ต้องเขียน Code เป็นชั้นๆ อาทิ เช่น Presenter, Business Logic, Data Access และแต่ละชั้นต้องเชื่อมกันผ่าน Interface แต่ถ้าลองมาศึกษาลึกๆแล้ว ทุกอย่างมีที่มาที่ไป แต่ถ้าจะลงลึกไป อธิบายผลดี/ผลเสียมันอาจจะต้องใช้เวลา มันก็เลยกลายเป็น Best Practices เรียบง่ายที่ ห่อหุ้ม(Encapsulate) ความซับซ้อนต่างๆเอาไว้ข้างในครับ ตัว Developer เองจะได้เวลาไปสนใจเรื่องอื่นมากขึ้น เช่น Business หรือ การ…

Design Principle กับ Design Pattern

ก่อนจะมาเข้าเรื่องที่ลึกลงไป ผมอยากแนะนำ 2 คำนี้ก่อนครับ Principle แปลเป็นไทย คือ “หลักการ” แปลไทยเป็นไทย คือ สาระสำคัญที่ยึดถือเป็นแนวปฏิบัติ (ข้อมูลจากราชบัณฑิตยสถาน) Pattern แปลเป็นไทย คือ “รูปแบบ” แปลไทยเป็นไทย คือ แบบ, แผน, ตัวอย่าง, ทำแบบ, แบบอย่างอันดี, เอาแบบอย่าง กลับมาที่ Design Principle คือ หลักการออกแบบ Software โดยมีชุดแนวคิด หรือคำแนะนำ เพื่อป้องกันการออกแบบ Software ที่แย่ ที่ส่งผลทำให้มีการปรับแก้ไข (Customize) หรือ การดูแลรักษา (Maintenance) ยาก…