Level 5 · Vibe Codingscheduleอ่าน 12 นาที

แผนที่เขตอันตราย แก้ตรงไหนต้องกลัว แก้ตรงไหนลุยได้

starsTL;DR

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

แผนที่เขตอันตราย แก้ตรงไหนต้องกลัว แก้ตรงไหนลุยได้

มีสองแบบที่คนทำงานกับ AI มักเป็น และทั้งสองแบบมาจากปัญหาเดียวกัน

แบบแรก คุณกลัวการแก้ทุกอย่างเท่ากันหมด จะแก้คำผิดในหน้าเว็บหนึ่งคำ ใจคุณก็หวิว ๆ เหมือนกับตอนจะแก้ระบบล็อกอินหรือระบบจ่ายเงิน มือสั่นเท่ากัน ลังเลเท่ากัน สุดท้ายคุณเลยไม่กล้าแตะอะไรเลย ค้างอยู่ตรงนั้น เพราะทุกอย่างดูน่ากลัวไปหมด

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

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

ทาสีผนัง กับ รื้อตู้ไฟ

ลองนึกถึงเวลาคุณซ่อมแซมบ้านเอง

งานบางอย่างคุณทำเองได้สบาย เช่นทาสีผนังใหม่ ถ้าทาแล้วสีไม่สวย คุณก็แค่ทาทับใหม่ ผิดได้ แก้ได้ ไม่มีใครเดือดร้อน ต่อให้ทาเลอะก็เช็ดออก ลองผิดลองถูกได้เต็มที่ งานแบบนี้คุณลงมือเลย ไม่ต้องคิดมาก

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

โค้ดของคุณก็มีงานสองแบบนี้ มีโซนทาสีผนังที่ลุยได้ และมีโซนตู้ไฟที่ต้องช้าลงและระวังเป็นพิเศษ

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

💡 ใจความสำคัญ: ในงานซ่อมบ้าน ความอันตรายมองเห็นได้ด้วยตา แต่ในโค้ด ความอันตรายมองไม่เห็น งานที่เสี่ยงที่สุดกับงานที่ปลอดภัยที่สุด หน้าตาบนหน้าจอเหมือนกันทุกประการ ทักษะที่บทนี้จะให้คุณ คือการมองทะลุหน้าจอออกไปเห็นว่าอะไรคือตู้ไฟ

สูตรคิดความเสี่ยง

ก่อนจะดูว่าโซนไหนคือโซนแดง เราต้องมีเครื่องมือวัดก่อน ว่าอะไร "เสี่ยง" หรือ "ไม่เสี่ยง" วัดจากอะไร

ความเสี่ยงของการแก้แต่ละครั้ง มาจากสองอย่างคูณกัน

ความเสี่ยง = ราคาของการพัง × จำนวนสิ่งที่เกี่ยวข้องแบบมองไม่เห็น

มาดูทีละตัว

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

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

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

เก็บสูตรนี้ไว้ในหัว เดี๋ยวเราจะเอาไปใช้จัดของจริง

เขตแดง 5 จุดที่ต้องจำ

ทีนี้มาดูของจริง ในงาน vibe coding มีห้าโซนที่เกือบทุกครั้งจะเป็นเขตแดง เพราะมันคะแนนสูงทั้งราคาพังและจำนวนสิ่งที่เกี่ยวข้อง จำห้าตัวนี้ไว้ แล้วพอ AI จะแตะตรงไหนใกล้ ๆ ห้าตัวนี้ ให้สัญญาณในหัวคุณดังขึ้นทันที

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

2. ระบบล็อกอินและสิทธิ์การเข้าถึง คือ auth ส่วนที่ตัดสินว่าใครเข้าได้ ใครเข้าไม่ได้ ใครเห็นข้อมูลของใครได้บ้าง (บท 5.2 เรื่องกายวิภาคของเว็บแอป อธิบายว่า auth คืออะไร) ทำไมมันแดง เพราะบั๊กเดียวตรงนี้พลิกได้สองทางที่แย่พอกัน ทางหนึ่งคือประตูเปิดหมด ใครก็เข้าระบบคุณได้ เห็นข้อมูลคนอื่นได้ อีกทางคือประตูล็อกหมด ไม่มีใครเข้าได้เลยแม้แต่เจ้าของบัญชีจริง

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

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

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

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

จับความเสี่ยงให้ตรงกับความระวัง

พอคุณมีแผนที่แล้ว วิธีใช้มันง่ายมาก คือ ปรับความระมัดระวังให้ตรงกับโซน

อยู่ในเขตเขียว ลุยเร็ว บอก AI แก้ กดดู ผ่านก็ไปต่อ ไม่ต้องพิธีรีตอง เพราะต่อให้พังก็ราคาถูก

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

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

ความเข้าใจผิดสองข้อที่ต้องแก้

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

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

ของจริง เขตแดงในเว็บนี้

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

ในเขตเขียว เขาแก้แบบสบาย ๆ ทุกวัน เปลี่ยนข้อความ ปรับสี ขยับเลย์เอาต์ พวกนี้เขาลุยเร็ว เพราะรู้ว่าพังก็กดกลับได้ ไม่กระทบใคร

แต่มีงานชุดหนึ่งที่เขารู้ทันทีว่าเป็นตู้ไฟ และเปลี่ยนวิธีทำทันที เว็บนี้มีระบบล็อกอิน ทั้งอีเมลและล็อกอินผ่าน Google มีหน้า dashboard ที่โชว์ของที่ผู้ใช้แต่ละคนบันทึกไว้ และมีกฎ RLS ที่บังคับว่าผู้ใช้แต่ละคนเห็นได้เฉพาะข้อมูลแถวของตัวเอง (บท 5.15 เรื่องการอ่านข้อมูลของคุณ อธิบายว่า RLS คืออะไรและทำงานยังไง) งานแตะ auth และ RLS แบบนี้คือเขตแดงข้อ 2 ในแผนที่ของเราเป๊ะ บั๊กเดียวคือคนอื่นเห็นข้อมูลของคนอื่นได้ เขาจึงทำงานชุดนี้ช้าและระวังเป็นพิเศษ ไม่ใช่อารมณ์เดียวกับแก้สี

แต่ตัวอย่างที่ชัดที่สุดคือครั้งที่เขาต้องไปแก้ประวัติการบันทึกงานเก่าทั้งหมดของโปรเจกต์ เพื่อเปลี่ยนอีเมลที่ติดอยู่ในประวัตินั้น งานนี้แตะของเก่าทั้งกองพร้อมกัน และเป็นงานที่ย้อนกลับยากมาก ราคาพังสูงและกระทบเป็นวงกว้าง คือเขตแดงเข้มชัด ๆ สิ่งที่เขาทำก่อนลงมือ คือเลือกเซฟพอยต์แบบหนักสุด แยกสายสำรองออกมาทั้งเส้น ตั้งชื่อว่า backup/pre-email-rewrite ไม่ใช่แค่ commit ธรรมดา (บท 5.10 เรื่องการกลับคืนได้ อธิบายว่าเมื่อไหร่ควรแค่ commit เมื่อไหร่ควรแยกสาย) เขาเลือกแยกสาย เพราะ มันคืองานอันตรายที่กลับยาก เขาไม่ได้ทำเซฟแบบนี้ตอนแก้สีปุ่ม เขาทำเฉพาะตอนเจอตู้ไฟ นี่คือการปรับความระวังให้ตรงกับโซนแบบที่บทนี้สอน ทำให้เห็นจริง ๆ

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

ปักหมุดเขตแดงลงในแผนที่ของคุณเอง

ทักษะนี้จะใช้ได้จริงต่อเมื่อคุณเอามันไปปักลงในงานของคุณเอง ใน บท 5.13 เรื่องความจำภายนอก คุณได้สร้างไฟล์ System Map ไว้แล้ว คือแผนผังที่คุณกับ AI จดไว้ว่าเว็บคุณมีส่วนไหนบ้าง เปิดไฟล์นั้นขึ้นมาแล้วทำสิ่งเดียว คือไล่ทีละส่วน แล้วแปะป้ายลงไปในไฟล์เลยว่าส่วนนั้นเขียวหรือแดง

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

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


อ่านต่อ: เมื่อมันพัง วิธีกู้คืนทีละขั้น

แหล่งอ้างอิง