Quantcast
Channel: cc :: somkiat
Viewing all articles
Browse latest Browse all 1997

อ่านเจอสิ่งที่น่าสนใจในเรื่องของ Reuse service

$
0
0

จากหนังสือ Monolith to Microservices นั้น
มีเรื่องเล็ก ๆ อธิบายเรื่อง Reuse ? หรือแปลว่า การใช้ซำ้

เราใช้ซ้ำเมื่อใด และเมื่อใดเราถึงใช้ซ้ำ
และเราสร้างส่วนที่ใช้ซ้ำตอนไหน ?

การ reuse อาจจะเป็นเป้าหมายหลัก ๆ ของการนำแนวคิด Microservices มาใช้งาน
เพื่อแยกส่วนงานต่าง ๆ ออกจากกัน
โดยในหนังสือบอกว่า ไม่เห็นด้วยกับเป้าหมายนี้
แต่ควรให้การ reuse เป็นสิ่งสำคัญรองลงมา หรือ เป็นผลพลอยได้มากกว่า

การ reuse นั้น เกิดจากความเชื่อ ความหวังที่ว่า

เราจะพัฒนาระบบงานได้เร็วขึ้น ง่ายขึ้น ส่งมอบเร็วขึ้น มีค่าใช้จ่ายน้อยลง
แต่มันจริงหรือเปล่านะ ?
เป็นสิ่งที่ต้องลงไปในรายละเอียดกันอีกที

ลองกลับมาที่เป้าหมายกันก่อน

เราต้องพัฒนาระบบงานได้เร็วขึ้น ง่ายขึ้น ส่งมอบเร็วขึ้น มีค่าใช้จ่ายน้อยลง
นั่นคือ เราต้องพยายามปรับปรุงขั้นตอนการพัฒนาให้ดี
ด้วยการทำงานให้น้อยลง
เขียน code ให้น้อยลง
นั่นคือ reuse ให้มากขึ้น ใช่ไหม ?

มาดูตัวอย่างของการ reuse กันบ้าง

ในกรณีที่เรามี Customer service เพื่อจัดการเกี่ยวกับ customer
ซึ่งต้องการสร้าง report ในรูปแบบของ PDF
แน่นอนว่าในระบบงานของเราก็มี  Report service ให้ใช้งานอยู่แล้ว
เพียงแค่เราต้องไปติดต่อทีมที่ดูและ Report team 
เพื่อให้สร้าง report ตามที่เราต้องการเท่านั้นเอง

ปัญหาที่มักตามมาคืออะไร ?

Customer service นั้นจะต้องยก logic ของการออก report ไปให้ Report service
ดังนั้น ถ้าจะทำอะไร ก็ต้องติดต่อและพูดคุยกับทีม Report service เสมอ
ที่น่าสนใจคือ
ใคร ๆ ก็ใช้ Report service
ดังนั้นตารางงานของทีมนี้ก็ยุ่ง
ไม่ค่อยเป็นไปตาม timeline ของ Customer service
มันคือปัญหาของ coordination กันไหมนะ ?
มันทำให้เราพัฒนาและส่งมอบงานได้เร็วจริงตามเป้าหมายหรือไม่นะ ?
ลดค่าใช้จ่ายจริง ๆ ไหมนะ 
ทั้งเวลาติดต่อ 
ทั้งเวลาที่รอ 
ทั้งเวลาที่ integrate กัน 
ทั้งการแก้ไข ที่กระทบไหมนะ
มันคือค่าใช้จ่ายที่สูงทั้งหมดไหมนะ

แทนที่จะเอาเวลาไปใช้กับการพัฒนาและเปลี่ยนแปลง
แต่ต้องมาเสียเวลาในการพูดคุยและวางแผนระหว่างทีม
มันตรงตามเป้าหมายหรือไม่นะ ?
ตรงนี้น่าคิดมาก ๆ

ดังนั้นถ้าเรากำลังสนใจเรื่องของการพัฒนาและส่งมอบที่รวดเร็วขึ้น

น่าจะเอางานส่วนของ PDF report มาทำเองใน Customer service เลยดีไหม
แต่ถ้าสนใจเรื่องของ reuse ก็เอาไปไว้ใน Report service เช่นเดิม !!

ยิ่งระบบงานที่ซับซ้อน การจัดการสิ่งเหล่านี้ยิ่งยากลำบาก
ดังนั้น เราควรตั้งเป้าหมายที่แท้จริงก่อนว่า
เรากำลังจะทำอะไร
มีเป้าหมายอะไร
จากนั้นจึงค่อยเลือกวิธีการ
บางครั้ง  reuse มันก็ไม่ใช่คำตามเดียวที่ถูกต้องเสมอไป

อ้างอิงจาก SOA Manifesto ก็น่าสนใจ


Viewing all articles
Browse latest Browse all 1997

Trending Articles