เขียวเสียที หลังจากมีอคติมาบังตา


สัปดาห์ที่แล้ว เราได้มีโอกาสขยับ KnowledgeVolution มาอยู่บน Ruby on Rails 2.0.2 แล้วได้ทดลอง deploy กับ Leaners.in.th เป็นไซต์แรก (เพราะอยู่คนละเครื่องแม่ข่ายกับไซต์อื่นๆ) ปรากฎว่า bugs กระจาย ไล่หาอย่างไรก็ไม่เจอเสียที โดยส่วนใหญ่ error message จะเกี่ยวข้องกับกระบวนการ caching ครับ

ครั้งนี้เป็นการไล่ bugs ที่หมดเรี่ยวหมดแรงจริงๆ ครับ เพราะไม่เจอ จุดที่เคยเจอก็กลับไม่เจอ แปลกใจอย่างมาก

ก่อนหน้านี้ผมเคยเจอว่า gettext 1.10.0 มีปัญหากับ memcache-client เพราะ gettext ไป rewrite บาง functions ของ memcache-client ทำให้ทำงานได้เอ๋อ ผมก็เลยพยายามไล่ไปในจุดนั้น โดยคิดว่าต้องเป็นเรื่องเดิมอีกแน่ๆ โดย gettext 1.90.0 นั้นต้องมีปัญหาอะไรอีกแน่ๆ ผมก็หาไม่เจอ

ไล่ไปอีกหลายต่อหลายจุดที่เคยเจอว่ามีปัญหา ก็ไม่เจอ ทำเอาต้องกุมขมับ มึนตึ๊บ

แล้วก็ไปเจอว่าปัญหาอยู่ที่ plugin ชื่อ WillPaginate ที่นำมาใช้ โดย function ชื่อว่า paginate_by_sql ของ plugin นี้มีการใช้งาน subquery ซึ่งเป็นสิ่งที่ทำงานได้ช้ามากใน MySQL และวิธีในการใช้ subquery ของ WillPaginate ทำให้ database server ต้องทำงานหนักและต้องมีการส่งข้อมูลระหว่างเครื่องแม่ข่ายเยอะ แต่ WillPaginate ก็มี function ชื่อ WillPaginate::Collection.create ให้สร้าง collection เองซึ่งเราก็สามารถ optimize ให้ทำงานได้เร็วขึ้นได้

ตกลงว่าปัญหานี้ก็แก้ได้ไป และ SmokePing ของ Learners.in.th ก็กลับมาเขียวเหมือนเดิม

สิ่งที่น่าสนใจคือ "อคติ" (bias) ที่ผมมีทำให้พยายามแก้ปัญหาในเรื่องที่ผมเคยเจอ แต่ก็ไม่เจอ

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

อคติเกิดจากการเรียนรู้ เป็นความรู้ฝังลึก เป็นประสบการณ์ ให้เราแยกแยะปัญหาได้ แต่อคติก็เป็นตัวบังตาไม่ให้เห็นสิ่งที่ควรเห็นเช่นกัน

ตกลงว่าอคติเป็นสิ่งที่ดีหรือไม่ดีกันแน่?

เขียนโปรแกรมนี่ก็ได้ปรัชญาชีวิตเยอะครับ

หมายเลขบันทึก: 166093เขียนเมื่อ 19 กุมภาพันธ์ 2008 08:55 น. ()แก้ไขเมื่อ 11 กุมภาพันธ์ 2012 22:47 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (2)

ผมก็เป็นครับ เวลาไล่ bug , ถ้าอัด video มาดูก็จะเห็นพฤติกรรมซ้ำๆซากๆได้เลย 

 

การแก้ปัญหาของอาจารย์ในครั้งนี้ ทำให้ผมทราบว่าตัวเองยังห่างชั้นกับคำว่า "โปรแกรมเมอร์" อีกไกล ... ใช่ว่าเขียนโปรแกรมเป็นอย่างเดียวแล้วจะเรียกว่าโปรแกรมเมอร์ได้ คุณจะต้องสามารถ ล้วง แคะ แกะ เกา ปรับปรุงเปลี่ยนแปลง งานของคนอื่นได้ด้วย คุณจึงจะได้ชื่อว่า "โปรแกรมเมอร์" ที่แท้จริง ... คารวะครับ : )
พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท