Skip to main content

แนะนำ Go

go-api-intro สามารถดู video ของหัวข้อนี้ก่อนได้ ดู video

มาทำความรู้จักกับงาน Backend development

Backend development คือการพัฒนาระบบหลังบ้านของ Application

  • ไม่ว่าจะเป็น Web, App หรือ Platform อะไรก็ตามที่อาศัยการสื่อสารด้านหลัง (โดยไม่ให้ผู้ใช้งานมองเห็นหรือทราบถึงการทำงาน) = นั่นคือการทำงานที่ Backend

โจทย์ใหญ่ๆของงาน Backend development

  • บำรุงรักษาระบบฐานข้อมูล (Database) ที่เก็บข้อมูลของ Application เช่น ข้อมูลผู้ใช้, ข้อมูลสินค้า, ข้อมูลที่จำเป็นต้องเก็บของ Application
  • สร้าง API ที่ช่วยทำให้ฝั่ง Frontend (Web, Application) สามารถสื่อสารกับ Database (รวมถึงการทำงานร่วมกับทีม Frontend)
  • จัดการ Server และ Deployment
  • จัดการ Security ที่เข้าถึงข้อมูลจากการโจมตี รวมถึงการเข้ารหัสข้อมูล

ดังนั้นขอบเขตงาน Backend development จึงจะประกอบไปด้วย 2 อย่างใหญ่ๆ

  1. การพัฒนา Server ที่สามารถพัฒนาได้หลากหลายภาษาตั้งแต่ PHP, Python, Ruby, Node.js รวมถึง Go ที่เรากำลังพูดถึงกัน
  2. การพัฒนา Database ที่ Server จะต้องเป็นคนสื่อสารเพื่อทำการเก็บข้อมูล ซึ่งก็จะมีตั้งแต่ SQL อย่าง MySQL, PostgreSQL หรือ NoSQL อย่าง MongoDB เป็นต้น

ใน Course ของ GoAPI Essential เราจะพูดถึงทั้ง 2 ตัวนี้ไปพร้อมๆกัน เพื่อให้ทุกคนเห็นภาพของการพัฒนา Backend development ทั้งหมดออกมาได้

รู้จักภาษา Go

Go เป็นภาษาที่ถูกเริ่มต้นพัฒนาในปี 2007 โดย Robert Griesemer, Rob Pike และ Ken Thompson เปิดตัวในปี 2009 เป็น Open source ที่ถูกพัฒนาโดย Google ซึ่งมีจุดประสงค์เพื่อทำให้การทำงานเรียบง่าย มีประสิทธิภาพ และ ง่ายต่อการอ่านและเขียน

จุดเด่นของ Go

  • Static Type = จะต้องมีการประกาศ type อยู่ตลอดเวลา (type-checked)
  • Compilation = go เป็นภาษาที่ต้องมีการ compile ออกมา เพื่อให้ได้ performance ระดับเดียวกันกับภาษาที่ต้อง compile อย่าง c, c++ (เป็นระดับ machine code ออกมาแทน) มันเลยส่งผลทำให้ Go มี performance ที่ดีด้วย
  • Garbage Collection = สามารถจัดการ memory กับตัวแปรที่ไม่ได้ใช้งานแล้ว (เพื่อเป็นการประหยัดการใช้งาน memory และป้องกันการ memory leaks เกิดขึ้น)
  • Concurrency Support = มี standard library ที่สามารถทำ concurrent programming ได้ (ผ่าน goroutines และ channel) ทำให้สามารถทำคำสั่งแบบ multi thread ได้

ซึ่งทั้ง Course นี้เราจะพาทำความรู้จักงาน Backend development ผ่านภาษา Go กัน ว่าฝั่ง Backend จะมีงานลักษณะประมาณไหนบ้าง และ Backend ควรจะต้อง Focus กันยังไงบ้าง