ความท้าทายอย่างหนึ่งในการทำงานก็คือการได้เรียนรู้ที่จะแก้ปัญหากับที่เจอครับ เราไม่สามารถปฏิเสธได้ว่างานของเราจะราบรื่นเสมอไป แต่ว่าหลังจากที่เราเจอเรื่องเหล่านั้น เรารับมือกับมันอย่างไร ผมว่าตรงนี้คือสิ่งสำคัญที่ทำให้เราเกิดกระบวนการเรียนรู้ใหม่ๆครับ และผมก็คิดว่าอยากจะนำโมเมนต์บางตอนของการทำงานมาเล่าสู่กันฟังด้วย ถือว่าเป็นเรื่องเมาท์ๆจากคนทำงานเนาะ
สิ่งที่เป็นเรื่องปวดหัวของการเขียนโปรแกรมก็คือ “มันทำงานผิดไปจากที่คาดหวัง” ซึ่งเราจะเรียกมันว่า บั๊ก ครับ โดยเจ้าบั๊กจะมากจะน้อยก็แล้วแต่ว่าที่มันทำงานผิดไปนั้น ส่งผลกระทบต่อการใช้งานมากน้อยเพียงไร
ตามอุดมคติ เราต้องการอะไรที่สมบูรณ์แบบ แต่ในโลกแห่งความเป็นจริง มันไม่มีอะไรสมบูรณ์แบบเสียทีเดียวหนะสิครับ อย่างแอพมือถือเจ้าใหญ่ๆ ยังต้องมีการอัพเดทแก้ไขบั๊กบางจุดด้วยเลย
อย่างเมื่อคืนนี้ครับ ผมมีโปรเจ็คตัวหนึ่งที่ทำให้มันแสดงผลไปตามความต้องการของลูกค้าคือ เป็นระบบ Ecommerce ที่มีรุ่นปีของสินค้าอยู่ด้วย แล้วลูกค้าต้องการให้มันจัดเรียงสินค้าแบบ เรียงจากรุ่นใหม่สุดแพงสุดมาก่อน ซึ่งมันก็เป็นการเปรียบเทียบสองอย่างนั่นเองก็คือ ต้องเปรียบเทียบรุ่นก่อน จากนั้นเอารุ่นที่ได้มามาเปรียบเทียบราคากัน
แล้วจากนั้นทีมเราก็เริ่มทำการโค้ดครับ แต่ทำไมมันมีสินค้าอยู่ตัวหนึ่ง ที่ราคา 9,900 บาท หลุดเงื่อนไขตลอดเวลา มัน กระโดดมาก่อนสินค้าราคา 12,000 ได้ยังไง
ผมก็เริ่มนั่งเช็คไปเรื่อยๆ ว่าเอ ทำไมมันผิดปกตินะ แล้วพอไล่ดูเรื่อยๆก็เห็นว่ามันเรียงสินค้าให้ประหลาดๆจริงๆ ราคากระโดดมั่วมาก
โค้ดเรามีบั๊กแน่นอน (แหงอยู่แล้ว)
แต่ประเด็นคือ มันบั๊กตรงไหน?
หลังจากสู้กับมันสองสามวัน เมื่อคืนนี้ผมก็เอะใจ เอ๊ะ!! หรือว่ามันเรียงแบบพจนานุกรม คือมองว่า 9 มากกว่า 1 ไม่ได้มองทั้งก้อนว่านี่คือ 9900 นะ . ผมคิดได้แบบนั้นก็เลยลองปรับดู ปรากฎว่าจริงด้วยครับ!! มันเปรียบเทียบแบบตัวอักษร
เลยไประบุเลยว่า ค่าตัวนี้ให้เปรียบเทียบแบบตัวเลข (Numeric) นะ
ปัญหาก็เลยจบไป
โอ้โห บางทีก็เรื่องเส้นผมบังภูเขามากจริงๆครับ แต่พอมาเจอจริงๆ มันก็วุ่นวายนะคับ กุมขมับไปหลายรอบ ว่าทำไมมันผิดวะ 5555
เดี๋ยวผมจะเอาโค้ดเกี่ยวกับตัวที่ทำตรงนี้มาแชร์ด้วยคับ ผมว่ามีประโยชน์กับคนที่จะไปต่อยอดทางการทำเว็บขายของ เผื่อใครจะมีรูปแบบการ Sorting แบบประหลาดๆ