Lại Làm Bjam Buồn Một Lần Nữa - nói dối e blog

Lại Làm Bjam Buồn Một Lần Nữa

Tưởng tượng cảm giác thất vọng của tôi khi đến công ty vào buổi sáng và nghe đồng nghiệp báo tin dữ về lỗi syntax trong tập tin jamfile! Vấn đề nằm ở cách sử dụng yêu cầu dự án khi xây dựng cấu trúc thư viện tĩnh giữa các cấp thư mục. Cụ thể, khi tạo một thư viện tĩnh ở thư mục cấp cao mà muốn tham chiếu đến nó ở các thư mục cấp thấp hơn bằng cách khai báo lồng ghép trong từng cấp project thì hệ thống lại báo lỗi.

Sau khi phân tích kỹ, tôi mới nhận ra cơ chế kế thừa tự động của hệ thống jamfile - tất cả các thuộc tính project từ thư mục cha sẽ được truyền xuống các thư mục con. Điều này hoạt động rất trơn tru với đặc tính nhờ cơ chế tự động thêm “../” khi kế thừa đường dẫn. Tiếc rằng tính năng lại không được xử lý tương tự. Thực tế thú vị là trước đây tôi vẫn quen dùng mà không hề biết đến sự tồn tại của cho đến khi tra cứu mã nguồn hôm nay!

Trên Google, tôi tìm thấy tài liệu chính thức của Boost.Build V2 tại địa chỉ trong phần Core changes có ghi chú quan trọng: “Khi khai báo foo//bar trong yêu cầu dự án, các dự án kế thừa cần tự động nhận ../foo//bar, nếu không hệ thống sẽ không hoạt động đúng.” Hóa ra đây là một mục “To Do” tồn đọng từ lâu chứ không phải lỗi ngẫu nhiên. Thôi đành chờ bản cập nhật chính thức của bjam thay vì tự mày mò fix lỗi này.

Đáng suy ngẫm là qua trải nghiệm này, tôi nhận ra sự khác biệt trong kỳ vọng khi dùng công cụ hiện đại. Ngày xưa dùng VC IDE thủ công, phải click chuột từng bước thiết lập thư viện, mặc dù tốn thời gian nhưng lại chấp nhận được. Nay nhờ các hệ thống build thông minh, chúng ta kỳ vọng cao hơn về tính tự động và liền mạch, dẫn đến việc dễ thất vọng khi gặp phải các giới hạn kỹ thuật như thế này.

0%