เรื่องทั่วไปสไตล์จิ้งจอก

วิชาตัวเบาของคนทำเว็บ: เมื่อการ "ลบฟีเจอร์ที่ไม่มีคนใช้" ต้องใช้ความกล้ามากกว่าการเขียนเพิ่ม

ทำไมโปรแกรมเมอร์ถึงกล้าเขียนโค้ดเพิ่มเป็นพันบรรทัด แต่กลับมือสั่นทุกครั้งที่จะกดลบฟีเจอร์เก่าที่ไม่มีใครแตะ? ถอดรหัส "กับดักความเสียดาย" และศิลปะการตัดกิ่งไม้แห้งเพื่อให้ระบบกลับมาโบยบินได้อีกครั้ง

ผู้เขียน: 2BFox Admin • 29 ต.ค. 2569 10:29 น. • อ่านประมาณ 12 นาที • เข้าชม 11 ครั้ง
วิชาตัวเบาของคนทำเว็บ: เมื่อการ "ลบฟีเจอร์ที่ไม่มีคนใช้" ต้องใช้ความกล้ามากกว่าการเขียนเพิ่ม

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

เรื่องแปลกแต่จริงของคนทำเว็บก็คือ เวลาที่เราเกิดไอเดียใหม่แล้วนั่งเขียนฟีเจอร์เพิ่มเข้าไป 1,500 บรรทัดในคืนเดียว เรากลับทำได้อย่างฮึกเหิมไร้ความลังเล แต่พอเวลาผ่านไปหนึ่งปี เมื่อตารางสถิติฟ้องชัดว่าฟีเจอร์นั้น "ไม่มีคนกดใช้เลยแม้แต่คนเดียว"... นิ้วมือของเรากลับสั่นเทาเมื่อต้องเลื่อนไปแตะปุ่ม Delete

วันนี้สำนักจิ้งจอก 2BFox ขอชวนสหายร่วมทางมานั่งจิบชา ถอดรหัสอาการ "เสียดายโค้ดที่ตัวเองปั้นมากับมือ" และเรียนรู้เคล็ดวิชาตัวเบาที่จะช่วยให้ทั้งเว็บไซต์และจิตใจของคนดูแลระบบ กลับมาเบาสบายอีกครั้งครับ

🍂 สัจธรรมแห่งการดูแลสวนโค้ด

"ฟีเจอร์ที่ไม่มีผู้ใช้งาน ไม่ได้มีต้นทุนเท่ากับศูนย์" ทุกบรรทัดของโค้ดที่ยังนอนอยู่ในโปรเจกต์ คือภาระที่ต้องคอยอัปเดตตามเวอร์ชันภาษา คือช่องทางที่บั๊กอาจแอบซ่อนตัว และคือสิ่งรบกวนสายตาที่ทำให้ผู้ใช้งานหาฟีเจอร์หลักที่เขาต้องการจริงๆ ไม่เจอ

1. คำสาปแห่งหยาดเหงื่อ: ทำไมเราถึงรักฟีเจอร์ที่ไม่มีใครใช้?

ในทางจิตวิทยาและเศรษฐศาสตร์พฤติกรรม มีหลุมพรางจิตใจที่ทรงอานุภาพยิ่งกว่าค่ายกลลวงตา ชื่อว่า Sunk Cost Fallacy (กับดักต้นทุนจม) หรือถ้าแปลเป็นภาษาคนทำเว็บก็คืออาการ "กว่าจะเขียนเสร็จอดหลับอดนอนตั้งสามคืน จะให้ลบทิ้งง่ายๆ ได้อย่างไร!"

ลองนึกภาพฟีเจอร์ประเภทที่เราเคยภูมิใจนักภูมิหนาตอนสร้างเสร็จใหม่ๆ ดูสิครับ:

  • ปุ่มสลับธีมสีรุ้ง 7 สไตล์: ที่เรานั่งไล่ตัวแปร CSS จนตาแฉะ แต่คนเข้าเว็บ 99.8% ใช้แต่โหมดมาตรฐานที่เปิดมาเจอครั้งแรก
  • ระบบกรองข้อมูลขั้นสูง 12 เงื่อนไขซ้อนกัน: ที่เขียน SQL JOIN จนแทบธาตุไฟเข้าแทรก แต่ผู้ใช้จริงแค่พิมพ์คำค้นหาสั้นๆ ช่องเดียวแล้วกด Enter
  • วิดเจ็ตพยากรณ์อากาศหรือปฏิทินจันทรคติมุมขวาบน: ที่ใส่ไว้เพราะตอนนั้นคิดว่าเท่ดี แต่กลายเป็นตัวถ่วงเวลาโหลดหน้าเว็บทุกครั้งที่เปิดเข้ามา

เรามักผูกคุณค่าของฟีเจอร์เข้ากับ "ความยากลำบากตอนที่เราเขียนมัน" แทนที่จะวัดจาก "ประโยชน์ที่ผู้อ่านได้รับจริง" ยิ่งฟีเจอร์ไหนเขียนยาก แก้บั๊กนาน เราก็ยิ่งรักและหวงแหนมันเหมือนลูกในไส้ แม้ว่าในโลกความจริงมันจะกลายเป็นห้องเก็บของร้างที่ไม่มีใครเปิดประตูเข้าไปเลยก็ตาม

สำนักสายสะสมของเก่า (Feature Hoarder)

วิธีคิด: "เก็บไว้ก่อนเผื่อวันหน้ามีคนใช้ ปิดไว้แค่บางจุดก็พอ โค้ดไม่ได้กินข้าวสักหน่อย!"

ผลลัพธ์ระยะยาว: โฟลเดอร์โปรเจกต์บวมฉึ่ง เวลาจะแก้ระบบหลักทีไร ต้องคอยพะวงว่าไอ้ฟีเจอร์เก่าเมื่อ 3 ปีก่อนจะพังตามไปด้วยไหม

สำนักวิชาตัวเบา (Essentialist Fox)

วิธีคิด: "สิ่งใดไม่ส่งเสริมแก่นแท้ของเว็บ สิ่งนั้นคือน้ำหนักส่วนเกิน ตัดออกเพื่อให้กิ่งหลักรับแสงแดดได้เต็มที่"

ผลลัพธ์ระยะยาว: โค้ดคลีน อ่านง่าย แก้ไขไว หน้าเว็บโหลดเร็วติดจรวด และคนดูแลระบบไม่ต้องแบกความเครียดสะสม

2. หนี้กรรมที่ซ่อนอยู่ใต้พรม: ราคาที่ต้องจ่ายของโค้ดที่ "แค่ปล่อยทิ้งไว้"

หลายคนมักปลอบใจตัวเองว่า "ปล่อยโค้ดตรงนั้นไว้เฉยๆ ก็ไม่เห็นเป็นไรเลย ไม่ได้ไปรันมันสักหน่อย" แต่ในความเป็นจริง ทุกฟีเจอร์ที่ยังมีชีวิตอยู่ในฐานข้อมูลและไฟล์ระบบ กำลังเก็บค่าเช่าจากเราอย่างเงียบเชียบใน 3 มิติ:

  1. ภาระทางความคิด (Cognitive Load): ทุกครั้งที่เรา (หรือ AI คู่หูของเรา) เปิดไฟล์ขึ้นมาเพื่อเพิ่มความสามารถใหม่ เราต้องเสียเวลาอ่านและทำความเข้าใจโค้ดของฟีเจอร์ร้างเหล่านั้นซ้ำแล้วซ้ำเล่า เพื่อเช็กว่าจะไม่ไปทำอะไรพัง
  2. พื้นผิวการโจมตีด้านความปลอดภัย (Attack Surface): ช่องโหว่จำนวนมากในประวัติศาสตร์เว็บ ไม่ได้เกิดที่หน้าแรกสุดหรอกครับ แต่มักเกิดที่ ajax_export_old_widget.php หรือ Endpoint ของฟีเจอร์เก่าที่คนเขียนลืมไปแล้วว่ามีอยู่ จนไม่ได้อัปเดตระบบตรวจสอบสิทธิ์ให้ทัดเทียมกับส่วนอื่น
  3. ความลังเลเมื่อต้องอัปเกรดระบบ: เวลาที่เราอยากขยับเวอร์ชันฐานข้อมูล หรืออัปเกรด PHP / Library ให้ทันสมัย เจ้าฟีเจอร์ที่ไม่มีใครใช้นี่แหละ มักจะเป็นตัวแรกที่พ่น Fatal Error ออกมาขวางทางเจริญ!
💬 บทสนทนาหน้าโต๊ะทำงานยามดึก

จิตใจฝ่ายเสียดาย: "อย่าเพิ่งลบระบบส่งข้อความหลังบ้านตัวนี้เลยนะศิษย์น้อง! ตอนทำเมื่อสองปีก่อน เรานั่งเขียนระบบแจ้งเตือนตั้งสี่วันเชียวนะ!"

จิ้งจอกผู้ตื่นรู้: "ศิษย์พี่ครับ... ตลอด 12 เดือนที่ผ่านมา คนที่กดใช้ปุ่มนี้มีแค่พวกเราสองคนที่กดเทสต์ระบบตัวเองกับบอทสแปมจากรัสเซียเท่านั้นเลยครับ ตัดทิ้งเถอะครับ ชีวิตจะได้เบาขึ้น!"

3. สามกระบวนท่า "ตัดกิ่งไม้แห้ง" อย่างสง่างามโดยไม่ให้ใจสั่น

หากคุณเริ่มมองเห็นฟีเจอร์บางอย่างในเว็บของตัวเองที่เข้าข่าย "มีไว้ประดับบารมีแต่ไม่มีคนแตะ" ลองใช้ 3 ขั้นตอนนี้เพื่อปลดระวางพวกมันอย่างสบายใจครับ:

กระบวนท่าที่ 1: ใช้ตัวเลขตัดสิน แทนการใช้ความผูกพัน

อย่าถามหัวใจตัวเองว่าฟีเจอร์นี้สำคัญไหม เพราะหัวใจของคนเขียนโค้ดจะตอบว่าสำคัญทุกอันเสมอ! ให้ดูจากข้อมูลจริง เช่น จำนวนคลิก, จำนวนแถวในตารางฐานข้อมูลที่เพิ่มขึ้นในรอบ 90 วัน หรือดูจาก Server Access Log ว่าเส้นทาง (Route) นั้นมีมนุษย์จริงๆ เรียกใช้งานกี่ครั้ง

กระบวนท่าที่ 2: พิธีกรรม "คอมเมนต์ซ่อนปุ่ม 14 วัน" (The Scream Test)

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

กระบวนท่าที่ 3: จารึกไว้ในสุสานเกียรติยศ (Git Tag / Archive)

ที่เรามือสั่นเวลาลบโค้ด ส่วนหนึ่งเป็นเพราะเรากลัวว่า "ถ้าวันหน้าอยากดูวิธีเขียนตรงนี้อีก จะทำยังไง?" ทางออกที่ง่ายที่สุดคือการติด Git Tag (เช่น archive/before-removing-widget-x) หรือแยกเก็บเข้าคลังบันทึกความทรงจำไว้ เมื่อสมองของเรารู้ว่าโค้ดชิ้นนั้นไม่ได้สูญสลายหายไปในอากาศ แต่ถูกเก็บเข้าพิพิธภัณฑ์อย่างมีเกียรติแล้ว เราจะกดปุ่มลบออกจากระบบ Production ได้อย่างโล่งใจเป็นที่สุด

# จารึกป้ายเกียรติยศไว้ใน Git ก่อนปลดระวางฟีเจอร์เก่า
git tag -a archive/legacy-weather-widget -m "บันทึกความทรงจำ: ระบบพยากรณ์อากาศท้ายเว็บ ก่อนถอดออกเพื่อความคลีน"
git push origin archive/legacy-weather-widget

# จากนั้น... เดินหน้าชำระล้างโค้ดส่วนเกินได้อย่างสบายใจ!

"ความสมบูรณ์แบบของงานช่าง มิได้บรรลุเมื่อไม่มีสิ่งใดจะเขียนเติมเข้าไปอีก... แต่บรรลุเมื่อไม่มีสิ่งส่วนเกินใดๆ ให้ต้องตัดออกอีกต่อไปต่างหาก"

บทสรุปจากโต๊ะทำงานจิ้งจอก

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

สุดสัปดาห์นี้ ลองเปิดโปรเจกต์คู่ใจของคุณขึ้นมา สำรวจดูตามซอกมุมของเมนูและโฟลเดอร์... หากเจอฟีเจอร์ไหนที่ยืนเหงาไร้ผู้คนมาเนิ่นนาน ลองกล่าวคำขอบคุณมันเบาๆ สำหรับบทเรียนที่ได้มอบให้ตอนเราฝึกเขียน แล้วปลดปล่อยมันให้ได้พักผ่อนอย่างสงบดูนะครับ รับรองว่าก้าวต่อไปของเว็บคุณจะเบาสบายราวกับเดินบนปุยเมฆแน่นอน! 🦊🍃✨