การออกแบบเว็บไซต์ที่ดี ตอนที่ 5 … การจัดการข้อมูล
เมื่อเรามีเน้ือหา (หรือข้อมูล) ที่ดีแล้ว แต่หากเราไม่มี การจัดการข้อมูล อย่างมีประสิทธิภาพและมีกลยุทธ์ในการนำเสนอ นับว่าเป็นการ “เสียของ” และ “น่าเสียดาย” เป็นอย่างยิ่ง
การจัดการข้อมูล หรือ Content Management เป็นองค์ประกอบหนึ่งของเว็บไซต์ที่ดีนั้น หลายๆ คนเข้าใจว่าคือการนำเสนอข้อมูลบนหน้าเว็บเท่านั้น แต่ในความจริงแล้วในส่วนที่เป็นหลังบ้าน ไม่ว่าจะเป็นโครงสร้างของเว็บ โครงสร้างของฐานข้อมูล การดูแลจัดการ หรือความปลอดภัยของข้อมูล ล้วนเป็นส่วนหนึ่งของการจัดการข้อมูลทั้งสิ้น
ในส่วนนี้เป็นส่วนหลังบ้านจึงเป็นหน้าที่ของมนุษย์ IT ทั้งหลายในการจัดการ โดยสถาปัตยกรรมที่ได้รับการยอมรับและถูกใช้กันอย่างแพร่หลายในการพัฒนา Application คือ “3-Tier Architecture” หรือ สถาปัตยกรรม 3 ชั้น นั่นเอง
หลักการง่ายๆ คือ แต่ละชั้นจะถูกแยกออกจากกันโดยเด็ดขาดทั้ง Hardware, Software, การพัฒนาและการดูแลรักษา เพื่อเป็นการเพิ่มประสิทธิภาพ เพื่อเพิ่มความปลอดภัย เพื่อให้ดูแลรักษาได้ง่ายขึ้น เพื่อลดเวลาในการพัฒนา และอื่นๆ อีกมากมาย
ลองมาดูกันว่า 3-Tier Architecture ทำงานยังไงนะครับ
1. Presentation Tier ทำหน้าที่ในการแสดงผลบนหน้าจอของผู้ใช้งาน (Users) เช่นสี ฟอนท์ เมนู ฟอร์ม และอื่นๆ ที่เป็นเรื่องของหน้าตา ความสวยงาม หรือ User Interface (UI) นั่นเอง
อีก 2 Tier เป็นการทำงานบน Server และผู้ใช้งานจะมองไม่เห็นการทำงานของมัน มักจะเกิดขึ้นเมื่อมีการ อ่าน/เขียน/แก้ใข เนื้อหาหรือข้อมูลบนเว็บไซต์
2. Logic Tier ทำหน้าที่ในการประมวลตรรกะที่ต้องใช้ในการทำงาน ประมวลผลและควบคุมการทำงานต่างๆ เช่น การคำนวน VAT ของการสั่งซื้อสินค้า การคิดยอดรวมทั้งสิ้น การสมัครสมาชิกของเว็บ เป็นต้น โดย Logic Tier จะรับ Input หรือคำสั่งจาก Presentation Tier แล้วดำเนินการให้คำสั่งเสร็จสมบูรณ์ โดยมีการอ่าน/เขียน/แก้ใข ข้อมูลจาก Database Tier มาเป็นส่วนหนึ่งของกระบวนการด้วย
3. Database Tier – ทำหน้าที่เก็บข้อมูลทั้งหมดของ Website
เพื่อให้เห็นภาพที่ชัดเจน ขอตัวอย่างให้ฟัง…ดังนี้
ขณะที่ผมกำลังเข้าไปใช้งานเว็บขายของเว็บหนึ่ง ทุกสิ่งที่ผมกำลังเห็นบนหน้าจอของผมก็คือ Presentation Tier หลังจากนั้นผมกดปุ่มเพื่อให้มันแสดงประวัติการซื้อสินค้าที่ผมเคยซื้อบนเว็บนี้ คำสั่งนั้นก็จะถูกส่งไปยัง Logic Tier ซึ่งจะเป็นผู้เรียกข้อมูลจาก Database ขึ้นมาทำการประมวลผลและส่งกลับไปให้ Presentation Tier เพื่อแสดงผลให้ผมดูอีกที
ฟังดูช่างง่ายดายไม่มีอะไรซับซ้อน แต่ถ้ามันแสดงผลได้ช้า เว็บล่มบ่อย ปัญหาอาจจะเกิดมาจากการออกแบบโครงสร้างที่ไม่ดีก็เป็นได้
โครงสร้างของ Database นั้นข้อมูลจะถูกเก็บอยู่ในรูปแบบของตาราง (Table) ในแนวตั้งของตาราง (Colum) แต่ละช่องเรียกว่า Fields ส่วนแนวนอน (Row) เรียกว่า Record เช่นข้อมูลของลูกค้า ถูกเก็บในตารางที่ชื่อ “Customer” โดยที่ 1 Record ก็คือข้อมูลของลูกค้า 1 คนที่ประกอบไปด้วย Fields ต่างๆ เช่น User ID, ชื่อ, นามสกุล, และรายละเอียดอื่นๆ ที่เป็นของลูกค้าคนนั้นเป็นต้น
นอกจากนั้นก็อาจจะมีตารางอื่นๆ อีกมากมายแล้วแต่ว่าเว็บให้บริการอะไรและผู้ให้บริการต้องการเก็บข้อมูลอะไรบ้าง ตารางเหล่านี้จะต้องมีความสัมพันธ์ (Relationship) กันเพื่อดึงข้อมูลที่เกี่ยวข้องขึ้นมาประกอบกัน ดังเช่นตัวอย่าง ข้อมูลการซื้อสินค้าในอดีตของผม ตาราง “Order” กับตาราง “Customer” จะต้องมี Field หนึ่งที่มีความสัมพันธ์กัน เพื่อที่จะบอกว่า รายการสั่งซื้อไหนเป็นของผมบ้าง จึงจะสามารถเรียกข้อมูลขึ้นมาแสดงผลได้อย่างถูกต้อง
ดังนั้นการออกแบบตาราง ความสัมพันธ์ของตาราง และการออกแบบ Fields ต่างๆ บน Database นอกจากจะมีผลกับความเร็วในการดึงข้อมูลขึ้นมาเพื่อประมวลและแสดงผลแล้ว ยังมีผลต่อการจัดหมวดหมู่ของข้อมูล และการสร้างเมนูของตัวเว็บเองอีกด้วย
ส่วนนี้จะเป็นส่วนหน้าบ้าน เป็นส่วนที่ลูกค้าจะเข้ามาใช้งาน เข้ามาบริโภคข้อมูลที่เจ้าของเว็บกำลังนำเสนอ และเพราะ Content คือสิ่งที่สำคัญที่สุดของเว็บไซต์ ดังนั้นหน้าที่ที่สำคัญที่สุดของผู้ดูแลบ้านหรือ เว็บแอดมิน ก็คือ..
การจัดการเนื้อหา หรือ Content Management นั่นเอง
Content แต่ละชิ้นไม่ว่าจะอยู่ในรูปแบบของตัวอักษร ภาพนิ่ง ภาพเคลื่อนไหว หรือ คลิ๊ปเสียงก็ตาม ล้วนมีวงจรชีวิตหรือขั้นตอนในการจัดการ 5 ขั้นดังต่อไปนี้
1. สร้าง – หมายถึงการเตรียมการต่างๆ ก่อนจะเอา Content ขึ้นเว็บ เช่นการถ่ายทำและตัดต่อคลิ๊ปวีดีโอ การร่างบทความ การถ่ายและแต่งภาพ เป็นต้น
2. เผยแพร่ – เมื่อทุกอย่างพร้อมก็โพสขึ้นไปบนเว็บ ณ วินาทีที่ผู้ใช้งานสามารถเข้าถึง Content ได้ก็ถือว่ามันถูกเผยแพร่แล้วนั่นเอง
3. แก้ใข – แก้ใขเนื้อหาหรือตัว Content ที่ถูกเผยแพร่ไปแล้ว
4. เฝ้าดู – การทำให้ Content สามารถถูกเข้าถึงได้อย่างต่อเนื่อง การเข้าไปโต้ตอบกับโพสหรือเว็บบอร์ด การอัพเดทเวอร์ชั่น
5. ลบหรือหยุดให้บริการ – Content บางตัวมีอายุของมัน เมื่อมันหมดอายุจึงจำเป็นต้องเอามันออกจากเว็บไซต์หรือหยุดให้บริการ
ในการจัดการสิ่งเหล่านี้ เราใช้ Content Management System (CMS) เป็นตัวจัดการ เอาง่ายๆ…ขณะที่คุณใช้ Facebook โพสนู่นนี่นั่นให้เพื่อนๆ ได้เห็นได้อ่าน ในโหมดนั้น Facebook ก็ทำหน้าที่เป็น CMS ของคุณนั่นเอง
สิ่งที่สำคัญต้องจัดการอย่างมีกลยุทธ์ด้วย เช่นการโพสไม่ใช่สักแต่โพสๆ ขึ้นไป ทำเสร็จเมื่อไหร่ก็โพส แต่จะต้องศึกษาด้วยว่าโพสวันไหน เวลาไหนให้ผลลัพธ์ดีที่สุด หรือความถี่ในการโพสควรจะมากน้อยขนาดไหน หรือหน้าไหนหรือส่วนไหนของเว็บที่คนเข้ามากและน้อยที่สุด หรือ Content แบบไหนที่เป็นที่นิยม เป็นต้น
เพราะข้อมูลเหล่านี้เป็นประโยชน์กับคุณทั้งสิ้น และข้อมูลสถิติที่เกี่ยวข้องกับการใช้งานเหล่านี้มักจะมีใน CMS อยู่แล้วหรือมีของฟรีให้ใช้กันมากมาย ดังนั้นจงนำมาใช้เผื่อประโยชน์ของคุณเอง
การจัดการเนื้อหา หรือ ข้อมูล ควรจะถูกกำหนดเป็นขั้นตอนที่ทุกฝ่ายที่เกี่ยวข้องใช้เป็นหลักในการปฏิบัติการ และควรถูกกำหนดให้เป็นส่วนหนึ่งในการออกแบบเว็บไซต์ ซึ่งจะครอบคลุมทั้งในส่วนหน้าบ้านและหลังบ้าน
ในส่วนของหลังบ้าน คือการเก็บข้อมูล การเตรียมข้อมูลให้พร้อมสำหรับการนำไปใช้ เป็นเรื่องของโครงสร้างของเว็บไซต์และโครงสร้างของข้อมูล การออกแบบด้วย 3-Tier Architecture (Presentation, Logic, และ Database) สามารถช่วยให้เว็บทำงานได้อย่างรวดเร็ว มีความปลอดภัยสูง มีเสถียรภาพสูง และดูแลจัดการได้ง่าย
ในส่วนหลังบ้าน คือการเอาข้อมูลจากส่วนหลังบ้านไปนำเสนอให้ผู้ใช้งาน เป็นเรื่องของกลยุทธ์ในการนำเสนอและจัดการกับเนื้อหาสาระบนเว็บอันเกิดจากการศึกษาวิเคราะห์ข้อมูลของเว็บ โดยมีเครื่องมือที่ชื่อ Content Management System เป็นหัวใจสำคัญ
สำหรับตอนหน้า..เราจะพูดถึงเรื่อง Search กันว่าควรจะเป็นยังไง