Chương 047: Đọc Vị Phong Cách Viết Code
Mười giờ mười bảy phút sáng.
Tiệm điện tử Vũ Kỹ Thuật đóng cửa.
Không phải vì không có khách.
Mà vì Lão Cửu không muốn hôm nay có bất kỳ ai bước vào.
Tấm cửa cuốn chỉ kéo xuống khoảng hai phần ba.
Bên ngoài vẫn nhìn thấy bảng hiệu cũ.
Bên trong, ánh sáng từ màn hình ThinkPad phủ một màu xanh nhạt lên khuôn mặt Vũ.
Ông ngồi yên.
Không hút thuốc.
Không uống trà.
Không sửa máy.
Không nghe điện thoại.
Chỉ nhìn.
Trên màn hình là những mảnh phản ứng của V-Prosper sau cuộc đấu kéo dài suốt đêm.
Đợt quét đã kết thúc.
Nhưng trận chiến thực sự mới bắt đầu.
Vũ không quan tâm mình đã làm hệ thống V-Prosper thức trắng bao lâu.
Ông quan tâm thứ Zero để lại sau khi phòng thủ.
Một người có thể giỏi che giấu dấu vết.
Nhưng không ai có thể che giấu hoàn toàn thói quen.
Giống như người viết chữ.
Có người viết nét mạnh.
Có người luôn kéo dài nét cuối.
Có người thích viết chữ nghiêng.
Có người không bao giờ viết dấu chấm ngay giữa dòng.
Code cũng vậy.
Một người có thể thay tên biến.
Có thể đổi cấu trúc file.
Có thể thay giao diện.
Có thể xóa lịch sử.
Nhưng cách người đó giải quyết một vấn đề thường khó thay đổi hơn.
Vũ kéo một cửa sổ lên.
Rồi một cửa sổ khác.
Những đoạn mã đã được hệ thống phòng thủ của V-Prosper thay đổi trong đêm.
Ông không đọc từng dòng.
Ông đọc cách chúng liên kết với nhau.
Một lớp gọi lớp khác.
Lớp đó lại gọi một hàm trung gian.
Hàm trung gian gọi tiếp một nhóm xử lý.
Rồi kết quả quay ngược trở lại.
Một cấu trúc lồng.
Một cấu trúc mà người mới học thường tránh vì khó kiểm soát.
Nhưng những người trẻ tự tin quá mức lại rất thích.
Bởi vì nó đẹp.
Gọn.
Có vẻ thông minh.
Có vẻ như người viết đang nói với người đọc:
Tôi hiểu thứ này sâu hơn anh.
Vũ nhìn một lúc lâu.
Khóe miệng nhếch lên.
— Vẫn cái tật đó.
Ông nói một mình.
Mười năm trước.
Một phòng họp kín.
Một bảng trắng.
Một người đàn ông trẻ đứng trước bảng.
Nguyễn Khắc Vũ vẫn nhớ.
Những người trẻ tài năng thường có hai giai đoạn.
Giai đoạn đầu, họ viết code để giải quyết vấn đề.
Giai đoạn sau, họ bắt đầu viết code để chứng minh rằng mình thông minh.
Hai thứ khác nhau.
Một hệ thống tốt không cần đẹp theo nghĩa trình diễn.
Nó cần rõ ràng.
Dễ kiểm tra.
Dễ thay thế.
Dễ cứu khi có lỗi.
Nhưng người có cái tôi lớn thường không nghĩ vậy.
Họ thích những cấu trúc khiến người khác phải mất thời gian mới hiểu.
Họ tin rằng người đọc càng khó hiểu thì code càng cao cấp.
Vũ từng gặp rất nhiều kiểu người như thế.
Và một số người trong số họ đã trở thành thiên tài.
Một số trở thành thảm họa.
Một số trở thành cả hai.
Ông phóng lớn cấu trúc vừa phát hiện.
Những hàm lồng nhau.
Không phải một.
Mà nhiều lớp.
Vũ ngồi thẳng dậy.
— Không phải trùng hợp.
Ông chuyển sang dữ liệu cũ.
Một mẫu cấu trúc trong cuộc tấn công trước.
Rồi cấu trúc phòng thủ của đêm qua.
Hai thứ không giống nhau hoàn toàn.
Nhưng cùng một người.
Cùng một cách suy nghĩ.
Cùng một thói quen.
Khi gặp vấn đề, người viết không thích chia nhỏ nó thành những phần đơn giản.
Hắn thích tạo một lớp xử lý bao quanh một lớp khác.
Nếu lớp ngoài thay đổi, lớp trong vẫn giữ nguyên.
Nếu lớp trong gặp vấn đề, lớp ngoài xử lý.
Đó là cách xây dựng hệ thống.
Nhưng đồng thời cũng là cách tạo ra những điểm dễ tổn thương.
Vũ không cần tìm một lỗi cụ thể.
Ông đang tìm thói quen tạo lỗi.
Mười giờ bốn mươi.
Vũ mở lại một hình ảnh.
Quán cơm tấm đêm ở Quận 4.
Ánh đèn vàng.
Khói bếp.
Bàn ghế nhựa.
Một chiếc VF9 đỗ ngoài đường.
Và một thanh niên mặc áo sơ mi đơn giản.
Trần Hoàng Nam.
Lúc đó, Vũ chưa biết tên hắn.
Chỉ biết hắn là một gã trẻ tuổi có vẻ ngoài của dân công nghệ.
Điện thoại đặt trên bàn.
Ngón tay thao tác rất nhanh.
Cổ tay có hình xăm.
Không lớn.
Nhưng đủ để Vũ nhớ.
Điều ông nhớ nhất không phải hình xăm.
Mà là cách hắn cầm điện thoại.
Ngón cái di chuyển nhanh nhưng không vội.
Mỗi lần dừng đều có chủ ý.
Một người không làm việc theo phản xạ.
Một người đang tính.
Và quan trọng hơn...
Khi Vũ nói chuyện về áp lực cuộc sống, Nam không phản ứng như một người bình thường.
Hắn nghe.
Quan sát.
Sau đó trả lời bằng một câu rất ngắn.
Vũ từng nghĩ đó chỉ là trực giác.
Bây giờ ông biết.
Không phải.
Đó là cùng một kiểu tư duy.
Tối ưu hóa phản ứng của đối phương.
Trong code cũng như ngoài đời.
Vũ ngả người ra ghế.
— Trần Hoàng Nam.
Lần đầu tiên cái tên ấy được nói thành tiếng trong tiệm điện tử cũ.
Không còn là một cái tên tình cờ trong danh sách.
Không còn là người thanh niên gặp ở quán cơm tấm.
Không còn là “Tech-bro” vô danh.
Đó là Zero.
Mười một giờ mười.
Vũ tiếp tục đọc.
Ông tìm một điểm khác.
Một hàm phòng thủ mới xuất hiện sau cuộc quét.
Nó được thiết kế để nhận biết những luồng hoạt động có cấu trúc bất thường.
Cách viết khá đẹp.
Thậm chí rất đẹp.
Vũ phải thừa nhận điều đó.
Nhưng chính vì đẹp nên ông nhìn thấy vấn đề.
Một số hàm lồng nhau quá sâu.
Khi dữ liệu chạy qua nhiều lớp xử lý, mỗi lớp lại giữ trạng thái của lớp trước.
Nếu lượng xử lý tăng mạnh, bộ nhớ ngăn xếp có thể bị ép tới giới hạn.
Một lỗi kiểu đó, trong điều kiện phù hợp, có thể dẫn tới stack overflow.
Vũ không định khai thác.
Ông chỉ cần biết.
Zero đã để lại một dấu vết.
Không phải một cánh cửa mở.
Mà là một vết lõm trong cách hắn xây dựng cánh cửa.
Vũ lấy bút.
Viết:
NESTED FUNCTION.
Bên dưới:
QUÁ TIN VÀO CẤU TRÚC.
Rồi một dòng nữa:
CÁI TÔI.
Ông nhìn ba dòng chữ.
Cười.
— Trẻ.
Nhưng nụ cười biến mất rất nhanh.
Bởi Vũ hiểu một điều.
Người có thói quen này không ngu.
Ngược lại.
Hắn rất thông minh.
Chỉ là hắn quá tin vào trí thông minh của mình.
Và đó mới là thứ nguy hiểm.
Mười một giờ ba mươi.
Thủ Thiêm.
Zero đang ngồi trong phòng làm việc.
Sau bốn tiếng thức trắng, hắn vẫn chưa ngủ.
Trên màn hình là báo cáo hệ thống.
Một nhân viên bước vào.
— Anh Nam.
— Gì?
— Lớp phòng thủ tối qua đã ổn định.
— Tôi biết.
— Có cần giữ cấu hình hiện tại không?
Nam quay lại.
— Giữ.
— Nhưng có một số phản hồi bị chậm.
— Chậm còn hơn để lộ.
Nhân viên gật đầu.
Định quay đi.
Nam gọi lại.
— Khoan.
— Dạ?
— Đừng chỉnh phần xử lý lồng nhau.
Nhân viên hơi ngạc nhiên.
— Nhưng nếu tối ưu lại thì...
— Không.
Nam nhìn màn hình.
— Tôi tự xử lý.
Nhân viên đi ra.
Nam quay lại với hệ thống.
Hắn không biết rằng chính câu nói đó, nếu có người nghe được, sẽ là một mảnh ghép hoàn hảo.
Bởi đó đúng là phong cách của hắn.
Không thích người khác chạm vào phần mình đã viết.
Không thích người khác sửa cấu trúc do mình tạo ra.
Không thích người khác làm code của mình “bớt đẹp”.
Nam đưa tay vuốt nhẹ lên cổ tay.
Hình xăm Zero hiện ra dưới ánh sáng màn hình.
Hắn nhớ đến cuộc quét đêm qua.
Nhớ đến cách đối phương thay đổi.
Nhớ đến những khoảng dừng.
Hắn biết người bên kia đang đọc mình.
Nhưng hắn chưa biết người đó đã đọc được bao nhiêu.
Mười một giờ năm mươi.
Quận 4.
Lão Cửu đứng dậy.
Ông đi tới chiếc tủ sắt cũ.
Mở ngăn dưới cùng.
Bên trong là một chiếc ổ cứng.
Ông không lấy ra.
Chỉ nhìn.
Sau đó đóng lại.
Không cần.
Những gì ông cần đã nằm trước mắt.
Vũ trở về bàn.
Ông mở một kênh liên lạc mà từ lâu không dùng.
Không gửi dữ liệu.
Không gửi địa chỉ.
Không gửi lời đe dọa.
Chỉ gửi một thông điệp.
Một câu.
Một người bình thường có thể nhìn thấy nó như một dòng chữ vô nghĩa.
Nhưng với hệ thống bên kia, nó sẽ được đưa thẳng vào một màn hình giám sát.
Vũ đặt tay lên bàn phím.
Dừng lại vài giây.
Rồi gõ.
Code đẹp đấy Trần Hoàng Nam, nhưng hàm lồng của cậu có lỗ hổng stack overflow.
Ông nhìn dòng chữ.
Không gửi ngay.
Một giây.
Hai giây.
Ba giây.
Vũ nhớ lại đêm ở quán cơm tấm.
Gã thanh niên kia đã từng hỏi:
— Chú sửa máy tính lâu chưa?
Vũ trả lời:
— Lâu rồi.
Nam cười.
— Vậy chắc chú biết nhiều thứ.
Lúc ấy Vũ không nghĩ gì.
Bây giờ nhớ lại, ông thấy câu đó có thể đã là một phép thử.
Vũ bấm gửi.
Mười một giờ năm mươi mốt.
Penthouse Thủ Thiêm.
Một màn hình nhỏ bật lên.
Zero đang đọc báo cáo.
Một dòng chữ xuất hiện.
Hắn khựng lại.
Không phải vì nội dung.
Mà vì tên.
Trần Hoàng Nam.
Không có tên viết tắt.
Không có bí danh.
Không có vòng vo.
Chỉ thẳng tên thật.
Nam ngồi yên.
Mắt không chớp.
Hắn đọc lại.
Một lần.
Hai lần.
Sau đó kéo ghế sát vào bàn.
Dòng cuối cùng khiến hắn dừng lâu nhất.
...hàm lồng của cậu có lỗ hổng stack overflow.
Nam nhìn cấu trúc code trên màn hình.
Sau đó nhìn lại tin nhắn.
Hắn không tin.
Không phải vì lỗi đó không tồn tại.
Mà vì người gửi biết nó tồn tại.
Và người đó đã biết tên hắn.
Một cảm giác lạnh chạy dọc sống lưng.
Nam mở lại hình ảnh quán cơm tấm.
Không có.
Hắn tìm camera.
Không có.
Hắn tìm dữ liệu giao thông.
Không có.
Rồi hắn nhớ.
Người đàn ông ngồi đối diện mình.
Áo cũ.
Dép cũ.
Ly cơm tấm.
Điếu thuốc.
Giọng nói bình thản.
Nam lẩm bẩm:
— Không thể nào...
Nhưng trong đầu hắn đã có câu trả lời.
Người đó không phải một ông già sửa máy bình thường.
Mười hai giờ ba phút.
Zero đứng trước cửa kính.
Thành phố bên dưới vẫn bình thường.
Xe chạy.
Đèn sáng.
Người đi ăn trưa.
Không ai biết hai người đang nhìn nhau qua một khoảng cách mà không camera nào đo được.
Nam quay lại màn hình.
Hắn không trả lời.
Không phản công.
Không xóa tin.
Chỉ nhìn.
Một lúc sau, hắn mở hồ sơ nội bộ của V-Prosper.
Tìm kiếm:
NGUYỄN KHẮC VŨ.
Không kết quả.
Hắn thử lại.
Không.
Nam nhíu mày.
Nếu người kia thực sự là Vũ...
Tại sao không có dữ liệu?
Hắn mở một thư mục cũ.
Một số hồ sơ nhân sự lịch sử.
Một số tài liệu dự án đã bị khóa.
Một số cái tên bị xóa khỏi hệ thống.
Không có Nguyễn Khắc Vũ.
Nhưng có một mã dự án.
K-14.
Nam nhìn cái tên đó.
Không hiểu vì sao tim hắn đập nhanh hơn.
Hắn mở.
Quyền truy cập bị từ chối.
Nam thử lại.
Vẫn từ chối.
Hắn ngồi yên.
Trong đầu xuất hiện một câu hỏi.
Lão Cửu biết mình là ai.
Vậy...
Lão Cửu biết K-14 đến đâu?
Mười hai giờ mười bảy.
Quận 4.
Lão Cửu đóng ThinkPad.
Ông không cần chờ câu trả lời.
Điều quan trọng đã xảy ra.
Zero đã nhận được tin nhắn.
Và hắn sẽ làm điều mà Vũ muốn.
Hắn sẽ nhìn lại code của mình.
Nhìn lại quá khứ của mình.
Và bắt đầu tự hỏi:
Mình đã để lộ bao nhiêu?
Vũ đứng dậy.
Đi ra phía trước tiệm.
Kéo cửa cuốn lên.
Ánh nắng tràn vào.
Một khách quen chạy xe tới.
— Cửu, cái máy hôm qua sửa xong chưa?
Vũ quay lại.
— Xong rồi. Lấy đi.
— Bao nhiêu?
— Hai trăm.
— Bớt chút coi.
— Không.
— Sao nay dữ vậy?
Vũ cười.
— Nay tao đang vui.
Người khách nhìn ông.
— Vui gì?
— Bắt được lỗi máy.
Người kia bật cười.
— Có cái lỗi máy mà vui dữ?
Vũ không trả lời.
Ông nhìn dòng xe ngoài hẻm.
Trong đầu, hình ảnh gã thanh niên ở quán cơm tấm hiện lên.
Hình xăm.
Chiếc điện thoại.
Cách hắn nói chuyện.
Cách hắn quan sát.
Cách hắn viết code.
Tất cả cuối cùng đã nối lại.
Zero là Trần Hoàng Nam.
Không còn là nghi ngờ.
Không còn là phỏng đoán.
Mà là kết luận của người đã nhìn thấy cùng một con người ở hai thế giới.
Một thế giới dùng cơm tấm vỉa hè.
Một thế giới điều khiển mạng lưới tài chính.
Một thế giới là Tech-bro trẻ tuổi.
Một thế giới là Zero.
Vũ lấy điếu thuốc.
Châm lửa.
Rít một hơi.
Khói thuốc bay lên.
Ông nói rất khẽ:
— Vậy là tìm được mày.
Cùng lúc đó, ở Thủ Thiêm.
Zero cũng đang nhìn vào màn hình.
Tin nhắn vẫn còn đó.
Hắn không xóa.
Không thể xóa.
Bởi nếu xóa, nó cũng không làm biến mất điều quan trọng nhất.
Người kia đã gọi đúng tên hắn.
Nam ngồi xuống.
Hai bàn tay đặt lên bàn.
Hắn nhìn cấu trúc code của chính mình.
Lần đầu tiên sau rất nhiều năm, hắn không nhìn nó bằng ánh mắt của người viết.
Hắn nhìn nó bằng ánh mắt của kẻ đang bị người khác đọc.
Một cấu trúc tưởng như hoàn hảo.
Một chuỗi hàm tưởng như gọn gàng.
Một phong cách mà hắn từng tự hào.
Bây giờ trở thành dấu vân tay.
Nam khẽ cười.
Nhưng nụ cười không có chút vui vẻ.
— Lão Cửu...
Hắn nói.
— Ông đọc tôi được tới đâu rồi?
Màn hình không trả lời.
Ngoài cửa kính, Sài Gòn vẫn chuyển động.
Còn giữa hai người, một trò chơi mới vừa bắt đầu.
Không còn là tìm nhau.
Không còn là đoán nhau.
Mà là đọc nhau.
Và người đầu tiên bị đọc hết...
sẽ mất quyền chủ động.
--=---
PLS FOLLOW KÊNH ĐỂ TẠO ĐỘNG LỰC CHO TÁC GIẢ VÀ THEO DÕI CÁC CHƯƠNG TIẾPT HEO …
---==--