มารู้จักกับส่วนต่าง ๆ ของ Full Stack กันเถอะ

Sommai Krangpanich
pnpsolution
Published in
2 min readMar 1, 2022
มารู้จักกับส่วนต่าง ๆ ของ Full Stack กันเถอะ
มารู้จักกับส่วนต่าง ๆ ของ Full Stack กันเถอะ

จากบทความก่อนหน้านี้เราได้ทราบถึงแนวทางการนำ Full Stack ไปใช้งานภายใน องค์กรแล้วและได้มีการอธิบายถึง stack ต่าง ๆ ที่นิยมใช้ในปัจจุบันอยู่ 3 stack อ่านบทความก่อนหน้าได้ที่นี่นะครับ

จากบทความก่อนหน้านี้เราจะพบว่าในเกือบทุก stack เลยนั้นมีการแบ่งออกเป็น 3 ส่วนหลัก ๆ นั่นคือ Front End, Back End และ Storage โดยใน 3 ส่วนนั้นจะทำงานร่วมกันและแบ่งหน้าที่กันชัดเจน

Front End

ส่วนนี้เป็นส่วนที่ยุ่งเกี่ยวผู้ใช้งาน (User) เป็นหลัก ในปัจจุบันนิยมทำให้อยู่ในรูปแบบ Web Application เป็นส่วนมากเนื่องจากง่ายต่อการ deployment นั่นเอง

ในตัว Front End นั้นในปัจจุบันภาษาที่นิยมทำในส่วนนี้มักจะเป็น HTML, CSS, Javascript และมี Framework ที่นิยมอยู่ 3 ตัวคือ Angular, React, Vue สำหรับท่านไหนที่ต้องการเริ่มต้นการเป็น Front End Dev แนะนำให้หัดเขียน HTML, CSS, Javascript ก่อนเลย จะให้ดีแนะนำเขียนแบบ TypeScript ไปด้วยเลยจะดีมาก

Back End

ส่วนนี้จะทำหน้าที่เป็นตัวกลางระหว่าง Front End กับ Storage ในปัจจุบันนิยมทำกันออกมาในรูปแบบ REST API สามารถสร้างมาได้จากหลายภาษา เช่น Java, Python, PHP, C#, Go, Node เป็นต้น แนะนำให้เลือกกันตามที่ทีมงานถนัดได้เลยครับ

ในกรณีที่อยากได้ภาษาเดียวที่สามารถเขียนได้ทั้ง Back End และ Front End ตอนนี้มีอยู่ภาษาเดียวเท่านั้นนั่นคือ JavaScript (แนะนำให้เขียนแบบ TypeScript) ตัวภาษา Javascript นั้นสามารถทำงานบน Browser ได้เป็นอย่างดีอยู่แล้ว ส่วน Back End ก็ใช้ Node เป็นตัว Runtime

ข้อดีของ Node คือเป็นภาษาที่ทำงานได้ระดับกลาง ๆ คือไม่ได้เร็วมากแต่ก็ไม่ช้า เหมาะสำหรับการนำมาทำ REST API / GraphQL ทำให้ตอนนี้ถ้าเป็นในการทำ Full Stack จึงนิยมนำ Node JS เป็นตัวเลือกหลักในการทำ Back End

Storage

ส่วนนี้มีหน้าที่ในการจัดเก็บข้อมูล เช่น ฐานข้อมูล, รูปภาพ, ไฟล์เอกสาร เป็นต้น ในส่วนนี้จะมีการเชื่อมโยงกับ Back End เป็นหลัก ในปัจจุบันมี ฐานข้อมูลหลากหลายที่สามารถทำมาใช้ได้ เช่น Oracle, MySQL, SQL Server, Postgres และแบบ NoSQL เช่น MongoDB

การดึงข้อมูลจาก Storage ด้วย API นั้นมีอยู่หลายแนวทาง แต่แนวทางที่นิยมกันมีอยู่ 2 แบบ คือ

แบบใช้ SQL Statement

แบบนี้คือการเขียน SQL ซึ่งเป็นภาษาสำหรับจัดการฐานข้อมูลส่งตรงเข้าตัวฐานข้อมูลเลย ข้อดีของการทำแบบนี้คือง่ายต่อการเขียนและทดสอบ ได้ในเรื่อง Performance ข้อเสียคือในตัว RDBMS ในแต่ละค่ายนั้นมักจะมี คำสั่งที่เฉพาะของตัวเองทำให้ไม่สามารถเขียนให้เป็นกลาง ๆ และทำไปให้กับ database ตัวอื่น ๆ ได้

แบบ ORM

แบบนี้คือการทำ Class มา Map กับ Table ที่อยู่ในฐานข้อมูลเสียก่อน ข้อดีของแบบนี้คือตัว ORM จะรับหน้าที่ในการ Generate SQL Statement มาให้แล้วส่งไปที่ฐานข้อมูล ทำให้สามารถใช้ code ชุดเดิมได้ในหลาย ๆ Database (ขึ้นอยู่กับว่า ORM ที่เราใช้รองรับมากน้อยแค่ไหน) ข้อเสียของวิธีการนี้คือเรื่องการดึงข้อมูลที่มีความซับซ้อนสูงจะค่อนข้างลำบาก และบางครั้ง SQL Statement ที่ถูกสร้างจาก ORM นั้นประมวลผลช้าเกินไป ทำให้การ tuning เป็นไปด้วยความยากลำบาก

สำหรับท่านใดมีข้อสอบภามสามารถเข้ามาพูดคุยแลกเปลี่ยนกันได้ที่ facebook : pnpsolution หรือ web site : www.pnpsw.com ได้ครับ

--

--