เราไม่เผยแพร่ผลงานที่มีลิขสิทธิ์ในประเทศไทย หากท่านพบเนื้อหาที่ละเมิดลิขสิทธิ์ แจ้งได้ที่เพจ Facebook NovelStore เราจะลบให้โดยเร็ว
ปัญหาการใช้งานเว็บไซต์ ติดต่อได้ที่เพจดังกล่าว
We do not publish or distribute copyrighted works in Thailand. To report infringing content, contact us via our Facebook page and we will remove it promptly. For other issues, use the same channel.

บทที่ 5 อะไรคือการเขียนโปรแกรมเชิงป้องกันกันนะ?

บทที่ 5 อะไรคือการเขียนโปรแกรมเชิงป้องกันกันนะ?

บทที่ 5 อะไรคือการเขียนโปรแกรมเชิงป้องกันกันนะ?


บทที่ 5 อะไรคือการเขียนโปรแกรมเชิงป้องกันกันนะ?

จากนั้นก็ตรวจดูแผงควบคุม ไม่ปรากฏข้อผิดพลาดใด ๆ

เปิดหน้าเว็บ ใส่ที่อยู่ URL ใช้เมาส์คลิกฟังก์ชัน ทุกอย่างเป็นปกติดี

ทำอย่างนี้ไปเรื่อย ๆ ฟังก์ชันต่าง ๆ ก็เสร็จสมบูรณ์ในพริบตา

เฉินโม่ขยับนิ้วเล็กน้อยพลางว่า

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

ฉีเหมิงเหมิงได้เห็นกับตาว่าโค้ดค่อย ๆ เพิ่มขึ้นเรื่อย ๆ จากน้อยเป็นมาก เต็มไปด้วยกฎเกณฑ์อันลึกล้ำ สีหน้าเต็มไปด้วยความเคารพเลื่อมใส

โค้ดพวกนี้ในมืออาจารย์ เหมือนเด็กตัวเล็ก ๆ ที่เชื่อฟังคำสั่งอย่างเคร่งครัด ไม่เกเรเลยแม้แต่นิดเดียว

ฟังก์ชันที่เธอวางแผนไว้ว่าต้องใช้เวลาทำงานหนึ่งสัปดาห์ พออยู่ในมืออาจารย์กลับใช้เวลาไม่ถึงสิบห้านาทีด้วยซ้ำ

ดูเวลาแล้วผ่านไป 13 นาที 14 วินาที นี่แหละคือช่องว่างระหว่างเธอกับอาจารย์

“โค้ดทั้งหมดเมื่อครู่ จริง ๆ แล้วมีชื่อเรียกรวมๆ ว่า ‘การเขียนโปรแกรมเชิงป้องกัน’!”

ไม่รู้ว่าเป็นภาพหลอนไหม ฉีเหมิงเหมิงรู้สึกว่าอาจารย์หยุดไปครู่หนึ่งอย่างไม่มีเหตุผลตอนพูดประโยคสุดท้าย

“การเขียนโปรแกรมเชิงป้องกันมันคืออะไรกันคะ?”

เฉินโม่นั่งกลับที่เดิม โบกมือเรียกให้อีกฝ่ายเข้ามาดูใกล้ ๆ

“การเขียนโปรแกรมเชิงป้องกันคือแนวทางเขียนโค้ดที่ละเอียดรอบคอบและระมัดระวัง”

“หลักการคือต้องคาดการณ์ปัญหาต่าง ๆ ที่อาจจะเกิดขึ้นไว้ล่วงหน้า แล้วก็เตรียมมาตรการป้องกันเอาไว้ก่อน”

“นิสัยการเขียนโปรแกรมแบบนี้จะเน้นที่การป้องกันข้อผิดพลาดและควบคุมอย่างเข้มงวด เพื่อลดผลลัพธ์เสียหายรุนแรงที่อาจเกิดขึ้น”

“โค้ดที่ฉันทำให้ดูเมื่อครู่เป็นแนวทางจาก ‘ด้านสว่าง’ ถ้าจะพูดตามสำนวนโบราณก็คือ ‘ฟ้าสูงหนึ่งศอก ปีศาจก็สูงหนึ่งวา’”

“ต่อไปที่ฉันจะสอนเธอ คือวิถี ‘ด้านมืด’ ของการเขียนโปรแกรมเชิงป้องกัน”

“จริง ๆ เมื่อก่อนก็ไม่มีอะไรแบบนี้หรอก แต่เพราะการช่วงชิงระหว่างบริษัทกับพนักงานหนักขึ้นเรื่อย ๆ ซึ่งฝ่ายหลังมักตกเป็นรอง”

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

“ด้วยวิธีนี้ ในระดับหนึ่งก็เท่ากับทำให้ตัวเอง ‘ถูกแทนที่ได้ยาก’ กลายเป็นว่าบริษัทเองก็ไม่กล้าทำอะไรมาก”

“ถ้าไม่ใช่เพราะเธอเป็นศิษย์ของฉัน ฉันไม่ค่อยเอาวิชานี้ออกมาเปิดเผยง่าย ๆ หรอก เพราะถ้าใช้แล้วจะมีผลตามมาใหญ่หลวง คล้าย ‘เพลงหมัดเจ็ดพิษ’ ที่ทำร้ายคนอื่นก็จริงแต่ก็เป็นภัยแก่ตัวด้วย”

“แต่ตอนนี้วิทยายุทธ์ของอาจารย์แก่กล้าแล้ว จนผลข้างเคียงพวกนี้ไม่มีผลอีกต่อไป”

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

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

ผ่านไปสักพัก เฉินโม่ถึงได้ขยับหน้าจอให้หันไปทางฉีเหมิงเหมิงนิดหน่อย

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

เขารู้สึกพอใจกับสภาพตัวเองตอนนี้เป็นอย่างยิ่ง วัยหนุ่มนี่มันดีจริง ๆ แล้วก็ได้ยินเสียงอุทานที่กลั้นไม่อยู่ของฉีเหมิงเหมิง

“ว้าว อาจารย์ พี่เร็วมาก!”

คำนี้ไม่ควรพูดเลยนะ…

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

โค้ดต้นฉบับถูกแก้จนไม่เหลือเค้าเดิม แต่เฉินโม่ไม่ได้แค่ต่อเติมอะไรเหมือนต่อบล็อกตามใจ แต่แก้ให้สลับซับซ้อนเท่าที่จะเป็นไปได้

ทั้งวนลูปซ้อนกันหลายชั้น ใช้ไวยากรณ์ขั้นสูง ใส่ “ประตูล็อกซ้อนประตู” ลงในโค้ดหลายชั้น อีกทั้งยังแทรกลงไปในไฟล์ตั้งค่าและฐานข้อมูลอีกด้วย

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

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

ระหว่างที่เขียนโค้ด เฉินโม่จะหยุดอธิบายความหมายทีละนิด ๆ ให้ฉีเหมิงเหมิงฟังอย่างค่อยเป็นค่อยไป

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

ตอนนั้นมีพนักงานคนหนึ่งเดินผ่าน

ตอนแรกเขาเดินผ่านที่นั่งของเฉินโม่ไปแล้ว แต่เหมือนหูจะได้ยินอะไรบางอย่างก็ร้อง “เอ๊ะ” แล้วเดินถอยกลับมาดูอยู่ด้านหลัง

【เฉินโม่พิมพ์โค้ดเร็วขึ้นนะ เกือบจะทันฉันแล้ว สงสัยตบหน้าบอสแล้วได้โบนัสเรอะ?】

【อ้าว โค้ดที่ทดสอบเสร็จแล้วทำไมแก้ต่ออีกล่ะ?】

【นี่กำลังปรับปรุงประสิทธิภาพ? แต่แก้ขนาดนี้เรียกว่ารื้อใหม่หมด ช่วงจะส่งงานตรวจรับแล้วนะ จะหาเรื่องใส่ตัวหรือไง?】

【เฮ้ย ไวยากรณ์แบบนี้ใช้ได้ด้วยเหรอ? ได้ความรู้ใหม่แฮะ ไม่เสียเที่ยวที่กลับมาดู】

【แต่ทำไมยิ่งทำยิ่งดูเหมือน ‘รีเวิร์สรื้อโค้ด’ ให้ซับซ้อนหนักขึ้นเรื่อย ๆ อย่างนี้มันยังรันได้อยู่หรือเปล่า แปลกคนจริง ๆ】

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

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

“นี่แหละที่เรียกว่า ‘การเขียนโปรแกรมเชิงป้องกัน’ เข้าใจไหม?”

ฉีเหมิงเหมิงลืมตาแป๋วส่ายหัวอย่างช่วยไม่ได้ ดูก็เหมือนไม่เข้าใจ

เฉินโม่พยักหน้าอย่างพึงพอใจ

“ไม่เข้าใจนั่นแหละถูกแล้ว อีกไม่กี่วันฉันกลับมาอ่านโค้ดที่ฉันเขียนอาจจะยังไม่เข้าใจเลยก็ได้ นี่คือที่สุดของขอบเขต ‘ในตามีโค้ด ในใจไร้โค้ด’”

“ก็คงได้แต่บอกว่า หวังเต๋อฟา จงโชคดีเถอะ ขอให้ตอนตรวจรับงานฟังก์ชันพวกนี้อย่ามีการปรับแก้อะไรอีก ไม่อย่างนั้น…”

“ไม่อย่างนั้นจะเป็นยังไงคะ?”

เฉินโม่ทำมือปุ้งเป็นรูปดอกไม้ พร้อมเปล่งเสียง BOOM ออกจากปาก

“ศิลปะก็เหมือนการระเบิด!”

ส่วนเรื่องจะส่งมอบระบบผ่านไหม สำหรับเด็กฝึกงานอย่างเธอไม่ใช่เรื่องน่ากังวล ฉีเหมิงเหมิงเองกลับสงสัยอีกเรื่องมากกว่า

“อาจารย์คะ ตอนพี่เขียนโค้ดเมื่อกี้ ไม่ต้องคิดก่อนเลยเหรอคะ? มันเหมือนทำทีเดียวจบลื่นไหลมาก…”

เธอนึกคำบรรยายไม่ออก สุดท้ายเลยทำได้แค่ยกนิ้วโป้ง

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

“นี่แหละสิ่งที่เธอต้องเรียนรู้ต่อไป พูดไปตอนนี้ก็คงจำไม่หมด เอาล่ะ วันนี้อาจารย์ถ่ายทอดวิชาหลายอย่างแล้ว เธอไปย่อยก่อนก็แล้วกัน”

เฉินโม่ยกแก้วน้ำขึ้น เตรียมจะไปเติมน้ำดื่ม พอลุกขึ้นถึงได้รู้ว่าด้านหลังตัวเองมีคนยืนอยู่

แข็งทื่อเหมือนรูปปั้นเลย

จบบทที่ บทที่ 5 อะไรคือการเขียนโปรแกรมเชิงป้องกันกันนะ?

คัดลอกลิงก์แล้ว