TL;DR
การเริ่มต้นเรียนการทำเวปไซท์ด้วยตัวเอง บอกเลยว่า #ยากโคตร เพราะว่า เวปเป็นอะไรที่มีองค์ประกอบเยอะจัด จนบางทีไม่รู้ว่าจะเริ่มตรงไหน ซึ่ง /me ผ่านช่วงเวลานั้นมาแล้ว เลยถือโอกาสสรุปจุดสำคัญ 5 ข้อที่ควรรู้เพื่อเตรียมตัว เตรียมใจ และปรับพื้นฐานความคิด ก่อนที่จะเริ่มเรียนรู้มัน
กว่าจะเริ่มเขียนเวปอะไรซักเวป ถ้าเริ่มด้วยตัวเอง บอกเลยว่า #ยากโคตร เพราะว่า เวปเป็นอะไรที่มีองค์ประกอบเยอะจัด จนบางทีไม่รู้ว่าจะเริ่มตรงไหน แต่ด้วยความที่ลองผิดลองถูกอยู่นาน จนสุดท้ายไปเจอคำพูดหนึ่งบอกว่า
จากมะกี้ พอได้ลองมองอะไรกว้างๆ ได้เข้าใจว่า #อะไรคือตัวตนของเวป การปรับมันให้เป็นไปตามที่เราต้องการก็ไม่ใช่เรื่องยากอีกต่อไป #จริงๆนะ ช่วงนี้พอมีเวลาว่างๆ ก็เลยอยากสรุป #ไอ้ตัวตน ที่ #me นั่งมอง อยู่หลายปีมาเป็นหัวข้อๆ เผื่อเป็นความเข้าใจสำหรับบางคน #สู้ๆฮะ #เขียนเวปมันไม่ยาก
#1 จาก Urls ถึง หน้า Website
จะเริ่มต้นเขียนเวปได้ สิ่งแรกที่ต้องรู้ คือ มันมาได้ไง? จากไหน? แค่พิมพ์ www.facebook.com ใส่ช่องใน Chrome #รณรงค์ให้ทุกคนใช้โครม แล้วอยู่ๆก็ #วิ้ง เฟสบุ๊คก็มาปรากฏอยู่ตรงหน้า ซึ่งแท้ที่จริงแล้ว ในคอมของเราไม่รู้จักหรอกว่า Facebook คืออะไร แต่สิ่งที่ Chrome ทำให้คือ มันจะส่ง request ไปถามคอมเครื่องอื่นๆว่า “เฮ้ๆ ใครรู้จัก Facebook บ้างฟร่ะ” พอปลายทาง #คอมของเฟสบุ๊ค รู้ว่ามีคนถามถึง มันก็จะ response กลับมา “ผมอยู่ตรงนี้ฮะ หน้าตาผมเป็นแบบนี้” ซึ่งก็จะส่งหน้าตาของเวปมา แล้วเราก็ได้เล่นตามที่เราต้องการ
กระบวนการแบบนี้ เรียกว่า “client-server architecture” ซึ่ง #คอมของเฟสบุ๊ค เราจะเรียกมันว่า server และ #คอมของตัวเราเอง เรียกว่า client #จริงๆมันซับซ้อนกว่านี้นะ
#2 HTML&CSS ไม่ได้มีไว้คำนวน
ภายใน response ที่ส่งกลับมาจาก server ส่วนใหญ่มักเป็นสิ่งที่บอกว่า #หน้าตาเวป เป็นยังไง ซึ่งจะใช้ HTML และ CSS ในการกำหนดหน้าตา/รูปแบบ/ลักษณะ ของเวป แต่อย่างไรก็ตาม ทั้ง HTML และ CSS จะมีแค่ในส่วนที่ใช้ #อธิบายหน้าตา เพียงอย่างเดียวเท่านั้น #เท่านั้น และ ยกภาระในการคำนวนให้กับส่วนอื่นๆ โดย HTML มักอธิบาย layout และให้ CSS อธิบาย สีสัน/ขนาด/ตำแหน่ง ของส่วนต่างๆ
#3 เขียน Javascript ยังไง ผู้ใช้ก็เห็นอย่างงั้น
ภาระในการคำนวนอันหนักอึ้งนี้ จะถูกแบ่งเป็น 2 ส่วน คือ ส่วนที่จะคำนวนที่ฝั่ง client #คอมของตัวเราเอง และ ฝั่ง server #คอมของเฟสบุ๊ค โดย Javascript เป็นการคำนวนที่จัดการที่ฝั่ง client ทั้งนี้เพราะ โค้ดส่วนนี้รันฝั่ง client ซึ่งภายใน #คอมของตัวเราเอง เราทุกคนจึงมีสิทธิที่จะแอบดู-ดัดแปลง-ก๊อปปี้ ได้อย่างอิสระ หรือแม้แต่ ปิดไม่ให้โค้ดรัน จึงสำคัญมากที่จะไม่ใส่ข้อมูลสำคัญใดๆ อย่าง #password #ความลับต่างๆ ลงไปใน Javascript เพราะซักวัน จะต้องมีคนไปเจอแน่นอน #หมอลักฟันธง
- เสริม ในการเขียน Javascript มันค่อนข้างยาก จึงมีสิ่งที่เรียกว่า jQuery เข้ามาช่วยให้เขียนง่ายขึ้น #ลอง #ยังมีตัวอื่นอีกนะ
#4 คลิ๊กลิงค์เมื่อไร ก็เท่ากับ รัน PHP ไปซะแล้ว
สำหรับในส่วน server จะเป็นส่วนสำคัญ ที่ไม่ใช่แค่คำนวน แต่ต้องทำหน้าที่ตัดสินใจ เพื่อตอบสนองคลิ๊กต่างๆที่เกิดขึ้น โดยเฉพาะเพื่อจัดการกับข้อมูลที่ส่งมา จึงต้องมีส่วนของ Database เข้ามาเกี่ยวข้องด้วย
ซึ่งเนื่องจากภายใน server เราจำเป็นต้องเก็บข้อมูลสำคัญเยอะแยะ #ข้อมูลไร้สาระก็เยอะพอๆกัน ทำให้สิ่งที่จะส่งไปเป็น response จาก PHP จึงจะเป็นเฉพาะ ผลลัพย์จากการรันเท่านั้น จะไม่มีการส่งโค้ดไปแสดง จึงเป็นไปได้ยากที่จะขโมยโค้ด PHP จากเวปใครๆ เพราะเราจะไม่เห็นโค้ดภายใน server ของเวปนั้น
ภาษาที่ง่าย และ หาคู่มือ ง่ายที่สุด ก็คงไม่พ้น PHP ทั้งนี้ ภาษาอื่นๆแทบทุกภาษาก็ทำเวปได้เหมือนกัน #แปลกไปอีกแบบ
#5 Framework คือ พระเจ้า
จริงๆแล้ว ไม่จำเป็นว่า ทุกเวปที่เขียน จะต้องใช้ Framework แต่ถ้าใช้ ชีวิตก็จะง่ายขึ้น 104.53 เท่า #เป็นจุดทศนิยมเลยทีเดียว เพราะปัญหาที่เราเจอมักเป็นปัญหาทั่วไปที่ใครๆก็เจอ และ มีแนวทางการแก้ไขที่โอเค ไว้อยู่แล้ว หากต้องมานั่งแก้ปัญหาด้วยตัวเองทุกๆอย่าง ก็คงจะเสียเวลา เหนื่อย แถม อาจจะไม่สิ้นสุดเลยด้วยซ้ำ เพราะไม่มีประสบการณ์มากพอ ที่สำคัญคือ Framework มักมี community ที่คอยช่วยเหลือกัน ซึ่งจะเป็นสิ่งสำคัญในการพัฒนา
แต่ยังไง การลองเขียนเองครั้งแรก โดยไม่ใช้ Framework ก็เป็นสิ่งที่สร้างประสบการณ์ในการสู้กับปัญหา108 ได้เป็นอย่างดี และ น่าประทับใจ #อยากให้ลองเหมือนกัน
- สำหรับ PHP แนะนำให้ลองใช้ Laravel / CodeIgniter หรือ ถ้าสนใจภาษาอื่น ก็อาจจะลอง Django หรือ RubyOnRails ดูนะฮะ
Q&A
Q : แค่การจะเริ่มเวปง่ายๆซักเวป อาจจะต้องเขียนถึง 3-4 ภาษา รวมๆกัน บางคนก็จะชอบถามว่า ต้องใช้เวปนานแค่ไหนสำหรับแต่ละภาษา? หรือ ต้องอ่านให้มันเยอะแค่ไหนถึงจะเขียนเวปได้
A : แต่สำหรับ #me นะ ตอนช่วงแรกรู้แค่ว่า forloop ยังไง? ประกาศตัวแปรยังไง? แค่นั้นพอ ที่เหลือเดี๋ยวค่อย google เอา พอทำไปเรื่อยๆ เดี๋ยวก็จะเข้าใจโครงสร้างของแต่ละภาษาไปเอง พอถึงจุดๆนั้น ก็จะสบายละ จริงๆแล้ว แอบคิดเล็กๆว่า การที่ไปอ่านเยอะๆเพื่อทำความเข้าใจโครงสร้างตอนแรกๆ มันเหมือนเป็นการลงทุนที่ไม่คุ้มค่า นานๆไป เดี๋ยวก็ภาษาใหม่ก็มา ก็ต้องเปลี่ยนอีก เอาเวลาไปฝึกฝน google อย่างชาญฉลาดดีกว่าเยอะ #googleคือพ่อข้า #stackoverflowคือแม่ข้า