Software Architecture
฿1,990
Quantity/ 96 items available
1


Description

ในการออกแบบซอฟต์แวร์ขนาดใหญ่ในองค์กร มักจะมีการทำงานร่วมกันโดยคนจำนวนมาก หากเราต่างคนต่างเขียนซอฟต์แวร์ไปในทางที่ตัวเองเห็นว่าดี ซอฟต์แวร์ที่แต่ละคนทำก็อาจจะทำงานร่วมกันไม่ได้หรือมีปัญหาตอนที่ Integrate เป็น Solution ใหญ่

ดังนั้น การทำซอฟต์แวร์ในระดับนั้นจึงจำเป็นต้องมีการแบ่งสันปันส่วน และมีการออกแบบโครงสร้างเพื่อให้ทำงานร่วมกันได้ดีและมองเห็นภาพรวมไปในทางเดียวกัน ทั้งระหว่างนักพัฒนาในทีมพัฒนากันเอง และระหว่างทีมพัฒนาและทีมธุรกิจ รวมไปถึงทีมอื่นๆที่เกี่ยวข้อง นอกจากนี้หลังพัฒนาเสร็จยังต้องสามารถดูแลต่อได้ทั้งงานซัพพอร์ต แก้ไขปัญหาบั๊ก และการพัฒนาต่อยอดเพิ่มเติมได้ในอนาคต

ในคอร์สนี้เราจะพูดถึง Software Architecture Pattern พื้นฐานที่นิยมใช้ในการออกแบบซอฟต์แวร์ขนาดใหญ่ โดยเน้นไปที่เรื่องของรูปแบบการร่วมมือ (Collaboration Pattern) ต่างๆ ตั้งแต่


  • Specialist Collaboration การออกแบบโครงสร้างทำงานร่วมกันของทีม Software Developer หลากหลายส่วน เช่น Frontend, Backend, Database และส่วนอื่นๆ เป็นต้น
  • Business Collaboration การออกแบบโครงสร้างล้อไปตาม Business model ขององค์กร
  • Organization Collaboration การออกแบบโครงสร้างสำหรับองค์กรขนาดใหญ่ที่มีหลายทีมทำงานร่วมกันโดยไม่ขัดแย้งกัน

โดยพูดถึง ข้อดี-ข้อเสีย ประโยชน์และจุดประสงค์ของแต่ละ Pattern เพื่อให้ผู้เรียนเข้าใจหลักการของแต่ละแบบ และสามารถนำไปเลือกใช้ได้ตรงกับงานและโมเดลขององค์กรได้ ประกอบการสอนด้วยวิดีโอการจำลองสถานการณ์ที่เกิดขึ้นในการทำงานจริง และ Case Study ต่างๆ แทรกประกอบตลอดบทเรียน

คอร์สนี้เหมาะสำหรับ

  • นักพัฒนาซอฟต์แวร์ที่ต้องการเข้าใจพื้นฐานการพัฒนาซอฟต์แวร์ขนาดใหญ่ที่ต้องทำงานร่วมกันเป็นทีม
  • นักพัฒนาที่กำลังผันตัวไปเป็น Software Architect
  • นักพัฒนาซอฟต์แวร์ในองค์กรขนาดใหญ่
  • Software architect ที่ต้องการกลับมาเข้าใจพื้นฐานการออกแบบและที่มาที่ไปของ Pattern เหล่านี้อีกครั้งหนึ่ง

รายละเอียดเพิ่มเติม

ในคอร์สนี้จะเน้นเรื่องทฤษฎีและการออกแบบ อาจจะมีโค้ดเพียงเล็กน้อยและถ้ามีจะเขียนในภาษา Java และคอร์สนี้จะเน้นการออกแบบพัฒนาส่วนของ Backend เป็นหลัก

ความรู้ที่ต้องมี

  • สามารถเขียนโปรแกรมได้
  • เข้าใจหลักการ OOP พื้นฐาน (สามารถเรียนรู้เพิ่มเติมได้ที่นี่)
  • หากเคยมีประสบการณ์พัฒนาซอฟต์แวร์เป็นทีมจะเข้าใจได้ง่ายขึ้น แต่ถ้าไม่มีคอร์สนี้จะช่วยผู้เรียนให้เห็นภาพการทำงานเป็นทีมได้ชัดเจนมากยิ่งขึ้น