เมื่อเครื่องมือวิเคราะห์โค้ด Dennis เริ่มจดบันทึกอดีต
เรื่องราวลึกลับตี 3 และจุดเปลี่ยนสำคัญ เมื่อซอฟต์แวร์วิเคราะห์โค้ดอย่าง Dennis เลิกทำลายข้อมูลทิ้งและเริ่มจดจำอดีตของระบบได้

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- ซอฟต์แวร์วิเคราะห์โค้ด Dennis เริ่มบันทึกข้อสังเกตและหลักฐานไว้แทนที่จะลบทิ้ง
- ระบบจัดเก็บข้อมูลแบ่งเป็นดัชนีข้อสังเกตและคลังหลักฐานที่เชื่อมโยงกันด้วยแฮช
- การเก็บบันทึกเวลาช่วยให้โครงการซอฟต์แวร์จำประวัติศาสตร์และความคิดของทีมได้
นาฬิกาบอกเวลาตี 3:17 น. มีแขกผู้หญิงผมบลอนด์สวมโค้ทสีดำลึกลับปรากฏตัวขึ้นที่สำนักงานของฉัน พร้อมกับแฟ้มเอกสารไร้ชื่อ ภายในมีกระดาษแผ่นเดียวที่เขียนข้อความสั้นๆ ว่า "คุณควรไปถามเดนนิสว่ามันเห็นอะไร" นี่คือจุดเริ่มต้นของปริศนาที่ทำให้วิศวกรซอฟต์แวร์อย่างฉันต้องกลับมาทบทวนการทำงานของระบบที่ชื่อว่า Dennis
ย้อนกลับไปไม่กี่วันก่อนหน้านั้น Dennis ทำหน้าที่เพียงแค่ค้นหาความซ้ำซ้อนที่น่าสงสัยในโค้ดเบส การตรวจสอบเริ่มต้นจากคำถามง่ายๆ ว่า ชิ้นส่วนต่างๆ ในโค้ดที่ดูเหมือนจะทำหน้าที่เดียวกันนั้น เป็นโค้ดที่ซ้ำซ้อนกันจริงๆ หรือไม่ คำตอบที่ได้กลับซับซ้อนกว่าที่คิด เพราะบางส่วนเป็นอินเทอร์เฟสที่ถูกต้องตามกฎ บางส่วนเป็นสัญญาญนามธรรม และบางส่วนคือกลุ่มยูทิลิตี้ที่รอการตรวจสอบ

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
Dennis จึงต้องเรียนรู้ที่จะแยกแยะความแตกต่างเหล่านั้น และในกระบวนการนั้นเอง Dennis ก็ไม่ได้ทำหน้าที่แค่ค้นหาโค้ดที่น่าสงสัยอีกต่อไป แต่มันเริ่มมีความเห็นเกี่ยวกับสถาปัตยกรรมของระบบ เมื่อ Dennis ตรวจสอบโปรเจกต์ในวันจันทร์และพบข้อสังเกตบางอย่าง คำถามคือข้อสังเกตเหล่านั้นจะหายไปไหนในวันอังคาร ในเมื่อโค้ดเดิมยังคงอยู่แต่ช่วงเวลาที่ระบบประเมินนั้นได้ผ่านพ้นไปแล้ว
"เครื่องของคุณเห็นอะไร ก่อนที่คุณจะเปลี่ยนแปลงมัน"
หญิงสาวปริศนา
ทางออกของปัญหานี้คือการเปลี่ยนพฤติกรรมของ Dennis แทนที่จะทิ้งข้อมูลทั้งหมดลงในความว่างเปล่า Dennis เริ่มเก็บข้อมูลออกเป็นสองส่วน ส่วนแรกคือข้อสังเกตที่มีการประทับเวลา (timestamp) และส่วนที่สองคือหลักฐานที่อธิบายว่าทำไมจึงเกิดข้อสังเกตนั้น โดยเชื่อมโยงกันผ่านแฮชหลักฐานที่กำหนดได้ แน่นอนว่า Dennis ไม่ได้มีจิตสำนึกหรือตื่นรู้ขึ้นมา แต่มันแค่หยุดทำข้อมูลที่มีประโยชน์ให้สูญหายไป
ในทางวิศวกรรมซอฟต์แวร์ เครื่องมือควบคุมเวอร์ชันเช่น Git มักจะเก็บบันทึกการเปลี่ยนแปลงของโค้ด (commits) ไว้ได้เป็นอย่างดี แต่สิ่งที่เครื่องมือเหล่านี้มักจะขาดหายไปคือ บริบททางความคิดหรือเหตุผลเบื้องหลังว่าทำไมทีมพัฒนาจึงตัดสินใจเช่นนั้นในเวลานั้น การที่เครื่องมือวิเคราะห์สามารถเก็บบันทึกสถานะความคิดและมุมมองของระบบในอดีตได้ จึงเป็นก้าวสำคัญในการแก้ปัญหาการตามหาที่มาของโค้ดในภายหลัง
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น