Posts

Tình huống mà bất cứ developer nào cũng gặp trong đời

Image
Gần đây, chúng tôi có refactor lại 1 số build script được viết từ lâu rồi. Từ chỗ chỉ muốn đổi A, chúng tôi thấy cần đổi cả B nữa, rồi ý muốn refactor lan sang cả C, cứ như vậy, hơn 1 tuần vẫn chưa kết thúc được.  Trong số đó, có 1 chỗ refactor liên quan đến encryption key cho database. Tức là chúng tôi không muốn để cái encryption key của database chình ình trong code, vì hacker rất dễ đọc được, nên chúng tôi encrypt cái key đó rồi lúc runtime mới decrypt cái key ra, rồi mới dùng key đã được giải mã để mở database.   Buồn cười là: Khi QA test, tất cả các máy đều chạy được, chỉ trừ 1 máy bị crash ở đoạn check size của cái key. Rất khó hiểu, chúng tôi thử đủ kiểu, lúc thì fix cái này, lúc thì fix cái kia, có lần chạy được, có lần lại không chạy được. Issue thoắt ẩn thoắt hiện sau mỗi lần build, khiến chúng tôi không xác định được root cause là gì. Vì phải build trên server mới test ra lỗi, còn bản build dưới máy chúng tôi thì không bao giờ ra lỗi, thế nên thời gian chờ build cũ...

Lỗi khởi tạo biến static

Hồi còn non nghề, tôi có viết code như thế này: // file welcome.h class Welcome { public: static void sayHello(const std::string& name); }; // file welcome.cpp const static std::string hello = "hello"; void Welcome::sayHello(const std::string& name) { std::cout