User Interfaces (ส่วนต่อประสานผู้ใช้)

บ่อยครั้ง เกินไปที่ user interface กลายเป็นสิ่งที่ถูกคิดทีหลังเมื่อพูดถึงการแยกย่อยระบบ เราแยกไมโครเซอร์วิสของเราออกจากกัน แต่ยังคงเหลือ user interface แบบโมโนลิธไว้ สิ่งนี้นำไปสู่ปัญหาของการมีทีม frontend และ backend แยกจากกัน แทนที่จะเป็นแบบนั้น เราต้องการ stream-aligned team ที่ทีมเดียวเป็นเจ้าของฟังก์ชันการทำงานทั้งหมดที่เกี่ยวข้องกับ end-to-end slice ของฟังก์ชันที่ผู้ใช้เห็น เพื่อให้การเปลี่ยนแปลงนี้เกิดขึ้นได้จริงและกำจัดทีม frontend และ backend ที่แยกไซโลกันออกไป เราต้องแยก user interface ของเราออกจากกัน

ใน Chapter 14 ผมแชร์วิธีที่เราสามารถใช้ micro frontend เพื่อส่งมอบ user interface ที่ถูกแยกย่อย โดยใช้เฟรมเวิร์ก single-page app อย่าง React user interface มักเจอปัญหาในแง่ของจำนวนการเรียกที่ต้องทำ หรือเพราะต้องทำ call aggregation และ filtering เพื่อรองรับอุปกรณ์มือถือ แพตเทิร์น backend for frontend (BFF) ช่วยให้ทำ aggregation และ filtering ฝั่งเซิร์ฟเวอร์ในสถานการณ์เหล่านี้ได้ แม้ว่าถ้าคุณสามารถใช้ GraphQL ได้ คุณก็อาจข้ามการใช้ BFF ไปได้เลย