you’re reusing what others have already learned, created, and proven. Knowledge reuse isn’t a bad thing – it helps you learn, get working code faster, and reduces your frustration.
Our whole site runs on knowledge reuse – it’s the altruistic mentorship that makes Stack Overflow such a powerful community.
ซึ่งเป็นตามแผนของการ support ของ Microsoft เช่นกัน ที่จะเลิก support IE 11 และ Microsoft Edge Legacy ไปแล้ว แม้แต่ตัว Microsoft 365 ยังจะเลิก support ในเดือนสิงหาคมนี้เลย
โดยใน Windows 10 ตัว update ใหม่ จะทำการเปลี่ยนไปติดตั้ง Microsoft Edge ตัวใหม่แทน
ช่วงนี้มีข่าวเรื่องการจองฉีดวัคซีนกันเยอะ เลยไปหาดูข้อมูลเกี่ยวกับฉีดวัคซีนของแต่ละประเทศ ว่าเป็นอย่างไรบ้าง พบว่ามีหลายแหล่ง แต่ก็มีที่ Our World in Data ทำการสรุปข้อมูล รายงานรวมทั้ง share ข้อมูลของการฉีดวัคซีนทั้งโลกไว้
ในการออกแบบ service ของระบบงานนั้น มีรูปแบบหนึ่งที่เจอบ่อยมาก ๆ คือเรามักจะแยกเป็น service ย่อย ๆ โดยแต่ละ service ทำงานอย่างใดอย่างหนึ่งไปเลย (Single Responsibility) เป็นสิ่งที่ดีมาก ๆ เพราะว่าแต่ละ service มีขอบเขตการทำงานชัดเจน แต่เมื่อนำ service ต่าง ๆ มาทำงานร่วมกัน จะเกิดรูปแบบต่าง ๆ มากมาย หนึ่งในรูปแบบคือ Chain of Responsibility หรือ Chain of Services
แสดงดังรูป
คำอธิบาย
การทำงานจะเริ่มจาก Main API หรือ product หรือระบบงานหลักนั่นเอง จากนั้นจะเรียกใช้งาน service 1 จากนั้น service 1 ก็ไปเรียกใช้งาน service อื่น ๆ ต่อไปเรื่อย ๆ ในรูปแบบของ chain of service นั่นเอง
โดย React นั้นจะยึดตามแนวทางของ Web component คือแยกการทำงานเป็น component ไป ซึ่งเลือกพัฒนาได้ทั้ง Class และ function component แต่ปัจจุบันน่าจะเป็น function component + Hook กันเป็นส่วนใหญ่
ต้องกำหนดให้ชัดเจนเรื่องการเข้าถึงข้อมูลต่าง ๆ เนื่องจากในแต่ละ service ต้องมีหน้าที่ในการดูแลและจัดการข้อมูลของตัวเอง ไม่ไปยุ่งเกี่ยวกับข้อมูลของ service อื่น ๆ โดยปราศจากเหตุผลที่เหมาะสม
ซึ่งช่วยทำให้แต่ละ service มีการกำหนด API หรือ contract ระหว่างกันได้ชันเจนมากขึ้น
สิ่งหนึ่งที่เห็นบ่อยมาก ๆ และไม่ถูกต้องคือ
มักแยกเพียง logic ออกมาเป็น service เท่านั้น แต่ data ยัง share กัน !! เหมือนใน monolith เลย !! นำไปสู่ปัญหาที่เรียกกันว่า Distributed Monolith
จากนั้นทำการตรวจสอบเรื่อง type checking รวมทั้งมี automated test เพื่อทำให้มั่นใจว่ายังคงทำงานตามที่คาดหวัง เมื่อทุกอย่างผ่านเรียบร้อยจึงทำการ merge มายัง main branch เพื่อทำการ deploy ต่อไป
ในการทำงานก็มีเรื่องราวและแนวคิดมากมาย ที่น่าสนใจ
ทั้งการแปลงจาก createReactClass component มาเป็น ES6 class component
ในส่วนของ Automation team ทำการสร้าง helper method สำหรับการ generate TypeScript type ออกมา เพื่อใช้ในการกำหนดและ validate schema