Category Software Development

[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…

[SE] ปัญหาที่พบ เมื่อขอให้ User ทดสอบ/ทวนสอบบางอย่างให้

เวลาที่เราปั๊น Software ที่ได้มาจาก Requirement ที่เป็นน้ำๆ ออกมาเป็นกลุ่มก้อน เป็น Prototype แล้ว สิ่งที่เราควรทำมีอะไรบ้าง เพื่อให้ User ช่วย Confirm ว่าไอ้ที่เราปั๊นน้ำเป็นตัวขึ้นมาเนื่ย มันเป็นสิ่งที่ใช้นะ แต่เวลาเอาไปให้ User ใช้งานจริง มักจะเกิดปัญหา งานยุ่งอ่า ไม่ตรวจนะ เพราะ User เชื่อมั่นทีมพัฒนามากๆ (แต่มันจะ Fail มากๆ ถ้าระบบออกมาไม่ต้องกับความต้องการของ User) ทำตามเอกสาร CRS (Custormer Requirement Spec) แล้ว – แต่จริงๆ User ยังไม่ได้อ่าน…

นิทานเรื่องไก่กับหมู ไม่ได้เอามาใช้กับ Agile-Scrum ได้อย่างเดียว

บังเอิญได้คุยกับคนรู้จัก แล้วเค้าเล่านิทานเรื่อง ไก่กับหมู โดยเนื้อเรื่องประมาณว่า ไก่กับหมู เป็นเพื่อนกัน พอมาวันหนึ่งทั้งคู่เริ่มเบื่อกับงานประจำและ เลยอยากออกมาเป็นนายตัวเอง เป็นเจ้าของกิจการ ทั้งสองได้คุยกันแล้วคิดว่าอะไรที่เรามีต้นทุนอยู่แล้ว พร้อมสำหรับการเปิดร้าน ซึ่งไก่เสนอว่าเปิดร้าน Ham & Egg สิ นายก็มี Ham ส่วนฉันก็ไม่ไข่ไก่ ส่วนหมูพอได้ฟัง ดังนั้นแล้วคิดหนักเลย และก็ตอบไปว่าไม่เอาดีกว่า ทำไมหมูถึงไม่เอาหละ ลองมาคิดกันครับ หมู กว่าจะได้ Ham ออกมา ต้องเฉียดเนื้อตัวเองขาย ไก่ ไม่ต้องควักเนื้ออะไร แค่เบ่งไข่ออกมา มามองในมุมอื่นๆบ้าง เช่น Project Management หรือ Startup (ตามเทรนช่วงนี้) ถ้า Stakeholder…

Streamlined Object Modeling

Streamlined Object Modeling ถ้าถามผมนะ ผมมองว่าเป็น Analysis Pattern นะ โดยในขั้นตอนนี้เป็นการปรับ Enity Class ที่ได้จากการ Use Case Realization มาใช้ Pattern ที่คุณ Peter Coad ได้คิดเอาไว้ครับ (คนนี้คิดได้หลายอย่างเลย โดยส่วนใหญ่เป็นการขยายภาพของ OO ใช้ชัดเจนมากขึ้น และเค้ายังคิดเรื่อง Feature Driven Development ด้วย) สำหรับในเรื่องนี้คุณ Peter Coad ได้แบ่งกลุ่มของ Object ไว้เป็น 4 ประเภท ครับ ได้แก่ ตัวอย่าง…

Lehman Laws of Software Evolution

ช่วงนี้ต้องอ่าน Paper เตรียมนำเสนออาจารย์ แต่อ่านไปอ่านมา มันก็ไปอ้างอิง Paper อื่นๆด้วย เลยเอามาสรุปไว้ใน ฺBlog ดีกว่า กฎแห่งการเปลี่ยนแปลงอย่างต่อเนื่อง  (Law of Continuing Change:1974) An E-type program that is used must be continually adapted else it becomes progressively less satisfactory. Software ต้องมีการปรับเปลี่ยนแก้ไข ตลอดช่วงเวลาที่ใช้งาน (Software Life Cycle) จนกระทั่งเลิกใช้ อาจจะมีการเปลี่ยน Version…

Interface 500 ปี

ช่วงนี้หลังจากที่เรียนโท เสาร์ อาทิตย์แล้ว ดึกผมยังมี Job พิเศษ ที่ผมไม่อยากทำเลยครับ คือ นอนเฝ้า Database ครับ หลายคนอาจจะสงสัยทำไมต้องนอนเฝ้าหละ ของเล่า Timeline ก่อน 2017-01-19 : ระบบแจ้ง IBM SQL0968C The file system is full. SQLSTATE=57011 ผมเข้าไป Clear Log ให้นะครับ 2017-01-20: Log เต็มอีกแล้วเหรอ ผมเริ่มสงสัยและมันต้องมีอะไรแปลกๆแน่ๆ เลย Export Log กลับมาดู 2017-01-21: เรียน…

[RECAP] BOTDMS Module

จบไปแล้วสำหรับ Module BOTDMS (DataSet กับ DataFile) ที่ผมรับผิดชอบอยู่ มาสรุปดีกว่า ว่ามันมีอะไรที่ควรบันทึก ทั้งจุดเด่น และจุดด้อยครับ จุดเด่น จุดด้อยที่ควรปรับปรุง ตอนนี้เข้าสู่ช่วง MA เรียบร้อย น่าจะมีการ Change จากการลอง Test บน Production แต่ไม่ยอมแจ้งตอนเก็บ Requirement

Control Hierarchy และ Fan-in กับ Fan-out คือ อะไร ?

คำนี้ผมเพิ่งได้ยินจากจากการเรียนปริญญาโทครับ โดยในคาบเรียบอาจารย์ให้แบ่งกลุ่ม และลองศึกษา Keyword ต่างๆ ประมาณ 20 นาที แล้วมานำเสนอครับ ของกลุ่มผมมี 3 คำครับ (เดี๋ยวมาอธิบายต่อไปเลย) Control Hierarchy คือ อะไร ? เป็นแผนภาพที่แสดงโครงสร้างของระบบ โดยมองในมุมของ Components (ผมเข้าใจว่ามองลงได้ถึงในระดับ Class/Method ได้นะ) ว่ามี Components มีความสัมพันธ์กับ Module อื่นๆ อย่างไร จากแผนภาพตรงนี้ เรามาค้นหาความสัมพันธ์ที่ซ่อนในโครงสร้างนี้กัน Fan-in & Fan-out คือ อะไร ? – ความหมาย – ทำไมต้องมาดู Fan-in & Fan-out…

[SA] ลองใช้งาน MVP Design Pattern ตอนที่ 2 (Workshop)

ถ้าใครมาอ่าน Blog ตอนแรก คงมีงงกันบ้างแหละ ลองใช้งาน MVP Design Pattern ตอนที่ 1 กับตอนที่ 2 เป็น App ตัวอย่างมันห่างกัน เกือบๆ 2 ปีครับ หลังจากติด Project มา 2 ชิ้นติดๆ เพิ่งจะมีเวลาหายใจได้สัก 3 สัปดาห์ ก่อนเริ่มเรียนปริญญาโท สำหรับ Application ที่ผมทำเป็น Windows Application ที่ใช้ในองค์กรครับ โดยมี Feature เด่นๆ จัดการ Enviroment ของแต่ละ Site จัดการ COM…

เรื่องวุ่นๆของการใช้กรรม

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

สำหรับคนที่ทำงานด้าน Software ที่ประจำการอยู่กับ Software House แล้วยิ่งมี Product ของตัวเองแล้ว คงรู้จักคำกลุ่มๆ ใช้กรรม เข้าเซ้ง หรืออะไรก็แล้วแต่ เอาง่ายดีกว่า เดี๋ยวคนอื่นที่มาอ่านจะงงกัน มัน คือ การอยู่เวร ในทีม MA เพื่อทำหน้าที่ Support เหล่า User ที่เกิดปัญหาครับ โดย Step ทั่วไปของการทำงาน User เจอปัญหา ติดขัดบางอย่าง จากนั้นแจ้งเข้าบริษัททีม Customer Support (CS) มารับหน้าไว้ ทีม Customer Support พยายามจัดการปัญหาให้ได้มากที่สุดครับ ถ้ามันเกินกำลังจริงๆ…