ในการพัฒนาระบบ Web application ด้วย Go
สามารถพัฒนาร่วมกับ html template ได้
มีลักษณะเช่นเดียวกับการใช้ Template engine ต่างๆ นั่นเอง
แต่ Go นั้นมี package html/template มาให้เราใช้งานอยู่แล้ว
ดังนั้นมาดูกันว่าเราจะพัฒนากันอย่างไร

เริ่มต้นทำความเข้าใจกับการใช้งาน template ก่อน
ตัวอย่างการใช้งานไม่ยากเท่าไร

แต่ในการใช้งานจริง นั้นเรามักจะมีไฟล์ template อยู่ในรูปแบบของ HTML
ส่วนข้อมูลต่างๆ ที่ทำการแสดงผลใน HTML
จะทำงานใน Go แล้วทำการ binding ไปยังตัวแปร
ที่กำหนดอยู่ใน HTML template

ตัวอย่างของ HTML template  (/templates/demo.html)

คำอธิบาย
ทำการแสดงข้อมูลชื่อของ project_name
และแสดงข้อมูล Topic ประกอบไปด้วย TopicID, Name ในรูปแบบของ list

โดยในฝั่ง server side นั้นจะทำการ binding ข้อมูล
ระหว่าง HTML template กับข้อมูล project_name และ results ดังนี้

คำอธิบาย
ทำการดึงข้อมูล HTML template จากไฟล์ demo.html  อยู่ใน folder templates
ทำการ binding ข้อมูลกับ HTML template โดยข้อมูลมีรูปชนิด map
ซึ่งเป็นแบบ key-pair-value

เมื่อทำการ run server ด้วย Go แล้วเข้าไปใช้งานผ่าน browser
จะแสดงผลการทำงานดังนี้

Screen Shot 2557-05-07 at 8.44.27 PM

การ build และ deploy ระบบ web application

มีรูปแบบที่น่าสนใจ
เริ่มตั้งแต่โครงสร้างของ project จะอยู่ในรูปแบบนี้

Screen Shot 2557-05-07 at 8.48.38 PM

โดยนำเอาของที่ไม่ใช่ Go ออกมาไว้ข้างนอก folder src
ซึ่งแบ่งออกเป็น folder ย่อยๆ ดังนี้

  • static ใช้สำหรับเก็บไฟล์ css, javascript, font เป็นต้น
  • templates ใช้สำหรับเก็บไฟล์ HTML template ต่างๆ
  • src ใช้สำหรับเก็บ code ที่พัฒนาด้วยภาษา Go เท่านั้น

ใน src จะมี folder server และข้างใน folder จะมีไฟล์ server.go
ซึ่งเป็นไฟล์หลักที่ใช้ run web server

ในไฟล์ server.go นี้ใช้เพียงแค่ start Web server เท่านั้น
จึงมี code ที่สั้นกระชับ

มาถึงในส่วนการ build ระบบกันบ้าง

เขียนขั้นตอนการ build ระบบ web application ไว้ในไฟล์ script ดังนี้

คำอธิบาย
ขั้นตอนการทำงานเป็นดังนี้

  1. ทำการ backup GOPATH ปัจจุบัน
  2. ทำการกำหนด GOPATH ใหม่ คือตำแหน่งปัจจุบันที่อยู่
  3. ทำการจัดรูปแบบของ code ใน project ด้วยคำสั่ง gofmt
  4. ทำการ compile และติดตั้ง package ที่เกี่ยวข้องทั้งหมด

โดยจะสร้างไฟล์ binary ขึ้นมาใน folder bin/ เข้ามา

เมื่อทำการ build เสร็จแล้ว ให้ทำการ start server ด้วยคำสั่ง

$./bin/server

หรือสำหรับ Windows

>bin\server.exe

จะเห็นได้ว่า รูปแบบการทำงานลักษณะนี้
ทำให้เราพัฒนาระบบได้ง่ายและสะดวกสบายขึ้นเป็นกองเลย ว่าไหมครับ !!!

ตัวอย่าง source code ที่พัฒนาอยู่ที่นี่ Up1 :: Demo Go with HTML template

Tags:,