ชื่อว่าหลายๆคนคงเคยได้ยินกับคำว่า Micro services แล้วความหมายของมันละคืออะไร ก่อนจะไปทำความรู้จักกับ Micro Frontends เรามาทำความรู้จักคล้าวๆเกียวกับตัวของ Micro services กันก่อนดีกว่า ในการพัฒนาโปรแกรมเราจะได้ยินคำว่า Micro services บ่อยมากๆเลย โดยตัวของ Micro services มีลักษณะการพัฒนา Application หรือเว็บไซต์ เป็น services ย่อยๆ โดยส่วนใหญ่แล้วจะนิยมติดต่อกับผ่าน API เท่านี้ทุกคนก็คงเข้าใจกันแล้วเราไปทำความรู้จักกับ Micro Frontends กัน

 

ภาพตัว Frontend และ Backend ใช้สำหรับเป็นภาพปกประกอบบทความ ทำความรู้จักกับ Micro Frontend
ทำความรู้จักกับ Micro Frontend

 

 

ปัญหาที่ dev Font-end พบเจอบ่อย
ในการพัฒนา application ตัวนึงแน่นอนว่า นักพัฒนาก็จะหาตัวของ framework ต่างๆมาครอบเพื่อที่จะให้การทำงานรวมกันมันทำงานได้ แต่ปัญหาจะเกิดขึ้นหากเรา ต้องการทำงานมากว่า 1 เครื่องมือละจะทำไง ? หรือต้องการที่จะเปลี่ยนรูปแบบการเขียนโค้ด หรือ framework ตัวใหม่มาใช้งาน ปํญหาก็อาจจะเกิดขึ้นได้แบบ 100% และเวลาแก้ก็แก้กันแบบปวดหัวกันเลยทีเดียว นักพัฒนาก็เลยไปใช้ในส่วนของตัว Micro services เพราะไม่เกิดปัญหาแบบนี้เพราะไรละถึงไม่เกิด ?


Micro Frontends คืออะไร ?
ถ้าให้เขียนแล้วอ่านแบบเข้าใจง่ายๆเลยก็คือ Micro Frontends มีรูปแบบการแยกส่วนประกอบต่างๆ ออกมาเป็น Component หากว่า Monolithic แบบเดิมเวลาที่จะพัฒนาเว็บไซต์ขึ้นมา 1 เว็บ จะสักเกตุได้ว่าทุกอย่างจะอยู่รวมกันไม่ว่าจะเป็น Fontend, Backend, Database จะอยู่รวมกันหมดเลย และต่อมาก็มีการแบ่งการทำงานเป็น Font-end, Back-end อย่างชัดเจนแล้ว ก็หาตัว API มาใช้เป็นตัวเชื่อมต่อระหว่าง Fontend และ Backend

การทำงานที่ในรูปแบบต่างๆ
Monolithic Frontends

 

ในส่วนของตัว Micro Frontends มีรูปแบบการทำงานจะไม่ใช่แค่ Fontend, Backend อีกต่อไปแต่จะเป็นในด้านของมุมมองการทำงานซะมากกว่า โดยจะทำการแบ่งทีมต่างๆได้ดังนี้

  • Team Inspire
    คือทีมที่ช่วยลูกค้าในการค้าหาสินค้าได้ยังไงบางนั้นเอง
  • Team Search
    คือทีมที่ทำยังไงให้เกิดการค้นหา Product ได้อย่างถูกต้องรวดเร็วและแม่นยำ
  • Team Product
    ทีมนี้จะทำหน้าที่ในการแสดงสินค้าต่างๆผ่านทาง Product ไม่ว่าจะเป็นราคารูปภาพ สี ต่างๆ
  • Team Checkout
    ทีมนี้คือทีมที่จะสร้างประสมการณ์ที่ดีให้กับลูกค้าที่มาใช้บริการจาก Product ของเรา

จะเห็นได้ว่าไม่มีการแยกตำแหน่งแบบใครทำ Fontend, Backend แต่จะแบ่งตาม Feature/Customer Experience ที่ทำการมอง Product ของเราสรุปง่ายๆก็คือทีมไหนทำส่วนตรงไหนก็ทำตรงนั้นนั้นและเพื่อที่ลูกค้าที่ใช้บริการ Product ของเราจะได้รับประสบการณ์ที่ดีนั้นเอง

การทำงานแบบ Micro Frontends
Organisation in Verticals

 

หลักการณ์และข้อปัฎิบัติในการทำงานของ Micro Frontends มีทั้งหมด 5 ตัวได้แก่

  1. Be Technology Agnostic
    คือทีมแต่ละทีมที่พัฒนาทั้งหมดมีอิสระในการเลือกใช้งาน framework ต่างๆได้ด้วยตนเอง
  2. Isolate Team Code
    จะไม่แชร์โค้ดรวมกันในระหว่างทีม ตัวส่วนของหัวข้อนี้เค้าจะให้เราเน้นไปที่ความเป็นอิสระระหว่างทีมแต่ละทีมเพื่อที่จะเอามารวมกันให้ได้ง่ายมากขึ้น
  3. Establish Team Prefixes
    คือการตั้ง Prefixes ของทีมต่างๆที่ให้มีการแยกความรับผิดชอบงานต่างๆในทีมอย่างชัดเจน
  4. Favor Native Browser Features over Custom APIs
    การเรียกใช้งานในส่วนของ HTML Attriburtes ต่างๆที่เราใช้งานกันอยู่ทุกวันนี้แทนการใช้งานเครื่องมืออื่นๆหรือการสร้างระบบใหม่ขึ้นมา
  5. Build a Resilient Site
    คือการใช้งานเครื่องมือต่างๆควรมีวิธีในการจัดการกับเครื่องมือที่เรานำมาใช้งานด้วยในกรณีที่มัน Error เกิดปัญหา เพื่อจะให้มีวิธีในการรองรับการทำงาน

 

โดยในปัจุบัน Micro Frontends ได้มีการถูกนำมาใช้เนืองจากปัญหาของ Monolithic หรือการทำงานแบบ Microservices พบเจอปัญหาบ่อย Micro Frontends จะเป็นในเรื่องของมุมมองการใช้งานของลูกค้าเพื่อที่จะแบ่งหน้าที่และรับผิดชอบในงานที่แตกต่างกันออกไปนั้นเอง จะไม่เหมือนกับการแบ่งงานเป็น Fontend, Backend และมีการนำเทคนิค Web Components เข้ามาช่วยในการทำงาน หลายๆองกรศ์ก็จะใช้ Project Management ที่ต่างกัน หรือคืออะไร Knowledge Management

 

อ้างอิง

  • micro-frontends, [ออนไลน์], เข้าถึงได้จาก https://github.com/neuland/micro-frontends/tree/dependabot/bundler/addressable-2.8.1
  • ทำความรู้จักกับ Micro Frontend, [ออนไลน์], เข้าถึงได้จาก https://medium.com/devspree/%E0%B8%97%E0%B8%B3%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81%E0%B8%81%E0%B8%B1%E0%B8%9A-micro-frontend-ffe9887499fa
  • Micro Frontends, [ออนไลน์], เข้าถึงได้จาก https://micro-frontends.org/
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
การทำ natural language processing ด้วยภาษา python
โดย wightfall พ 24 เม.ย. 2024 12:54 pm บอร์ด Python Knowledge
0
2
พ 24 เม.ย. 2024 12:54 pm โดย wightfall View Topic การทำ natural language processing ด้วยภาษา python
การเขียนโปรแกรมเชิงวัตถุด้วยภาษา python
โดย wightfall อ 23 เม.ย. 2024 4:13 pm บอร์ด Python Knowledge
0
22
อ 23 เม.ย. 2024 4:13 pm โดย wightfall View Topic การเขียนโปรแกรมเชิงวัตถุด้วยภาษา python
แนะนำการเดินทางและสถานที่ท่องเที่ยวในจังหวัดตรังและการเดินทางไปกรุงเทพ
โดย wightfall จ 22 เม.ย. 2024 3:41 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
33
จ 22 เม.ย. 2024 3:41 pm โดย wightfall View Topic แนะนำการเดินทางและสถานที่ท่องเที่ยวในจังหวัดตรังและการเดินทางไปกรุงเทพ
ติดตั้ง ESXi ใหม่ จำเป็นต้อง Format Harddisk ก่อนติดตั้งไหมครับ
โดย จิ๊กโก๋ ส 20 เม.ย. 2024 2:29 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
3
158
อ 23 เม.ย. 2024 2:24 pm โดย mindphp View Topic ติดตั้ง ESXi ใหม่ จำเป็นต้อง Format Harddisk ก่อนติดตั้งไหมครับ
แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
โดย internTk21 ศ 19 เม.ย. 2024 11:56 am บอร์ด MindPHP News & Feedback
1
51
ศ 19 เม.ย. 2024 12:15 pm โดย internTk21 View Topic แจ้งปัญหาโพสบทความลงในเว็บบอร์ดส่วนตัวไม่ได้
สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
โดย eange08 ศ 19 เม.ย. 2024 9:56 am บอร์ด Programming - PHP
1
98
ศ 19 เม.ย. 2024 10:28 am โดย mindphp View Topic สอบถาม Google Structure ที่เหมาะกับคอร์สเรียนควรใช้แบบไหนดีค่ะ
คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว tar, zip
โดย mindphp พ 17 เม.ย. 2024 7:42 pm บอร์ด Linux - Web Server
0
134
พ 17 เม.ย. 2024 7:42 pm โดย mindphp View Topic คำสั่งรวมไฟล์ และ บีบอัดในคำสั่งเดียว  tar, zip
เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
โดย mindphp จ 15 เม.ย. 2024 11:10 pm บอร์ด PostgreSQL
1
305
จ 15 เม.ย. 2024 11:14 pm โดย mindphp View Topic เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line