Chuyên mục

Phát triển phần mềm

Nghệ thuật biến cà phê thành các dòng lệnh chạy được (hoặc lỗi).

05Bài viết
Nginx không "dở chứng" — bạn chỉ đang đọc config sai cách
Phát triển phần mềm13 min

Nginx không "dở chứng" — bạn chỉ đang đọc config sai cách

Giới Dev có một nghịch lý vui: chúng ta sẵn sàng tranh cãi cả tuần xem Backend nên viết bằng Rust, Go hay Node.js, nhưng đến lúc đẩy sản phẩm lên production thì 90% lặng lẽ gõ apt install nginx và cắm nó ra phía trước. Nginx là "người gác cổng quốc dân" — và cũng là thứ khiến không ít người ngồi debug tới 2 giờ sáng mà vẫn không hiểu vì sao một request đơn giản lại trả về 404. Điều thú vị là: lỗi gần như không bao giờ nằm ở Nginx. Nó nằm ở chỗ chúng ta đọc file config như đọc một đoạn code chạy tuần tự từ trên xuống — trong khi Nginx hoàn toàn không hoạt động như vậy. Bài này không phải danh sách "những lỗi Nginx thường gặp" để bạn chép về dán vào server. Mục tiêu của nó là đưa cho bạn một mô hình tư duy: hiểu Nginx suy nghĩ ra sao, để những cái bẫy tưởng như thần bí trở nên đoán trước được — thay vì cứ gặp là ngớ người ra.

11 thg 6, 2026Đọc
Cuộc Hội Tụ Thầm Lặng: Vì Sao Go, Rust, Kotlin Cùng Đi Một Hướng — Và Vì Sao Điều Đó Quan Trọng
Phát triển phần mềm21 min

Cuộc Hội Tụ Thầm Lặng: Vì Sao Go, Rust, Kotlin Cùng Đi Một Hướng — Và Vì Sao Điều Đó Quan Trọng

Không phải Rust hay hơn Java. Cũng không phải Go thay được C. Mà là cách chúng ta nghĩ về việc viết code đã âm thầm thay đổi suốt năm mươi năm qua — và bạn đang đứng giữa cuộc thay đổi ấy.

8 thg 6, 2026Đọc
Góc Nhìn "Reverse LSP": Khi Bản Năng Sinh Tồn Buộc Bạn Phải Vi Phạm Nguyên Tắc
Phát triển phần mềm8 min

Góc Nhìn "Reverse LSP": Khi Bản Năng Sinh Tồn Buộc Bạn Phải Vi Phạm Nguyên Tắc

SOLID không phải là một tôn giáo, và các nguyên tắc thiết kế không phải là những điều răn bất di bất dịch. Đứng ở góc độ một Tech Lead thực chiến, đôi khi quyết định bẻ gãy nguyên tắc Liskov Substitution Principle (LSP) lại là lựa chọn trưởng thành để cứu sống hệ thống. Hãy cùng phân tích 4 kịch bản trade-off kinh điển và nghệ thuật khoanh vùng 'mã độc' an toàn.

28 thg 5, 2026Đọc
Bản Hiến Chương Đen Của Ngành Dầu Khí: Khi Kiến Trúc Code Quyết Định Sự Sống Còn
Phát triển phần mềm9 min

Bản Hiến Chương Đen Của Ngành Dầu Khí: Khi Kiến Trúc Code Quyết Định Sự Sống Còn

"Chuyện gì sẽ xảy ra nếu một lỗi thiết kế kiến trúc không chỉ tạo ra vài dòng bug, mà phải trả giá bằng mạng người? Hãy bước lên một giàn khoan bán chìm để hiểu vì sao Nguyên lý OCP và Dagger 2 không phải lý thuyết sách vở — chúng là bản hiến chương sinh tử của những hệ thống lõi." Độ dài: 247 ký tự (đã tính cả khoảng trắng). Phù hợp nhất cho: Thẻ mô tả (Meta Description) khi chia sẻ lên Viblo, Facebook, hoặc LinkedIn để kích thích người đọc click vào bài viết ngay lập thể.

27 thg 5, 2026Đọc
Code bớt "tham tham", đời bớt khổ: Sức mạnh của Single Responsibility dưới góc nhìn thực chiến
Phát triển phần mềm7 min

Code bớt "tham tham", đời bớt khổ: Sức mạnh của Single Responsibility dưới góc nhìn thực chiến

Phần lớn bug nghiêm trọng trên Production không đến từ thuật toán tồi—mà đến từ việc nhồi nhét quá nhiều trách nhiệm vào một chỗ. Đây là góc nhìn thực chiến về Nguyên lý Đơn Trách Nhiệm (SRP): cái "bẫy tiện tay" sinh ra God Object như thế nào, vì sao một hàm xử lý đơn hàng điển hình trở thành quả mìn bảo trì, và cách một Senior tái cấu trúc nó thành các tầng sạch sẽ, dễ test. Kiến trúc sạch không hề miễn phí—nhưng khi dự án phình lên 100 tính năng, đó chính là thứ giữ cho nó không sụp đổ.

24 thg 5, 2026Đọc