Front-end กับ Back-end ต่างกันยังไง..?
หลายๆ คนที่เพิ่งจะเข้าวงการ Web Developer แรกๆ ก็คงจะงงๆ กับคำศัพท์ในวงการมากมาย (ซึ่งผมก็เป็นหนึ่งในนั้น) เพราะฉะนั้นวันนี้เราจะมาเริ่มกันด้วยคำศัพท์พื้นฐานสุดๆ อย่าง Front-end และ Back-end กัน!
Front-end Developer คืออะไร..?
Front-end Developer เป็นการพัฒนาในฝั่งหน้าบ้านของ Application คิดสภาพว่าเรากำลังเปิดร้านอาหารร้านหนึ่ง สำหรับ Front-end แล้วมันก็คือฝั่งของการบริการลูกค้า คอยเสิร์ฟอาหารและเครื่องดื่ม และคอยรับคำสั่งจากลูกค้าตามที่ลูกค้าต้องการอยู่ตลอดเวลา
ดังนั้นฝั่ง Front-end ก็คือฝั่งที่อยู่ใกล้ชิดกับลูกค้ามากที่สุด จึงต้องมีความสะดวกและเข้าถึงง่าย และเร็วอีกด้วย ลองสมมุติว่าร้านอาหารมีพนักงานบริการที่บริการลูกค้าไม่ดี แถมช้าอีก คิดว่าลูกค้าจะพอใจไหมล่ะ?
เครื่องมือพัฒนาสำหรับชาว Front-end Developer
ก็จะมีเครื่องมือมากมายให้เลือกใช้ เช่น
- React.js
- Vue.js
- Angular.js
Back-end Developer คืออะไร..?
Back-end Developer จะเป็นการพัฒนาในฝั่งของหลังบ้าน สมมุติเหมือนเดิมว่าเป็นร้านอาหารแห่งหนึ่ง ถ้าเรามีฝั่งหน้าบ้านหรือพนักงานที่คอยให้บริการลูกค้าแล้ว แต่ไม่มีฝั่งหลังบ้านที่เป็นคนที่คอยผลิตอาหารหรือเครื่องดื่มเพื่อให้ฝั่งหน้าบ้านคอยนำไปเสิร์ฟ คำถามคือแล้วจะมีฝั่งหน้าบ้านไปทำไมกัน ในเมื่อบริการลูกค้าแล้วแต่ดันไม่มีของมาให้เสิร์ฟ?
แต่จริงๆ แล้วเว็บบางเว็บก็ไม่จำเป็นจะต้องมีฝั่ง Back-end ก็ได้ หากไม่ได้มีระบบที่มีความซับซ้อนมาก เช่น ต้องการให้เว็บแสดงเนื้อหาเท่านั้น ก็อาจจะตัดฝั่ง Back-end ทิ้งไปได้เลย แต่ถ้าเป็นเว็บที่ต้องคอยให้บริการลูกค้า เช่น เว็บ E-Commerce ที่จะต้องมีบริการแสดงสินค้า บริการตะกล้าสินค้า และบริการสั่งซื้อสินค้า ซึ่งบริการเหล่านี้จะต้องเพิ่งฝั่ง Back-end อย่างหลีกเลี่ยงไม่ได้
ฝั่ง Back-end จะไปยุ่งเกี่ยวกับงานด้าน Database และการทำ APIs เพื่อให้ฝั่ง Front-end นำไปเชื่อมกับฝั่งหน้าบ้าน ก็เหมือนกับ การปรุงอาหารเพื่อให้เด็กเสิร์ฟนำไปเสิร์ฟนั่นเอง
เครื่องมือพัฒนาสำหรับชาว Back-end Developer
สำหรับฝั่ง Back-end จะมีเครื่องมือที่จะต้องใช้อยู่ค่อนข้างเยอะ แต่โดยคร่าวๆ แล้วก็จะมีดังนี้
- Express.js (สำหรับทำ APIs)
- DBMS เช่น MySQL, PostgreSQL (สำหรับการจัดการฐานข้อมูล)
สรุป
ทั้ง Front-end และ Back-end ก็มีส่วนสำคัญในการให้บริการ Application โดย Front-end จะเป็นงานฝั่งหน้าบ้านที่คอยให้บริการกับผู้ใช้โดยตรง ส่วน Back-end จะเป็นฝั่งหลังบ้านที่คอยดูแลระบบต่างๆ เช่น ฐานข้อมูล และการจัดการข้อมูล ในบางเว็บอาจจะมีแค่ฝั่ง Front-end ก็ได้ หรือจะมีทั้ง Front-end และ Back-end ก็ได้เช่นกัน