Tác giả: Alexander Shvets, người sáng lập trang Refactoring.Guru. Sách đi kèm khoá học online cùng tên, xuất bản năm 2019, dạng ebook, có bản theo từng ngôn ngữ: Java, C#, PHP, Python.
Thuộc tầng 2 — Làm nghề giỏi dần lên.
Cuốn này nói về gì: Một cuốn catalog về "mùi code" (code smells) — những dấu hiệu cho thấy code đang có vấn đề — và kỹ thuật refactoring tương ứng để sửa từng mùi. Mỗi mục đều có ví dụ trước/sau rõ ràng, hướng dẫn từng bước, không lý thuyết suông. Tư tưởng cốt lõi: code xấu thường không xấu theo một kiểu duy nhất, mà có những "mùi" quen thuộc lặp đi lặp lại — và mỗi mùi đều đã có cách sửa được kiểm chứng. Sách được tổ chức sao cho từ một "mùi" bạn lần ra ngay những kỹ thuật có thể chữa nó, đi từ triệu chứng tới cách sửa chứ không phải học thuộc lòng một danh sách khô khan.
Những ý hay nhất:
- Đặt tên đúng cho vấn đề. Biết gọi tên "mùi" thì mới sửa được, thay vì cảm giác mơ hồ "đoạn code này có gì đó sai sai". Có từ vựng chung để cả team nói chuyện với nhau về chất lượng code cũng là một giá trị lớn.
- Mỗi kỹ thuật có ví dụ minh hoạ trước/sau. Không phải lý thuyết trừu tượng, mà là "đoạn code này đang thế này, làm từng bước này thì thành thế kia". Đọc xong áp dụng được ngay vào code đang viết.
- Có bản theo đúng ngôn ngữ mình dùng. Đọc ví dụ bằng Java khi mình viết Java, bằng Python khi mình viết Python — không phải tự dịch ví dụ trong đầu.
Hợp với ai: Dev đã làm 1–2 năm, bắt đầu thấy code mình viết khó bảo trì; junior muốn lên mid.
Điểm trừ/lưu ý: Dạng catalog nên đọc liền mạch từ đầu đến cuối hơi khô — cuốn này hợp làm sách tra cứu (gặp mùi nào tra mùi đó) hơn là đọc một lèo. Phần lớn nội dung đã có miễn phí trên web refactoring.guru, sách là bản tổng hợp tiện lợi, gọn gàng để đọc offline.