14Feb, 2020
Language blog :
Thai
Share blog : 
14 February, 2020
Thai

Software Architecture แบบไหนเหมาะกับธุรกิจของคุณ

By

3 mins read
Software Architecture แบบไหนเหมาะกับธุรกิจของคุณ

Monolith

โปรแกรมเมอร์ส่วนใหญ่น่าจะรู้จักและเคยผ่านมากันเกือบทุกคน มันคือ Software Architechture รูปแบบหนึ่งที่มีการใช้ resource และ environment เดียวกันทั้งโปรเจค แต่การพัฒนาการสามารถแยกกัน หรือพัฒนาไปพร้อมกันระหว่าง Backend และ Frontend ขึ้นอยู่กับทีมว่าแบบไหนเหมาะ และเร็วกับทีม

ข้อดี

แน่นอนว่าเมื่อ software architechture มันมีการใช้งาน environment เดียวกันมันจึงช่วยให้ทีมที่พัฒนาสามารถใช้งาน library เดียวกันและ เมื่อมีการเปลี่ยนแปลงใดๆ ทีมก็จะได้ code base เดียวกัน ทำให้สามารถพัฒนา produdct หรือ mvp ออกมาได้เร็วตามไปด้วย

ข้อเสีย

เมื่อระบบใหญ่ขึ้นเรื่อยๆ component ต่างๆ ซับซ้อนขึ้นและผูกติดกันมากขึ้นทำให้แต่ละ component แต่ละ function เมื่อมีการเรียกข้ามกันไปมาจะมีความผิดพลาดได้ง่ายสำหรับคนใหม่ที่พึ่งจะเข้ามาในทีม และระบบจะผูกกันแน่นมากขึ้นเรื่อยๆ ถ้าการออกแบบระบบไว้ไม่รัดกุมตั้งแต่แรก

เหมาะกับใคร

  • เหมาะกับทีมเล็กๆ ไม่เกิน 4 คน 
  • ต้องการสร้าง product ที่เป็น MVP (Minimal Viable Product)
  • ไม่ต้องการเสียเวลากับ Architecture ที่ซับซ้อน 
  • ไม่ต้องการเสียเวลากับการ deploy ทีละ componentBackend/Frontendฃ

สำหรับทีมที่แบ่งหน้าที่ความรับผิดชอบกันชัดเจน คือมีทีมที่ดูแล code base แยกกัน ซึ่งการพัฒนาระบบที่แยกกันชัดเจนแบบนี้จะช่วยในเรื่องของอิสระในการพัฒนา ในการใช้งาน library ต่างๆ 

เหมาะกับใคร

  • ทีมตั้งแต่ 5 คนขึ้นไป
  • product ที่ออกแบบเพื่อให้ scale แยกกันได้
  • มี pm/po ที่ทำหน้าที่ในการสื่อสารระหว่างทีม เพื่อให้ทุกคนเห็นภาพเดียวกัน

ข้อดี

  • การพัฒนาแยกส่วนชัดเจน
  • มีความคล่องตัวในการพัฒนา และการ deploy ที่เป็นอิสระ
  • การ scale ของแต่ละส่วนทำได้ง่ายและเป็นอิสระ
  • ภาษาโปรแกรมที่ใช้พัฒนาขึ้นกับความถนัดของแต่ละทีม 

ข้อเสีย

  • ต้องมีการสื่อสารระหว่างทีมที่ดี
  • ทรัพยากรที่ต้องใช้มากขึ้นทั้งคน และงบประมาณ
  • บางทีการจะ deploy แต่ละ feature อาจจะต้องรอให้อีกฝ่ายทำให้เสร็จก่อนค่อย deploy ตามได้ Microservice

คือการแยก service ต่างๆ ออกมาตาม business logic หรือวัตถุประสงค์ของงานนั้นๆ ทำให้ service ต่างๆ สามารถทำงานได้ด้วยตัวเองโดยไม่ยึดติดกับ service อื่นๆ มากนัก ซึ่งการสื่อสารจะทำผ่าน API Gateway เป็นหลัก และเมื่อมี service ใดๆ ทำงานผิดพลาดก็จะไม่กระทบไปยัง service อื่นๆ ทำให้ระบบมีความน่าเชื่อถือขึ้นด้วยนั่นเอง

เหมาะกับใคร

  • ทีมขนาดใหญ่ 
  • product ที่ต้องการความน่าเชื่อถือของระบบสูง

ข้อดี

  • developer สามารถพัฒนาด้วยภาษาที่ตัวเองถนัด หรือเหมาะสมกับ service นั้นๆ 
  • การ deploy เป็นอิสระ
  • การ scale เป็นอิสระ
  • เมื่อ service ใดๆ มีปัญหาก็จะไม่กระทบกับระบบโดยรวม

ข้อเสีย

  • ต้องมี format ของข้อมูลเพื่อให้สอดคล้องกันมากที่สุด
  • ใช้ทรัพยาการค่อนข้างมาก ทั้งเรื่องของการ monitor, deploy และการทำ infra automation
  • เมื่อ service มีจำนวนมาก การ deploy หรือการทำ manual จะยากมากเช่นกัน
Written by
Senna Labs
Senna Labs

Subscribe to follow product news, latest in technology, solutions, and updates

- More than 120,000 people/day visit to read our blogs

Other articles for you

25
July, 2024
JS class syntax
25 July, 2024
JS class syntax
เชื่อว่าหลายๆคนที่เขียน javascript กันมา คงต้องเคยสงสัยกันบ้าง ว่า class ที่อยู่ใน js เนี่ย มันคืออะไร แล้วมันมีหน้าที่ต่างกับการประกาศ function อย่างไร? เรามารู้จักกับ class ให้มากขึ้นกันดีกว่า class เปรียบเสมือนกับ blueprint หรือแบบพิมพ์เขียว ที่สามารถนำไปสร้างเป็นสิ่งของ( object ) ตาม blueprint หรือแบบพิมพ์เขียว( class ) นั้นๆได้ โดยภายใน class

By

4 mins read
Thai
25
July, 2024
15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G
25 July, 2024
15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G
ผู้ให้บริการเครือข่ายในสหรัฐฯ ได้เปิดตัว 5G ในหลายรูปแบบ และเช่นเดียวกับผู้ให้บริการเครือข่ายในยุโรปหลายราย แต่… 5G มันคืออะไร และทำไมเราต้องให้ความสนใจ บทความนี้ได้รวบรวม 15 สิ่งที่ทุกธุรกิจต้องรู้เกี่ยวกับ 5G เพราะเราปฏิเสธไม่ได้เลยว่ามันกำลังจะถูกใช้งานอย่างกว้างขวางขึ้น 1. 5G หรือ Fifth-Generation คือยุคใหม่ของเทคโนโลยีเครือข่ายไร้สายที่จะมาแทนที่ระบบ 4G ที่เราใช้อยู่ในปัจจุบัน ซึ่งมันไม่ได้ถูกจำกัดแค่มือถือเท่านั้น แต่รวมถึงอุปกรณ์ทุกชนิดที่เชื่อมต่ออินเตอร์เน็ตได้ 2. 5G คือการพัฒนา 3 ส่วนที่สำคัญที่จะนำมาสู่การเชื่อมต่ออุปกรณ์ไร้สายต่างๆ ขยายช่องสัญญาณขนาดใหญ่ขึ้นเพื่อเพิ่มความเร็วในการเชื่อมต่อ การตอบสนองที่รวดเร็วขึ้นในระยะเวลาที่น้อยลง ความสามารถในการเชื่อมต่ออุปกรณ์มากกว่า 1 ในเวลาเดียวกัน 3. สัญญาณ 5G นั้นแตกต่างจากระบบ

By

4 mins read
Thai
25
July, 2024
จัดการ Array ด้วย Javascript (Clone Deep)
25 July, 2024
จัดการ Array ด้วย Javascript (Clone Deep)
ในปัจจุบันนี้ ปฏิเสธไม่ได้เลยว่าภาษาที่ถูกใช้ในการเขียนเว็บต่าง ๆ นั้น คงหนีไม่พ้นภาษา Javascript ซึ่งเป็นภาษาที่ถูกนำไปพัฒนาเป็น framework หรือ library ต่าง ๆ มากมาย ผู้พัฒนาหลายคนก็มีรูปแบบการเขียนภาษา Javascript ที่แตกต่างกัน เราเลยมีแนวทางการเขียนที่หลากหลาย มาแบ่งปันเพื่อน ๆ เกี่ยวกับการจัดการ Array ด้วยภาษา Javascript กัน เรามาดูตัวอย่างกันเลยดีกว่า โดยปกติแล้วการ copy ค่าจาก value type ธรรมดา สามารถเขียนได้ดังนี้

By

4 mins read
Thai

Let’s build digital products that are
simply awesome !

We will get back to you within 24 hours!Go to contact us
Please tell us your ideas.
- Senna Labsmake it happy
Contact ball
Contact us bg 2
Contact us bg 4
Contact us bg 1
Ball leftBall rightBall leftBall right
Sennalabs gray logo28/11 Soi Ruamrudee, Lumphini, Pathumwan, Bangkok 10330+66 62 389 4599hello@sennalabs.com© 2022 Senna Labs Co., Ltd.All rights reserved.