เห็นช่วงนี้มีข่าว เว็บไซต์จองตั๋วล่ม อันเนื่องมาจากคนเข้าใช้พร้อมๆกันเป็นจำนวนมาก โดยเฉพาะในกลุ่ม Developer ที่มีการพูดถึงเป็นจำนวนมาก

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

ในฐานะ Developer สิ่งที่เราต้องพิจารณาตามหน้าที่ของเรา "ไม่ใช่ Hardware" แต่เราต้องไปโฟกัสที่โค้ดต่างหาก การเขียนโค้ดที่ดี นอกจากมันจะต้องทำงานได้ตามวัตถุประสงค์แล้ว มันยังจะต้อง "มีประสิทธิภาพ" ด้วย ซึ่งจากการได้คุยกับหลายๆคนมักบอกว่า
  • ต้องปิดงานไว (อันนี้เป็นบิสซิเน็สลอจิค) จริงๆ มันก็ใช่นะครับ Developer ก็ต้องกินต้องใช้ จบงานไวก็ดี
  • รับ  User ไม่ไหวก็ไปอัปเกรด Hardware เอา เพิ่ม Ram เพิ่ม CPU อัปเกรด Hardware อะไรก็ได้ให้เจ้าของเว็บไปอัปเกรดเอา (ส่วนใหญ่คิดแบบนี้ โดยโทษไปที่เรื่องของ Hardware)
  • ไม่รู้วิธี ไม่ได้วางแผน ไม่ได้คำนึงถึง หรือไม่ก็ "มันไม่เกิดขึ้นหรอก"
ปัญหาข้างต้นคงจะไม่เกิดขึ้นหรือลดน้อยลง ถ้าเรามีการทดสอบโค้ดของเราแล้วในเบื้องต้น ด้วยการทำ "benchmark"  ซึ่งการทำก็ไม่ได้ยากหรือซับซ้อนแต่อย่างใด สามารถทำด้วยตัวเองได้ง่ายๆ ตามลิงค์นี้ ทดสอบความเร็วของเว็บไซต์ด้วย apachebench กันเถอะ

การทดสอบเว็บข้างต้นเป็นการทดสอบภาพรวมของเว็บไซต์ ว่ามันสามารถรองรับผู้ใช้งานพร้อมๆกันจำนวนมากได้สักเท่าไร ซึ่งหากต้องการแก้ไขก็ต้องไปพึ่งพาวิธีการเขียนโค้ดที่มีประสิทธิภาพ
  • benchmark โค้ดระดับฟังก์ชั่น ฟังก์ชั่นแต่ละตัวถึงจะให้ผลลัพท์เหมือนกัน แต่มันก็มีประสิธิภาพต่างกันนะ ลองทดสอบมันดู และเลือกใช้ให้ถูก เช่น
  • เขียนโค้ดให้ถูกวิธี ผลลัพท์ที่ต้องการ 1 อย่าง มีหลายวิธีในการเขียน แต่จะมีวิธีเดียวที่มีประสิทธิภาพสูงที่สุด
  • เลือก software หรือ Framework ที่เหมาะสม ดูตัวอย่าง PHP Framework Benchmark
  • เลือกใช้เทคโนโลยีที่เหมาะสม เช่น ใช้ PHP7 แทน ใช้แคชช่วย และอีกสารพัดเครื่องมือให้นำมาใช้ (โดยไม่ต้องอัปเกรด Server)
สิ่งต่างๆ เหล่านี้เป็นสิ่งที่ Developer ต้องพิจารณาในการเขียนโค้ด จริงอยู่ว่ามันอาจเสียเวลา แต่ความรู้เหล่านี้มันสามารถนำไปใช้ได้ตลอด โดยยอมเสียเวลาครั้งแรกสักครั้ง ครั้งต่อๆไปเราคงรู้และนำไปใช้ได้แล้ว ซึ่งสุดท้ายเราจะสามารถเขียนโค้ดได้อย่างมีประสิทธิภาพ และสามารถจบงานได้เร็วด้วย

สุดท้าย การทดสอบเว็บก่อนใช้งานจริง มีความสำคัญอย่างยิ่งนะครับ มันแสดงถึงความรับผิดชอบ และ ความรอบคอบของเราด้วย เพราะผลเสียของการไม่ทดสอบ หากมันเกิดขึ้น อาจมีผลร้ายแรงเกินกว่าจะรับไหวเลยทีเดียว และที่สุดแล้วหากเรา (Developer) ทำการ Optimize โค้ดอย่างเต็มที่แล้ว และมันยังล่มอีก คงถึงเวลาที่จะต้องอัปเกรด Hardware แล้วละครับ
Penthai [PHP] 05 พ.ย. 2552 11:25
ได้แบ่งปันแล้วมีความสุข อิอิ
peterXP 11 พ.ย. 2552 15:37
แหล่มครับ
narongrit.net 15 พ.ย. 2552 18:58
 แหล่มด้วยคน

จะได้ไม่ต้องเขียนโค้ดยาวๆ เอิ้กๆ ขอบคุณครับ
niti 25 พ.ย. 2552 16:47
แหล่มด้วยอีกคนครับ
อิอิ
iPong 08 ธ.ค. 2552 11:49

ดูดครับดูด ดูดความรู้ของอาจารย์ให้หมด

Narong Mungtom 09 ธ.ค. 2552 12:52

สุดยอดครับ  สั้นๆๆ ง่ายๆๆ

wattar 11 ธ.ค. 2552 00:01
สุดยอดครับท่าน OLE
neoalex 25 ธ.ค. 2552 14:17

ขอบคุง คับ

ทีเค 21 พ.ค. 2553 20:38
ขอบคุณคราบบบ
วิทย 09 ส.ค. 2553 12:24
ขอบคุณอีกเสียงครับ