แนะนำการทำเว็บ (ตอนที่ 1)

ในสมัยก่อนนั้นการที่เราจะทำเว็บให้ออกมาสวยได้นั้นยากกว่าการพิมพ์งานบน MS. Word เสียอีกต้องมีการทำความเข้าใจในภาษา html ให้ดีเสียก่อน ซึ่งในตอนนั้นเหมือนกันหัดเขียนโปรแกรมโปรแกรมหนึ่งเลยทีเดียว แล้วถ้า ต้องการทำงานในลักษณะตอบโต้ได้ (CGI) มันทำได้ยากยิ่งเพราะว่ายังหาหนังสือที่เป็นภาษาไทยได้ยากมากและส่วนใหญ่ที่ทำกันตอนนั้นจะเป็นคนที่มุ่งมั่นอ่าน หนังสือภาษาอังกฤษ ซึ่งต้องขอบคุณอินเตอร์เน็ตที่ทำให้การอ่านหนังสือ พวก cgi และ html แบบภาษาอังกฤษทำได้ง่ายและฟรีโดยที่ไม่ต้องสั่งซื้อตามศูนย์หนังสือต่างๆ ในตอนนั้นมีคนกระโดดลงมาทำกันยังน้อย และส่วนใหญ่จะเป็นผู้ที่ทำงานด้านนี้อื่นๆ ในแขนงคอมฯพิวเตอร์มาก่อนมากกว่า ซึ่งเว็ปในสมัยนั้น ที่ดังและทำให้เราๆ ได้รู้จักและทำให้เกิดเหล่านักทำเว็ปรุ่นใหม่ๆ คือ Sanook.com แต่ก่อนที่เราจะพูดถึงนั้นเรามาพูดถึงเว็ปรุ่นพี่ที่ทำมานานและยังไม่เปลี่ยนแปลงคือเว็ป Pantip.com ที่เป็นเหมือนศูนย์รวมเว็ปบอร์ดที่ใหญ่ที่สุดใน ประเทศไทยและยังเป็นที่ที่มีอัตราการเข้าใช้บริการมากสุดอีกด้วย เว็ป Pantip.com ยังรักษาลักษณะขอเว็ปตั้งแต่ อดีตจนปัจจุบันได้ดี

ทำไมเราต้องทำเว็ป

นี่คือคำถามที่เราต้องตอบให้ได้ก่อนการทำเว็ปทั้งหมด เพราะว่าไม่อย่างงั้นก็เหมือนการออกเดินเรือที่ไร้จุดหมายครับ

เราต้องรู้ก่อนครับว่าเราจะทำเว็ปมาเพื่ออะไร ทำเว็ปแนวอะไรบ้างและจะมีอะไรในเว็ปและทำให้ใครครับ เพื่อกำหนดกลุ่มเป้าหมายครับ และต่อมานั้นการที่เราจะทำเว็ปออกมานั้นเราจำเป็นต้องทำการสร้างโครงร่างก่อน หรือในภาษาของนักเขียนโปรแกรมที่เรียกว่า การออกแบบอัลกอริทึม หรือการร่าง FlowChart นั้นเอง มีคำถามตามมาหลังจากที่บอกไปนั้นคือทำออกมาทำไม ทำไมไม่ทำก่อน หรือทำไม ลองๆ ทำไปก่อนหล่ะ นั้นใช่ครับ หลายๆ คนอาจจำคิดว่าการทำอย่างนี้อาจจะไม่จำเป็นมากมายนัก ไม่ต้องเรื่องมาก แต่ว่าในความเป็นจริงแล้ว ถ้าเว็ปของเรานั้นใหญ่โตมากขึ้น กว่าว่างแผนที่ดีในตอนแรกจะเห็นผลอย่างแน่นอน อย่างเว็ปของผมในครั้งแรกๆ นั้น ทำในแบบ html ทั้งหมด เวลาจะแก้ไขแต่ละทีนั้นก็ต้องมาเปิด html editor เพื่อแก้ไข ซึ่งมีข้อดีที่ว่าเรากำหนดรูปแบบเว็ปได้หลากหลายแต่ว่าพอเว็ปเริ่มมีจำนวนหน้ามากขึ้นปัญหาในการปรับปรุงดูแลรักษาก็ตามมา คือการแก้ไข ลิ้งส์เมนูต่างๆ จะเปลี่ยนทีก็ต้องทำทุกหน้าหรือจะมีการแก้ไขระบบอื่นๆก็ต้องมาตามแก้กันใหม่อีก นี่หล่ะครับปัญหาที่เราจำเป็นต้องทำก่อนการทำเว็ป การดีไซด์เป็นสิ่งดีแต่ว่าการวางแผนการทำงานย่อมสำคัญกว่า ผมจะยกตัวอย่าง ว่าการวางแผนแบบใดที่ดีก่อนดีกว่าครับ

หลักการแรกคือกำหนดลักษณะการใช้งานก่อนว่าเราจะกำหนดว่าผู้ใช้เป็นกลุ่มผู้ใช้แบบใด จำใช้ เทคโนโลยี อะไรในการเขียน การจัดการเว็ป กำหนดรูปแบบการติดต่อกับผู้ใช้ กำหนดลักษณะการแก้ไข การเข้าถึงข้อมูลของผู้ดูแลเว็ปเอง ด้วย เพื่อการแก้ไขที่รวดเร็วและมีการผิดพลาดน้อยใช้เวลาในการดูแลน้อย เอาเวลาไปสร้างเนื้อหาแทน ครับ ยกตัวอย่างเว็ป แห่งหนึ่ง ทำเว็ปแนว Portal ITลักษณะคือการปรับปรุงเนื้อหาที่ทันที มีการตอบสนองได้ตลอดเวลา มีการปรับปรุง เนื้อหาได้จากหน้าเว็ปโดยไม่จำเป็นต้องมีอะไรมากเวลาปรับปรุงเนื้อนอกจาก Browser และใช้ระบบฐานข้อมูลขนาดใหญ่ เพราะว่าเนื้อหาแนวนี้นั้นมีการปรับเปลี่ยนตลอดเวลา และเร็วลักษณะเว็ปนั้นต้องมีการทำเมนูแบบตอบโต้ได้อย่าง ต่อเนื่องและมีระบบสมาชิกไว้ในการทำสถิติและบริการอื่นๆ ในอนาคตได้

เมื่อเราได้รูปแบบโดยรวมแล้ว เราก็มาดูว่าเราจะทำโดยใช้อะไร ถ้าใช้ html ธรรมดา ท่าทางจำไม่ได้แน่เพราะว่าการทำระบบข้อมูลลงเว็ปโดยผ่าน browser นั้นทำไม่ได้แน่ เราจึงต้องใช้ CGI (Common Gateway Interface) มาช่วยในที่นี้ ก็ต้องมาดูอีกหล่ะครับว่าเราจะใช้อะไรในภาษาเหล่านีเพราะว่ามีมากเหลือเกินไม่ว่าจะเป็น Perl , PHP , ASP , JSP , ฯลฯ แต่ในที่นี้เราใช้ฐานข้อมูลขนาดใหญ่ จะมาใช้ Perl + DBText คงไม่ได้ เพราะว่าเปลื้องการโปรแซสระบบมากเกินไป อาจทำให้ระบบล่มได้ง่าย หรือจะ Perl + MySQL ก็คงยากเพราะว่าต้องมีฝีมือในการทำและไม่เป็นที่นิยม ซึ่งถ้าระบบในการทำเว็ปคุณอิงในด้านของ Windows NT Family ก็คงจะเป็น ASP + ODBC (พวก MsSQL ในแนวๆ ของ Microsoft หรือ Oracle ครับ ) หรือถ้าเป็น UNIX (Linux , FreeBSD , Solaris) ก็คงจำเป็น PHP + MySQL ที่เป็นเหมือนของที่ทำมาคู่กันเลยทีเดียว เมื่อเราได้ลักษณะการทำงานของภาษาที่เขียนเว็ปแล้วก็มาถึงการออกแบบหล่ะครับ (ในที่นี้ผมจะไม่พูด ถึงการเขียนโปรแกรมเหล่านี้นะครับ เพราะว่าคงเข้าใจกันได้ถ้าศึกษาด้านนี้โดยตรงจากเว็ปหรือหนังสือครับ )

ต่อมาเราจะพูดถึงการออกแบบหน้าเว็ปกันสักนิด

การออกแบบหน้าเว็ปนั้นเราต้องคำนึงถึงการใช้งานที่สะดวกในการค้นหาข้อมุลภายในเว็ปต่างๆ ซึ่งเราควรไล่การทำระบบค้นหาจากส่วนที่มีความสำคัญมากกว่าลงมาแต่ว่า ในการทำเว็ปนั้นไม่ ควรที่จะมีการกระพริบเน้นมากจนเกินไปครับ ไม่งั้นมันจะดูลายตาและสับสนในการให้ความสำคัญของเนื้อหาครับ การออกแบบเมนูการใช้งานนั้นควรคำนึงถึงการไล้สัดส่วนการใช้งานครับไม่งั้นจะดูเละและที่ดีคือการจัดอันดับความสำคัญครับ และ การออกแบบควรใช้สีที่ดูสบายตาง่ายๆ แต่สื่อความหมายได้ดีในเนื้อหาของเว็ปนั้นๆครับ การออกแบบโลโก้นั้นควรทำออกมาให้มีเอกลักษณ์เฉพาะของเว็ปครับ ไม่งั้นมันจะไปเหมือนๆหรือคล้ายๆ ของชาวบ้านเค้าครับ แต่ว่าการออกแบบควรคำนึง ถึงความเป็นไปได้ในการใช้งานและการออกแบบระบบ CGI ด้วยเพราะบางครั้งข้อจำกัดในความเร็วในการโหลดข้อมูลของผู้ใช้ที่ต้องคำนึงถึงพอสมควรไม่งั้นจะกลายเป็นว่าโชว์ความสวยงานอลังการมากกว่าเนื้อหาความรุ้ของเว็ป ที่เราต้องการนำเสนอนะครับ

แนวทางการทำงานของเว็ปการทำระบบทีมงานก็มีความสำคัญไม่น้อย การแบ่งหน้าที่ในการดูแลส่วนต่างๆ ทำให้เว็ปดูมีการตอบสนองมากขึ้น มีการดูแลระบบต่างๆ ได้อย่างดีไม่มีข้อผิดพลาดต่างๆ ให้เห้นมากนัก การดูแลนั้นรวมไปถึงการดูแลหน้าตาเว็ป ระบบโปรแกรมต่างๆ ในเว็ป การปรับปรุงการใช้งานจากการที่ผู้ใช้เสนอแนะมาเพื่อปรับปรุงพัฒนาเพื่อทำให้ผู้ใช่พอใจและไม่ดูเป็นการคัดตาของผุ้ใช้ต่างๆ การรับทราบการตอบรับขอเสนอแนะของผู้ใช้มีดีที่เราไม่ต้องมาคอยตรวจสอบเองแต่ให้ผู้ใช้ติติงมาก อาจจะใช้เวลามากหน่อยแต่ว่าตรงจุดเป้าหมายมากกว่าที่เราคิดมากนัก ซึ่งในลักษณะนี้จะใช้ได้ดีคือเว็ปแนวการค้าและแนวบริการครับ

ครั้งต่อไปเราจะมาดูแนวทางในการประชาสัมพันธ์เว็ปให้ได้ดี และรวมถึงเว็ปแนวไหนที่ควรทำและรูปแบบเว็ปแบบใดเหมาะแก่การทำระบบเว็ปธุรกิจ

ซอฟต์แวร์และโปรแกรม สองคำนี้มีความหมายต่างหรือเหมือนกัน อย่างไร

ผมได้พบกับคำถามในเว็บบอร์ด pantip.com ที่มีคำตอบที่น่าสนใจครับ

ซอฟต์แวร์และโปรแกรม…สองคำนี้มีความหมายต่างหรือเหมือนกัน ???

ถ้าเหมือน เหมือนอย่างไร และถ้าต่าง ต่างอย่างไร

เรามีคำตอบครับ ………..


ตอบ : ซอฟต์แวร์เป็นคำทั่วไปที่ใช้กล่าวถึงโปรแกรมหลายชนิดที่ใช้ในการสั่งงานคอมพิวเตอร์และ อาจเกี่ยวข้องกับอุปกรณ์(คำว่าฮาร์ดแวร์ใช้อธิบายถึงคอมพิวเตอร์ในด้านกายภาพและอุปกรณ์ที่เกี่ยวข้อง)

เราอาจจะนึกถึงซอฟต์แวร์ในแง่ของคอมพิวเตอร์ในส่วนที่สามารถเปลี่ยนแปลงได้(updatable) และฮาร์ดแวร์ในแง่ของคอมพิวเตอร์ในส่วนที่เปลี่ยนแปลงไม่ได้ ซอฟต์แวร์, บ่อยครั้งมีการแบ่งเป็น แอปพลิเคชั่นซอฟต์แวร์(โปรแกรมซึ่งปฏิสัมพันธ์กับผู้ใช้โดยตรง) และ ซอฟต์แวร์ระบบ(ประกอบไปด้วย ระบบปฏิบัติการและโปรแกรมอะไรก็ตามแต่ที่สนับสนุนการทำงานของแอปพลิเคชั่นซอฟต์แวร์) สำหรับคำว่า middleware บางครั้งใช้ในการอธิบายถึงโปรแกรมที่ทำหน้าที่เชื่อมต่อระหว่างแอปพลิเคชั่นและซอฟต์แวร์ระบบ หรือ ระหว่างแอปพลิเคชั่นต่างชนิดกัน (ยกตัวอย่าง การร้องขอการทำงานระยะไกลจากแอปพลิเคชั่นซึ่งอยู่บนระบบปฏิการชนิดหนึ่งไปสู่แอปพลิเคชั่นซึ่งรันอยู่บนระบบปฏิบัติการอีกชนิดหนึ่ง)

สำหรับกลุ่มของซอฟต์แวร์ไม่สามารถจะจัดเข้ากลุ่มใดๆได้นั้นเรียกว่า ซอฟต์แวร์อรรถประโยชน์(utility) ซึ่งเป็นโปรแกรมขนาดเล็กที่มีประโยชน์ ยูทิลิตี้บางตัวมาพร้อมกับระบบปฏิบัติการ เช่นเดียวกับแอปพลิเคชั่น ยูทิลิตี้สามารถจะติดตั้งได้อย่างอิสระและไม่ได้เป็นส่วนหนึ่งของระบบปฏิบัติการ

ซอฟต์แวร์ยังแบ่งได้อีกหลายชนิดเช่น shareware (ส่วนมากจะต้องซื้อเมื่อครบกำหนดระยะเวลาทดลองใช้), liteware(แชร์แวร์ซึ่งมีการตัดความสามารถบางอย่างออกไป), freeware(ซอฟต์แวร์ฟรีแต่มีการจำกัดสิทธิ), public domain software(ฟรีและไม่มีข้อบังคับ) และ open source(ซอฟต์แวร์ที่มีการแจกจ่ายซอร์สโค้ดและใช้งานได้อย่างไม่จำกัดรวมทั้งสามารถปรับปรุงได้)

แอปพลิเคชั่นซอฟต์แวร์ทั่วๆไปมีดังนี้

– ซอฟต์แวร์ผลิตภัณฑ์ เช่น ตัวประมวลผลคำ(word processor), ตารางคำนวณ(spreadsheet) และเครื่องมือที่ใช้กันโดยผู้ใช้ส่วนใหญ่
– ซอฟต์แวร์นำเสนอ(presentation software)
– ซอฟต์แวร์กราฟฟิกส์ สำหรับนักออกแบบกราฟฟิกส์
– ซอฟต์แวร์ช่วยเหลือการออกแบบ CAD/CAM
– แอปพลิเคชั่นทางด้านวิทยาศาสตร์เฉพาะทาง
– ซอฟต์แวร์สำหรับอุตสาหกรรม (ยกตัวอย่างเช่น ธนาคาร, ประกันภัย, ค้าปลีก และอุตสาหกรรมการผลิต)


ในทางคอมพิวเตอร์ โปรแกรมคือชุดของคำสั่งที่ให้คอมพิวเตอร์ปฏิบัติ ในคอมพิวเตอร์ยุคใหม่ที่ จอห์น วอน นิวแมนน์ วางรูปแบบเอาไว้เมื่อปี 1945 โปรแกรมประกอบไปด้วยชุดของของสั่งที่ทำงานหนึ่งคำสั่งในหนึ่งหน่วยเวลา โดยทั่วไปโปรแกรมจะเก็บอยู่ในพื้นที่ของหน่วยเก็บข้อมูลที่สามารถเข้าถึงได้โดยคอมพิวเตอร์ คอมพิวเตอร์จะดึงคำสั่งมาทีละหนึ่งคำสั่งแล้วประมวลผลและดึงคำสั่งถัดไปมาทำงานเช่นนี้เป็นวงรอบ(cycle) หน่วยเก็บข้อมูลหรือหน่วยความจำสามารถเก็บข้อมูลซึ่งก็คือคำสั่งที่ให้คอมพิวเตอร์ปฏิบัติตาม(โปรแกรมคือชุดข้อมูลชนิดพิเศษที่บอกว่าจะปฏิบัติอย่างไรกับ แอปพลิเคชั่นหรือข้อมูลของผู้ใช้)

โปรแกรมสามารถแบ่งออกเป็นแบบปฏิสัมพันธ์(interactive) หรือชุดคำสั่ง(batch) ในเชิงของการโต้ตอบระหว่างคอมพิวเตอร์กับผู้ใช้และความต่อเนื่องในการประมวลผล โปรแกรมแบบปฏิสัมพันธ์จะรับข้อมูลจากผู้ใช้(หรือจากโปรแกรมอื่นที่ทำหน้าที่เสมือนผู้ใช้) โปรแกรมชุดคำสั่ง(batch) จะรันโปรแกรมและทำงานจนกระทั่งชุดของคำสั่งหมดจึงหยุดทำงาน โปรแกรมแบบชุดคำสั่งจะเริ่มทำงานโดยผู้ใช้สั่งให้โปรแกรมรัน ตัวแปลคำสั่ง(command interpreter) หรือเว็บบราวเซอร์เป็นตัวอย่างอย่างของระบบปฏิสัมพันธ์ และโปรแกรมคอมพิวเตอร์ที่ใช้พิมพ์ข้อมูลเงินเดือนของพนักงานในบริษัทเป็นตัวอย่างหนึ่งของโปรแกรมชุดคำสั่ง(batch program) งานพิมพ์ก็เป็นส่วนหนึ่งของโปรแกรมชุดคำสั่ง

เมื่อคุณต้องการสร้างโปรแกรม คุณจะต้องเขียนมันโดยใช้ภาษาคอมพิวเตอร์ ข้อความในแต่ละประโยคเรียกว่า "source program" จากนั้นคุณจะต้องคอมไพล์ ซอร์สโปรแกรม(ด้วยโปรแกรมพิเศษที่เรียกว่าคอมไพล์เลอร์) และผลลัพธ์ที่ได้จะเรียกว่า object program (อย่าสับสนกับคำว่า object-orieted-programming) มีอีกสองคำที่ใช้เรียก object program ประกอบด้วย object module และ compiled program ภายใน object program จะประกอบไปด้วยชุดข้อความที่เป็นเลข 0 และ 1 เรียกว่า machine language ซึ่งเป็นภาษาที่โปรเซสเซอร์เข้าใจและสามารถสั่งให้โปรเซสเซอร์ประมวลผล

ภาษาเครื่องจักร(machine language) ของคอมพิวเตอร์จะสร้างขึ้นโดยคอมไพล์เลอร์ซึ่งเข้าใจการทำงานของคอมพิวเตอร์, สถาปัตยกรรมคอมพิวเตอร์, รวมไปถึงชุดคำสั่งที่เป็นไปได้และความยาวของคำสั่ง(ในหน่วยบิต) ในแต่ละคำสั่งของโปรเซสเซอร์(machine instruction)

ข้อมูลจาก whatis.com


จากข้อมูลข้างต้นอาจจะยากในการทำความเข้าใจ ถ้าจะอธิบายง่ายๆก็คือ program คือชุดคำสั่งซึ่งถูกเขียนขึ้นเพื่อสั่งให้คอมพิวเตอร์ทำงานอะไรสักอย่าง แต่เมื่อโปรแกรมถูกคอมไพล์แล้วจะกลายเป็น software ทันที ซึ่งซอฟต์แวร์ก็แบ่งเป็น system software และ application software ซึ่งซอฟต์แวร์พวกนี้จะอยู่ในหน่วยความจำหรือหน่วยเก็บข้อมูล ในขณะที่โปรแกรมอยู่ในไฟล์


ทิ้งท้าย …….

คำแปลตามลักษณะของหนังสือคำศัพท์โดยตรงครับ ไว้อ้างอิงครับ

Software = The programs, routines, and symbolic languages that control the functioning of the hardware and direct its operation.

source : The American Heritage® Dictionary of the English Language, Fourth Edition
Copyright © 2000 by Houghton Mifflin Company.
Published by Houghton Mifflin Company. All rights reserved.

Program = A set of coded instructions that enables a machine, especially a computer, to perform a desired sequence of operations.

source : The American Heritage® Dictionary of the English Language, Fourth Edition
Copyright © 2000 by Houghton Mifflin Company.
Published by Houghton Mifflin Company. All rights reserved.

from: dictionary.com