Thai PBS

ในช่วงเลือกตั้งสมาชิกสภาผู้แทนราษฎร พ.ศ. 2566 มีเว็บไซต์หลายแห่งทำหน้าที่รายงานผลการนับคะแนนเลือกตั้ง และได้รับความสนใจจากประชาชนจำนวนมาก

เว็บไซต์แห่งหนึ่งที่ได้รับเสียงชื่นชมอย่างมากคือ เว็บไซต์รายงานผลการเลือกตั้ง 66 ของ Thai PBS (election66.thaipbs.or.th) ทั้งเรื่องการออกแบบที่ใช้งานง่าย และสามารถรองรับปริมาณโหลดจำนวนมหาศาลในช่วงวันเลือกตั้ง เพื่อเป็นการเผยแพร่ความรู้ทางเทคนิคเบื้องหลังเว็บไซต์แห่งนี้ Blognone จึงขอสัมภาษณ์ทีมจากบริษัท INOX ผู้อยู่เบื้องหลังการพัฒนาเว็บไซต์นี้ร่วมกับ Thai PBS

แนะนำตัวทีมงานที่เกี่ยวข้องกับโปรเจคนี้

ทีมจะดูมีหลายคนมากๆ แวะเวียนมาร่วมมือในส่วนที่ตัวเองเป็น specialist ครับ

  • Team lead: มด (@moogreentea)
  • Tech lead: แชมป์ (@champjss)
  • Project manager: วี (@vixtrz)
  • UX/UI Designer: เกน
  • Developer: มาร์ค, แอม, เจ, นก
  • DevOps / Consult: โนเน, นนท์, จั้ม, พัด
  • นิสิตฝึกงานประจำปีนี้ (ปังปอนด์, กอล์ฟ, กานน, แชมป์, ต้น, แม็ก) ที่ร่วมพัฒนา backend ดึงผล และฟีเจอร์จับขั้วรัฐบาลด้วยครับ

ที่มาที่ไปของโครงการเว็บรายงานผลการเลือกตั้ง

เมื่อปี 2565 เราเคยร่วมงานกับ Thai PBS ทำเว็บไซต์รายงานผลเลือกตั้งผู้ว่ากรุงเทพ 65 ซึ่งได้ผลตอบรับค่อนข้างดี พอมาถึงการเลือกตั้งใหญ่ปี 66 เราเลยได้รับความไว้วางใจให้มาร่วมงานกันอีกครั้งครับ

ในช่วงแรก ทีมงานตีโจทย์การออกแบบเว็บรายงานผลการเลือกตั้งอย่างไร

เราพยายามจะถอดความสำเร็จจากงานเลือกตั้งผู้ว่าฯ แต่ก็พบว่าบริบททางการเมืองต่างกันมาก เอาแนวทางเดิมมาใช้ตรงๆ ไม่ได้ ดังนั้นทางเราและ Thai PBS จึงเริ่มจากทำเซอร์เวย์กันในวงเล็กๆ (ระบุกลุ่มเป้าหมาย) เพื่อสรุปเอาคำถามสำคัญที่กลุ่มเป้าหมายของเราอยากรู้

ผลการสำรวจความเห็นได้ข้อสรุปมา 3 ข้อ สิ่งที่คนอยากรู้คือ 1) เขตที่บ้านเรา ใครได้เป็น ส.ส. 2) พรรคไหนได้ ส.ส. จำนวนเท่าไร 3) แล้วใครจะได้เป็นนายกรัฐมนตรี

จากนั้นเราเอาประเด็นหลักนี้มาพัฒนาต่อให้สุดทาง ประเด็นแรกเรื่อง “เขตที่บ้านเรา ใครได้เป็น ส.ส.” นั้นเราดูจากการเลือกตั้งที่ผ่านมา ว่าผู้ใช้น่าจะต้องเข้ามาดูผลหลายๆ ครั้ง เพื่อดูคะแนนล่าสุด ดังนั้นถ้าออกแบบให้ผู้ใช้สามารถปักหมุดเขตที่บ้านไว้ได้เลย จะได้ไม่ต้องไปไล่กดแผนที่ซ้ำๆ ทำให้การใช้งานง่ายขึ้น

แต่ในประเด็นว่า “ใครจะได้เป็นนายก”​ เป็นส่วนที่ท้าทายที่สุด เพราะจากการเลือกตั้งฯ 62 แสดงให้เห็นว่าไม่ใช่ว่าพรรคที่ 1 จะได้เป็นรัฐบาลเสมอไป ดังนั้นการออกแบบที่ดึงภาพพรรคอันดับ 1 หรือพรรคอันดับ 1-3 ขึ้นมาเด่นที่สุด อาจจะไม่ใช่แนวทางที่เหมาะกับบริบททางการเมืองปัจจุบัน เราเลยเลือกนำเสนอในรูปของ “สูตรจับขั้วรัฐบาล” พร้อมบวกเลขที่นั่งของแต่ละสูตรมาให้เสร็จเลย เพื่อให้ผู้ชมเข้าใจว่า พรรคที่ 1 ไม่ได้แปลว่าจะได้เป็นรัฐบาล แต่ขึ้นอยู่กับสูตรการจับมือแบบไหน เป็นไปได้แค่ไหน

ประเด็นนี้อาจสุ่มเสี่ยงกับความเป็นกลางด้วย เราเลยต้องทำงานในส่วนนี้กับทาง Thai PBS (ซึ่งเป็นสื่อสาธารณะและต้องวางตัวเป็นกลาง) อย่างใกล้ชิด เพื่อให้การนำเสนอออกมาเป็นกลางที่สุด โดยเราเลือกนำเสนอสูตรตั้งต้น 5 สูตรตามการสรุปจากทีมข่าวการเมือง เป็นค่าตั้งต้นให้เห็นภาพความเป็นไปได้ แต่ก็ยังเปิดโอกาสให้ผู้ชมสามารถจัดสูตรรัฐบาลเองได้และแชร์ได้ด้วยตามคะแนนแบบเรียลไทม์ในตอนนั้น

ประเด็นด้านการออกแบบ Design/UX มีสิ่งที่ต้องคำนึงอย่างไรบ้าง

เนื่องจากทาง Thai PBS มีกลุ่มผู้ชมหลากหลาย โดยเฉพาะฐานผู้ชมกลุ่มผู้สูงวัย มีเยอะพอสมควร ในกระบวนการคิดจึงต้องเลือก persona ของผู้ชมให้หลากหลาย เพื่อออกแบบและทดสอบให้ครอบคลุม ไม่ว่าจะเป็นกลุ่ม New Voter, Active Voter, กลุ่มผู้ใหญ่วัยเกษียณ เป็นต้น เพื่อให้เราสามารถเอาสิ่งที่พัฒนาไปทดสอบกับ user จริงๆ จนมั่นใจว่า UX/UI ที่ออกแบบมานั้น ไม่ซับซ้อนเกินไปสำหรับกลุ่มเป้าหมาย (ต้องขอบคุณคุณพ่อคุณแม่ทีมงานทุกคนที่ได้มาร่วมทดสอบกันด้วยครับ)

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

เทคโนโลยีที่เลือกใช้งาน (Front End) และเหตุผลที่เลือกใช้

ในงานนี้เราเลือกใช้ NextJS เพื่อให้ได้ใช้ React และสามารถ custom HTML response เพื่อให้มีภาพสำหรับแชร์และ Title แตกต่างกันในแต่ละหน้าเมื่อมีการแชร์ได้

ในงานนี้เรา build โปรเจกต์เป็น Docker image เพื่อเอาไปใช้บน Kubernetes เองเลยครับ

เทคโนโลยีที่ใช้งาน (Backend/Server) และเหตุผลที่เลือกใช้

  • ในส่วนข้อมูลผลการเลือกตั้งที่ผู้ชมเข้าถึง เป็นไฟล์สรุปผลที่เก็บบน Amazon S3 และอยู่ผ่าน Amazon CloudFront อีกทีหนึ่ง ทำให้มั่นใจได้มากว่าสามารถรับโหลดได้ และสามารถปล่อยให้เว็บอยู่ต่อไปหลังเลือกตั้งได้ตลอด โดยไม่ต้องดูแลระบบ/มีค่าใช้จ่ายมากนัก
  • ในส่วนระบบการประมวลผลข้อมูลหลังบ้าน รันอยู่บน AWS EKS และต่อกับฐานข้อมูล MongoDB Atlas เพราะเปิดฐานข้อมูลใช้แค่ไม่กี่วันได้อย่างสะดวก รวมถึงได้ใช้ความสามารถ ChangeStream เพื่อใช้ trigger ให้ข้อมูลใน data pipeline ที่เกี่ยวข้องอัปเดตได้อย่างรวดเร็ว

ประเด็นเรื่องการสเกลเครื่องให้รับมือปริมาณผู้ชมได้

  • ปกติ Thai PBS ใช้ EKS กับระบบเว็บอยู่แล้ว ซึ่งงานนี้เราใช้ EKS เช่นกัน
  • ตัว workload (NodeGroup) เราใช้เป็น Spot instance ทั้งหมด ราคาถูกกว่า On-demand instance อยู่ประมาณ 40-50%
  • Spot instance มีเรื่องต้องระวังคืออาจโดน AWS เรียก node คืนได้เสมอ แต่เราประเมินแล้วว่า AWS ยังมี capacity พอให้ scale up ด้วย Spot instance ได้ หรือถ้าเต็มจริงๆ เราก็สามารถ scale up ด้วยเครื่องแบบ On-demand ได้ทันทีเหมือนกันเพราะเตรียมไว้หมดแล้ว
  • Workload ข้างในออกแบบให้ stateless 100% (สามารถเกิดแก่เจ็บตายได้โดยระบบรวมไม่สะดุด) เพื่อรองรับการเพิ่มลด Worker ได้ตามต้องการ

จริงๆ ตัว NextJS เองไม่ได้รับโหลดได้สูงมากนัก แต่เนื่องจากมี caching ทำให้เหลือโหลดเข้ามาถึงระบบจริงๆ ไม่เยอะ ถึงจะเตรียม autoscale ไว้แต่ก็ใช้จริงประมาณ 4-5 pod เท่านั้น ที่เหลือก็สามารถรับโหลดได้ตามขีดความสามารถของ CDN เลย

ส่วนการรับมือ spike load ควรตรวจสอบให้แน่ใจว่างานส่วนใดควรทำที่ฝั่งไคลเอนต์หรือเซิร์ฟเวอร์, วางแผนทำ caching ถูกต้องเหมาะสม และทางทีม DevOps ยังช่วยทดสอบยิงแอป เพื่อใช้ประเมินสถานการณ์ไปด้วยอีกทางหนึ่ง อีกส่วนที่สำคัญคือระบบอื่นๆ ข้างเคียง เช่น เว็บไซต์หลัก (ซึ่งอาจเป็นทางเข้าของผู้ใช้บางกลุ่ม) ก็ต้องเตรียมพร้อมรับมือไปด้วยกัน

เว็บรายงานผลของ TPBS ทำงานเร็วเป็นอันดับต้นๆ เมื่อเทียบกับเว็บอื่น คิดว่าเพราะอะไรที่เป็นส่วนสำคัญที่ทำให้เว็บเราเร็ว ทั้งด้าน front end และ backend เช่นอย่าง front end เข้าใจว่าหลายๆ เจ้าก็เลือกใช้ NextJS เหมือนกัน ทำไมของเราเร็วกว่าคนอื่น

ทีมมองว่าเกิดจาก 2 ปัจจัยหลัก

  • ปัจจัยแรกคือด้วยการออกแบบ flow การใช้งานเว็บ สามารถ optimize การโหลดข้อมูลให้ทำเท่าที่จำเป็นได้ เช่น เมื่อเข้ามาครั้งแรกให้โหลดเฉพาะผลที่นั่งภาพรวมเท่านั้น ไม่จำเป็นต้องโหลดผลเลือกตั้งมาทั้งหมด
  • อีกปัจจัยหนึ่งคือการใช้ caching ช่วยอย่างเหมาะสม สำหรับงานนี้ เนื่องจากผลเลือกตั้งจะอัปเดตถี่มากๆ เราเลยเลือกใช้ SSR ในการเรนเดอร์ HTML เบื้องต้นเท่านั้น ไม่ได้เรนเดอร์ผลคะแนนลงไป (และปล่อยให้ไปทำงานต่อที่ฝั่งไคลเอนต์แทน) ช่วยให้ทำ caching ส่วนหน้าเว็บและ assets ที่เกี่ยวข้องได้นาน

ระยะเวลาในการพัฒนาเว็บไซต์ทั้งหมด

งานนี้ใช้เวลาในการออกแบบระบบและพัฒนาประมาณ 1 เดือนครึ่ง ฟีเจอร์ทั่วไปใช้งานได้สมบูรณ์ในช่วง 1 สัปดาห์ก่อนเลือกตั้ง แต่ยังมีการปรับจูน ปรับแต่ง แก้ไขจนถึงวันเลือกตั้งจริง และแม้แต่ตอนเริ่มประกาศผลไปแล้ว ก็ยังมีการแก้ไขปรับปรุง โดยทาง Thai PBS กับเราประสานกันเพื่อแก้ไข ตาม feedback ของผู้ชม

ปัญหาอื่นๆ ที่พบในระหว่างทาง (ถ้ามี)

ช่วงประมาณ 2 ทุ่มกว่า มีอยู่จังหวะหนึ่งที่ข้อมูลคะแนนจากต้นทาง ส่งมาเป็น 0 เกือบทุกเขต และเนื่องจากเราดึงข้อมูลและสรุปเร็วมาก ทำให้ผู้ชมเห็นคะแนนลดวูบไป (ดูเหตุการณ์จริงจาก รมต. DE ได้) แต่เนื่องจากเราแยกเก็บ data source คะแนนจากสื่อไว้อีกชุดหนึ่ง จึงสามารถสลับโหมดมาใช้คะแนนจากสื่อชั่วคราวได้ (แต่ก็ทดไว้ในใจว่าคราวหน้า คงต้องทำ Snapshot ไว้ย้อนเวลาได้ด้วยเพื่อป้องกันกรณีนี้)

อยากฝากบอกอะไรถึงผู้มีสิทธิเลือกตั้งที่เข้ามาใช้งานเว็บของเรา

ขอขอบคุณทางทีมสำนักสื่อดิจิทัล ทีมข่าว และรวมไปถึงทุกๆฝ่ายของทาง Thai PBS ที่ได้ให้โอกาสทางทีมงานบริษัท INOX ในการทำโครงการดีๆเช่นนี้ รวมไปถึงการสนับสนุนทางด้าน ข้อมูล และแนวคิดต่างๆอันมีคุณค่ายิ่งแก่ทีมงานของเราครับ

ผลการเลือกตั้ง เป็นแค่จุดเริ่มต้นครับ อย่างที่เราพยายามเสนอใน UI ยังต้องติดตาม รวมถึงส่งเสียงสะท้อนจากภาคประชาชนกันต่อไป

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

ผมเคยเปิดดู 2-3 ครั้งออกแบบได้ดี

แต่ไม่ชอบ Feature สูตรจับขั้ว เลือกมาอันดับ 1 แต่ไม่ได้เป็นรัฐบาลมันเป็นสิ่งผิดปกติ
การนำเสนอของแบบนี้เหมือนกับการสนับสนุนความผิดปกติ

และการนำเสนอสิ่งที่ยังไม่เกิด มัน misleading
การทำให้คนคิดไปเอง มันมีแต่จะเกิดความขัดแย้ง

เอาเรื่องที่มันเกิดขึ้นแล้วมาวิเคราะห์ ว่าทำไมมันถึงเกิดมีสาระกว่า

ขอบคุณสำหรับคำแนะนำ (เผื่อว่าทีมมีโอกาสในครั้งต่อๆ ไปครับ)

คือทีมตั้งใจจะนำเสนอแบบนี้เพื่อให้คนดู acknowledge ว่ามันไม่ปกติครับ แต่ในมุมนึงก็อาจทำให้เข้าใจว่าสนับสนุนได้เหมือนกัน ซึ่งต้องหา balance กันครับ

ในกติกาสากลของ ระบบรัฐสภา
อันดับ 1 ไม่ได้หมายความว่าจะต้องได้เป็นรัฐบาลนะครับ
อันนั้นเป็นวาทกรรมนักการเมืองสร้างขึ้นมา

อย่างเช่น สภามี 100คน
อันดับ 1 ได้ 40
อันดับ 2 ได้ 35
อันดับ 3 ได้ 25

ถ้าอุดมการณ์ 1 ไม่ตรงกับ 2 และ 3
2 และ 3 จะรวมกันตั้งรัฐบาล ครับ

ผมอยู่ฝั่งว่าสามัญสำนึกไม่มีจริงครับ 😅

กับจริงๆ นั่นหมายความว่ามีคนที่ไม่ต้องการอันดับ 1 ถึง 60% ได้ด้วย และนั่นเป็นปัญหาของระบบการนับคะแนนรอบเดียว พวกนี้มันแก้ได้ด้วยระบบโหวตหลายตัวเลือก โหวตหลายลำดับ โหวตหลายรอบอะไรแบบนี้แต่มันไปสร้างปัญหาการป้องกันการโกงและยากต่อการทำความเข้าใจที่จะไปเพิ่มบัตรเสียหรือความผิดพลาดให้คนลงคะแนนแทนอีก กับพวกนั้นใช้กับการหาอันดับ 1 อย่างเดียว (อย่างแบบแบ่งเขต หรือโหวตนายกโดยตรง) ใช้กับการโหวตแบบบัญชีรายชื่อไม่ได้ด้วยสิ

"นั่นหมายความว่ามีคนที่ไม่ต้องการอันดับ 1 ถึง 60% ได้ด้วย"
การ vote นี้คือการ vote เพื่อหาคนที่เราต้องการ
ไม่ใช่การ vote เพื่อหาคนที่เราไม่ต้องการครับ มันคนละบริบท
ถ้าจะเอามาคิดด้วยคงต้องออกแบบเลือกตั้งกันใหม่ล่ะครับ ให้กาคนที่เราไม่ต้องการลงไปด้วย

สิ่งที่เกิดขึ้นจริงคือการมีพรรคที่ถูกเหลือมาเป็นอันดับ 1
ฉะนั้นอันดับอื่นๆ ควรที่จะสนับสนุนอันดับ 1 ให้เป็นรัฐบาล ต่อให้คนที่ได้อันดับ 1 จะเป็นลุง ป้าจากไหนก็ตาม

สูตรที่ใช้กันคือคนได้อันดับ 1 ถ้าอยู่คนละฝ่ายกับอำนาจจะถูกดำเนินคดีอะไรก็ตามทำให้ถูกตัดสิทธิทางการเมืองครับ

สูตรต่อไปคือฝ่ายอำนาจอยากได้รบ.แห่งชาติ รอดูว่างวดนี้จะมาสูตรไหน

ระบบสากลส่วนมากที่1ได้เป็นรัฐบาลครับที่2ได้เป็นฝ่ายค้านที่เหลือในสภาก็มักจะให้ที่1ได้จัดตั้งรัฐบาลอันนี้เป็นมารยาทการเมืองส่วนใหญ่นะครับ คนก็เลยเข้าใจแบบนั้น

อันอับหนึ่งใช่ว่าจะได้ครับ ถ้า 2 กับ 3 จับมือกันส่วนมากอันดับหนึ่งก็เป็นฝ่ายค้าน ถ้าอันดับ 1 จะเป็นแน่นอนคือ ต้องได้เสียงของพรรคตัวเองเกินครึ่งสภาเลยครับ แบบ ไทยรักไทย โน่นเลยครับ ไม่งั้นไม่มีการรับประกันเป็นปกติเลยครับ แค่ว่าอันดับ 1 จะได้รับบทให้รวบเรียบเสียงจากพรรคอื่นๆเพื่อตั้งรัฐบาลก่อนครับ รอบนี้ อนาคตใหม่ เสียงยังไม่นำขาดจากเพื่อไทยเท่าไหร่ เขาเลยเจรจากันยากครับ
อย่าให้ อคติบังตา สิครับ มันเป็นแบบนี้อยู่แล้วนะ

มันเป็นเหมือนโจทย์ 1 + 2 * 3 ครับ
บางคนจะบอกว่า คำนวณได้ 9 บางคนจะบอกว่าได้ 7 (ผมรู้ว่ามันได้สองแบบ แต่ผมเลือก 7)
ซึ่งอยู่ที่ใครจะใช้หลักการไหน ไม่ได้เกี่ยวกับ อคติ อะไรทั้งสิ้น

ถ้าคุณ reply อ่านดีๆ หน่อยจะรู้ว่าผมไม่ได้เจาะจงพรรคไหนเลย
ผมหมายถึงพรรคที่อันดับ 1 เท่านั้นซึ่งหมายถึงตอนปี 62 ด้วย

งั้นตอนนี้เห็นแล้วใช่ไหมครับ ว่าพอที่ 2 คะแนนใกล้กันกับที่ 1 ก็เป็นปัญหาแบบ ณ เวลานี้เลย จริงๆที่ผมรู้เพราะมันมีกรณีตัวอย่างมาเยอะแล้วครับของไทยน่ะ ก่อนไทยรักไทยเกิดขึ้นมา สมัยก่อน ที่ 1 ก็ไม่ได้เป็นก็มีอยู่แบบมาตัวคนเดียว เลยซวย ถ้าอยู่มานานพอจะเห็นครับ
ตอนนี้ไม่ได้ตามข่าวแบบตรงๆได้เห็นแต่ผ่านๆ รู้สึกตอนนี้มีปัญหากันแล้ว ที่ 1 กับที่ 2

1 เดือนครึ่ง ถือว่าเร็วมาก

จริงๆ แล้วอยากรู้ด้วยว่าเก็บ req กันนานมั้ยปรับเปลี่ยนกันยังไง
ส่วนใหญ่นาน+เสียเวลากับ req พอสมควร กับ มี asset เดิมอยู่แล้วหรือว่าพัฒนาใหม่หมดเลย อ่านดูแล้วเข้าใจว่าใช้จากของโปรเจคที่แล้วพอสมควร

แค่อยากรู้น่ะครับ แบบนี้คือ user ก็ต้องให้ความร่วมมือดีด้วยนะ อยากรู้ way of work เลย

จริงๆ ทีมส่วนใหญ่ที่ทำรายงานผลเลือกตั้ง น่าจะใช้เวลาประมาณ 1 เดือนครึ่งนี้กันครับ ไม่ใช่เพราะว่าเป็นเวลาที่เหมาะสมนะครับ แต่เวลามีเท่านี้ครับ 5555 (เนื่องจากเป็นช่วงเวลาที่เริ่มมีความชัดเจนว่า สมาคมสื่อฯ จะรวบรวมคะแนนได้)

วิธีการรับมือกับสถานการณ์นี้มีหลายส่วน ทั้งเชิง management/design/architecture แต่ส่วนที่สำคัญและ partner ทุกคนในทีมต้องร่วมมือด้วย (ซึ่งต้องขอบคุณทางไทยพีอีกครั้งที่ให้ความร่วมมือในส่วนนี้อย่างดีครับ) คือการยึดตามเป้าหมายที่เหมาะสม ร่วมกันคิดและลำดับความสำคัญของ feature โดยอิงตามเป้าหมายที่ตั้งร่วมกันไว้ครับ (สุดท้ายอาจมีบางอย่างโดนตัดออกไป ถ้ามีเรื่องอื่นสำคัญกว่า โดยทุกคนก็จะเข้าใจได้ครับ)

icez Wed, 31/05/2023 - 15:23

In reply to by massacre

เฉลี่ยช่วง peak ระยะเวลาประมาณ 2-3 ชั่วโมงนะครับ

  • request ประมาณ 4-5 ล้าน request ต่อนาที (~ แปดหมื่น req/sec)
  • request ทะลุมาถึง backend จริงประมาณ 5000 request ต่อนาที

เพิ่งเข้าไปดูหน้าตาเว็บหลังจากอ่านข่าวนี้
พบว่า accessibility ก็ถือว่าเข้าถึงได้
ตัวกรองตามเขตตรงหน้าแรกใช้ไม่ได้ ต้องใช้จากหน้ารายเขตอีกที
แล้วก็แอบขัดใจตรงไม่มีการใส่ heading ให้เลย ก็จะไม่มีตัวนำร่องในการสำรวจส่วนต่างๆ ได้แบบไวๆ

ขอบคุณครับ รับไว้ปรับปรุงในงานต่อๆ ไปนะครับ

ถ้าเป็นไปได้ ช่วยแนะนำจุดไหนที่คิดว่าอยากให้ปรับปรุงเป็นพิเศษหน่อยนะครับ

อยากทราบ tech stack ที่ใช้งานมีอะไรบ้างครับ ถึงสามารถทำให้เว็บรับโหลดได้เยอะขนาดนี้

หลักๆ อยู่ได้ด้วย CDN เพื่อแคชให้เยอะ และใช้ Cloud storage ช่วยเป็นหลักครับ ส่วนตัวคิดว่าสำหรับงานลักษณะนี้ tech stack ไม่ได้ส่งผลต่างกันมาก ถ้าปรับจูนและใช้ประโยชน์จาก CDN ได้เต็มที่ครับ