Tag Design Pattern

สรุปงาน DevMountain #02

งาน DevMountain จัดมา 2 รอบแล้ว แต่ Season 1 ไม่รู้ข่าว แหะๆ สำหรับงานนี้ Season 2 และ โดยจัดที่เชียงใหม่เลย แต่ไม่ได้ไปนะ พอดีมีธุระเย็นวันที่ 12 ครับ สำหรับงานนี้จัด 2 วันเต็ม จริงต้องบอกว่า Theme Tech Week Meetup เพราะมีงานอื่นๆ จัดไปด้วย ตามนี้เลย <thai-tech-calendar /> | รวม อัพเดท Tech event, Tech Meetup ในไทยไว้ในที่เดียว…

[Design Pattern] Command Pattern in Depth

อันนี้น่าจะเป็น Pattern ที่ 4 ที่เขียนกันครับ ทำไมต้องใช้ Command Pattern เมื่อไหร่ควรจะใช้ Pattern มันเป็นอย่างไร – Class Diagram มุมมองตอน Runtime – Object Diagram มุมมองลำดับการทำงาน – Sequence Diagram

[Design Pattern] Decorator Pattern in Depth

ทำไมต้องใช้ Decorator Pattern เมื่อไหร่ควรจะใช้ Open for Extension Closed for Modification Pattern มันเป็นอย่างไร – Class Diagram มุมมองตอน Runtime – Object Diagram มุมมองลำดับการทำงาน – Sequence Diagram Real World Example

[Design Pattern] Observer Pattern in Depth

คราวนี้มาเป็น Pattern ที่ 2 แล้วที่ผมเขียนในเรื่อง Design Pattern in Depth โดยตอนนี้ขอเขียนเกี่ยวกับ BNK48 แล้วกันครับ น้องเณอปราง ^___^ ทำไมต้องใช้ Observer Pattern เมื่อไหร่ควรจะใช้ Pattern มันเป็นอย่างไร – Class Diagram มุมมองตอน Runtime – Object Diagram มุมมองลำดับการทำงาน – Sequence Diagram ปิดท้ายด้วย Source Code (อาจจะรันไม่ได้ Code เทพ No Complier…

[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 เมื่อไหร่ควรจะใช้ Pattern มันเป็นอย่างไร – Class Diagram มุมมองตอน Runtime – Object Diagram มุมมองลำดับการทำงาน…

[CUSE] Midterm ของเทอมที่ 3

วันนี้เพิ่งสอบ Midterm เสร็จครับ จริงๆ อาจารย์บอกว่ามันเป็น Quiz แต่ก็เป็น Quiz ที่จั่วหัวที่หน้าแรกว่า Midterm Examination 2/2560 สำหรับวิชาที่สอบวันนี้เป็นวิขา Enterprise Application Architecture ซึ่งหัวข้อทีได้เรียนไปในช่วงก่อน Midterm มันทำให้เห็นมิติใหม่ของ UML และการ Design ครับ โดยเนื้อหาที่เรียนไป สำหรับตัวข้อสอบความยากระดับยาก(เต็ม 5 ให้ 4 เลยครับ) แต่ปัญหาของผมที่เจอประจำ “ขาดสติ-ลืมตรวจทานครับ”  ที่ผิดๆประจำก็แบบนี้แหละ อ่านโจทย์ไม่ครบ …. ส่วนอย่างอื่น ถ้าได้ลองทำการบ้าน หรือเอาสิ่งที่อาจารย์สอนในวิชาลองไปใช้ในการทำงานจริงแล้ว มันจะพรั่งพรูออกมาตอนทำข้อสอบครับ ^__^

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 กับ Design Pattern กลับมาที่ Design Principle คือ หลักการออกแบบ Software โดยมีชุดแนวคิด หรือคำแนะนำ เพื่อป้องกันการออกแบบ Software ที่แย่ ที่ส่งผลทำให้มีการปรับแก้ไข (Customize) หรือ การดูแลรักษา (Maintenance) ยาก เช่น SOLID (หลักการพื้นฐาน 5 ข้อ ถูกคิดและเผยแพร่โดย Uncle Bob ครับ ) จากนั้นอีกคำ Design…

ทำไม Method หรือ Function ที่ดีควรมีความยาวไม่เกิน 1 หน้าจอ หรือ 20 บรรทัด หรือ กฏอื่นๆอีกมากมาย

สำหรับบางคนที่เพิ่งเรียนเรียน Programming หรือ เพิ่มเริ่มทำงานใหม่ๆ อาจจะสงสัยว่าทำไมอาจารย์ หรือ พี่ที่ทำงานถึงมีข้อกำหนดในการเขียน Code ขึ้นมา ซึ่งบางข้ออาจจะดูไม่จำเป็นเลย เช่น หากเรามองแค่ผิวเผินแล้ว อาจจะคิดในใจว่าต้องการความเป็นระเบียบ ให้ Code สวยงาม เพื่อที่เรา หรือคนอื่นมาเขียนต่อภายหลังได้ง่าย แต่ถ้ามองลึกๆลงไป มันอาจจะเป็นกุศโลบายอย่างหนึ่งก็ได้ ซึ่งแฝงไปด้วยแนวคิด และทฤษฏีที่ซับซ้อน โดยผมจะอธิบาย แต่ละข้อเลยยะครับ ข้อแรก Method ที่เขียนขึ้นมาควรจะไม่เกิน 20 บรรทัด หรือ แสดงไม่เกินไม่เกิน 1 หน้าจอ หากเรามองลึกลงไป ทำไมต้องไม่เกิน 20 บรรทัด หรือ 1 หน้าจอ ซึ่งแนวคิดนี้จะลึกให้เราต้องกำหนดการทำงานของ…

[SA] ลองใช้งาน MVP Design Pattern ตอนที่ 1 (เกริ่นนำ)

อ่า Blog นี้ถูกเขียนมาตั้งแต่ปี 2014 ครับ วันนี้ได้เวลาดีมาเขียนให้จบซะที (ปล่อย Blog Public มาได้ 2 ปีและ)  เพราะ ตัว App ที่เป็น Workshop ที่เตรียมไว้ ใช้งานกันแพร่หลายในที่ทำงานแล้วครับ ใช้มา ก็ 2 ปีกว่าและ มาเข้าเรื่องดีกว่า MVP ย่อมาจาก อะไร Model View Presenter คือ อะไร MVC vs MVP ต่างกันอย่างไร ? MVP มีกี่รูปแบบหละ ?…