WJb v1.1 ยกระดับแอปคอนโซลสู่งาน Action ที่นำกลับมาใช้ใหม่ได้
เรียนรู้การพัฒนา .NET โครงการส่งอีเมลผ่าน SMTP ตั้งแต่แอปคอนโซลพื้นฐานจนถึงการแปลงเป็น WJb Action ที่นำกลับมาใช้ซ้ำและทดสอบได้ง่าย

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- เริ่มต้นสร้างแอปคอนโซล .NET ส่งอีเมลผ่าน SMTP ก่อนเพิ่มระบบเวิร์กโฟลว์
- ย้ายตรรกะทางธุรกิจมาไว้ในเมธอดที่นำกลับมาใช้ใหม่ได้
- เปลี่ยนโค้ดปกติให้กลายเป็น WJb Action ที่จัดการขั้นตอนและผลลัพธ์ได้
- แยกตรรกะธุรกิจออกจากโครงสร้างพื้นฐานเพื่อให้แก้ไขและทดสอบได้ง่าย
การพัฒนาซอฟต์แวร์ด้วย WJb v1.1 มีแนวคิดที่น่าสนใจในการเปลี่ยนรูปแบบจากแอปพลิเคชันคอนโซลแบบเดิม ให้กลายเป็น WJb Action ที่มีความยืดหยุ่นสูง โดยก่อนที่เราจะขยับไปใช้งานระบบ Jobs, Workflows, Steps หรือการตั้งเวลา (Scheduling) สิ่งสำคัญคือการเริ่มต้นแก้ปัญหาด้วยแอปคอนโซลธรรมดาก่อน เพื่อให้มั่นใจว่าพื้นฐานการทำงานทั้งหมดถูกต้องและใช้งานได้จริง
ขั้นตอนแรกเริ่มต้นด้วยการสร้าง .NET console application เพื่อทดสอบการส่งอีเมลผ่าน SMTP โดยเมื่อสั่งรันคำสั่ง dotnet run ผลลัพธ์ที่คาดหวังคือข้อความ Email sent ปรากฏขึ้นมา ซึ่งกฎข้อสำคัญที่สุดคือการตรวจสอบตรรกะทางธุรกิจ (business logic) ให้เรียบร้อยก่อนที่จะเพิ่มโครงสร้างพื้นฐานใดๆ เข้าไป เพราะหากตัวแอปคอนโซลยังทำงานไม่ได้ การเพิ่ม WJb เข้ามาก็จะไม่ช่วยแก้ปัญหาให้อย่างแน่นอน

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
แนวคิดนี้สะท้อนให้เห็นถึงหลักการพัฒนาซอฟต์แวร์ที่ดี โดยเน้นให้ความสำคัญกับการทดสอบโค้ดพื้นฐาน (Core Logic) ให้เสร็จสิ้นก่อนผูกติดกับเฟรมเวิร์ก เพื่อลดความซับซ้อนและช่วยให้การดีบักปัญหาทำได้ง่ายขึ้นในระยะยาว
เมื่อแอปคอนโซลทำงานได้ตามที่ต้องการแล้ว ขั้นตอนถัดมาคือการย้ายตรรกะทางธุรกิจไปไว้ในเมธอดที่สามารถนำกลับมาใช้ใหม่ได้ เช่น การเรียกใช้งานผ่าน await EmailSender.SendAsync("john@example.com") ก่อนที่จะปรับเปลี่ยนให้รองรับตัวแปรผู้รับ (recipient) เพื่อให้โค้ดมีความยืดหยุ่นมากยิ่งขึ้น
แนวทางการพัฒนาจะดำเนินไปตามลำดับขั้นดังนี้:
- เริ่มต้นจากปัญหา (Problem)
- พัฒนาจนได้โค้ดที่ทำงานได้จริง (Working Code)
- แยกเป็นเมธอดที่นำกลับมาใช้ซ้ำได้ (Reusable Method)
- แปลงเป็น Action และต่อยอดสู่ Workflow
จากนั้นจึงนำระบบ WJb เข้ามาครอบ เพื่อเปลี่ยนกระบวนการให้กลายเป็น WJbAction ที่ส่งผลลัพธ์ด้วย Results.Done() และเชื่อมโยงไปยัง Step หรือ Next Action ต่อไป ทำให้ตรรกะทางธุรกิจกลายเป็นหน่วยพกพาที่สามารถรัน ทดสอบ หรือจัดระเบียบการทำงานผ่าน WJb ได้โดยตรง โดยไม่จำเป็นต้องเรียนรู้แนวคิดที่ซับซ้อนของเฟรมเวิร์กตั้งแต่เริ่มต้น
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น