Programmer with anxiety

Life is always under maintenance

Bug of election calculation project

Friday, March 29, 2019, 07:40 AM

จากที่ได้ทำเว็บคำนวณผลคะแนนเลือกตั้ง2019เล่นๆไปคราวก่อน

วันนี้ กกต. ประกาศคะแนนอย่างเป็นทางการออกมา ซึ่งเป็นรูปแบบไฟล์ pdf แล้วมีคนแปลงเป็น google sheets ให้ตามลิงค์นี้

ผมก็เลยเอาไปแปลงในรูปแบบของ csv ที่ตัวเว็บที่ทำรองรับ ได้เป็นไฟล์นี้

ปรากฎว่าเจอข้อผิดพลาดสองประการในเว็บของตัวเอง

  • ลืมทำให้ csv รองรับคะแนนไม่ออกเสียง ผลการคำนวณเก้าอี้บัญชีรายชื่อเลยคลาดเคลื่อนไป (เทียบกับผลการคำนวณของ workpoint)
  • เวลาที่ใช้ประมวลผลจากไฟล์ csv นานมาก (ประมาณครึ่ง ชม.) จากการสังเกตพบว่าเกิดจากการเขียนโค้ด HTML ไม่มีประสิทธิภาพ ผมใช้วิธีเพิ่ม DOM Element สำหรับทุกการเพิ่มพรรค/เขต และการเพิ่มก็ไม่ได้เขียนให้ optimize อะไรเลย การเพิ่มทั้งหมด 350 เขต * ประมาณ 80 พรรค การเพิ่ม DOM Element แบบไม่มีประสิทธิภาพจำนวนเกือบ 30,000 ครั้งเลยกินเวลานานมาก แถมระหว่างนั้นก็ทำให้หน้าเว็บมัน not responding ไปซะอีก

เดี๋ยวไว้จะหาโอกาสปรับปรุงแก้ข้อผิดพลาดทั้งสองอัน เสร็จแล้วจะอัพเดทในหน้า projects ครับ