[VS Code] Làm chủ GitLens Inspect: "Cỗ máy thời gian" giúp bạn thấu thị mọi dòng code
Chào các anh em developer! Đã bao giờ bạn rơi vào tình cảnh mở một file code cũ lên và tự hỏi: "Ai đã viết cái logic quái thai này?" hay "Tại sao đoạn code này lại ở đây?".
Thông thường, chúng ta sẽ dùng git blame hoặc git log. Nhưng nếu file đó có hàng nghìn dòng và lịch sử commit chằng chịt, việc tìm kiếm chẳng khác nào mò kim đáy bể. Đó là lúc GitLens Inspect tỏa sáng. Trong bài viết này, mình sẽ chia sẻ cách biến GitLens từ một công cụ "xem tên tác giả" thành một trợ thủ đắc lực để debug và hiểu sâu codebase.
1. Nỗi đau mang tên "Git Blame" thông thường
Nhưng đời không như là mơ. Bạn thấy tên ông đồng nghiệp cũ đã nghỉ việc cách đây 2 năm với message vỏn vẹn: "Update logic". Xong! Cụt lừa. Bạn vẫn chẳng biết tại sao đoạn `if-else` đó tồn tại, nó liên quan đến Pull Request nào, hay trước đó nó trông như thế nào.
Git Blame truyền thống chỉ cho bạn biết "Ai" và "Khi nào", nhưng nó câm nín trước câu hỏi quan trọng nhất: "Tại sao?".
GitLens Inspect: "Cỗ máy thời gian" trong tầm tay
Đừng chỉ nhìn vào mấy dòng chữ mờ mờ ở cuối dòng code (CodeLens). Sức mạnh thực sự nằm ở bộ công cụ Inspect của GitLens. Dưới đây là 3 "tuyệt chiêu" giúp bạn thấu thị mọi dòng code.
1. File Annotations - Không chỉ là Blame
Thay vì nhìn từng dòng, hãy bật Blame Annotations (Ctrl+Shift+P -> GitLens: Toggle File Blame).
Lúc này, cả một "bản đồ thời gian" hiện ra bên trái màn hình. GitLens sử dụng màu sắc để phân biệt độ cũ/mới của code (Heatmap). Những dòng màu đỏ rực là "hàng nóng" vừa mới sửa, màu xanh lạnh lẽo là những dòng "di tích" đã nằm đó từ thuở sơ khai. Nhìn vào đây, bạn sẽ thấy ngay bức tranh tổng thể: Đoạn logic này được đắp vá qua bao nhiêu đời "chủ", hay nó là một khối thống nhất từ đầu.
2. Timeline View - Review quá khứ trong một nốt nhạc
Đây chính là "cỗ máy thời gian" thực thụ. Khi bạn chọn một file, hãy mở tab Timeline ở cột trái (hoặc dưới cùng). GitLens sẽ liệt kê tất cả các mốc thời gian file này bị thay đổi.
So sánh tức thì: Bạn có thể click vào bất kỳ commit nào để xem sự khác biệt (diff) giữa phiên bản đó và phiên bản hiện tại.
Visual Context: Bạn sẽ thấy được sự tiến hóa của file code. Thay vì đọc log khô khan, bạn thấy được hình ảnh trực quan: "À, ngày xưa nó chỉ có 10 dòng, sau đợt Big Update tháng 6 nó mới phình ra thế này".
3. Inspect Line - Đào sâu vào "Tâm hồn" của một dòng code
Khi bạn đặt con trỏ chuột vào một dòng code, GitLens sẽ hiển thị một biểu tượng nhỏ (hoặc bạn dùng phím tắt). Khi click vào, một bảng điều khiển chi tiết sẽ hiện ra:
Commit Details: Xem toàn bộ nội dung commit message (hy vọng là ông viết code trước đó có tâm).
Quick Pick: Nhảy nhanh đến PR (Pull Request) liên quan trên GitHub/GitLab. Đây là "mỏ vàng" thông tin vì ở đó có các cuộc thảo luận, tranh luận của team về việc tại sao lại code như vậy.
Changes Hopping: GitLens cho phép bạn "nhảy" ngược về các phiên bản trước đó của đúng dòng code đó. Bạn sẽ thấy dòng code này đã "biến hình" qua 5-6 đời commit như thế nào.
Case Study: Dùng GitLens để "giải mã" Bug logic
Quay lại cái Payment Service 2000 dòng ở trên. Thay vì ngồi đoán, mình làm theo các bước sau:
- Bật Inspect Line trên dòng logic nghi vấn.
- Truy vết PR: Thấy nó nằm trong PR "Fix race condition when user double click".
- Đọc Discussion: Hóa ra đoạn if-else trông "quái thai" đó là để chặn một bug hiếm gặp khi hệ thống thanh toán bị lag.
- Kết luận: Thay vì xóa nó đi và gây ra bug nghiêm trọng hơn, mình hiểu ra và chỉ cần tối ưu lại cách check điều kiện cho đẹp hơn.
Tạm kết: Đừng chỉ Code, hãy Thấu hiểu
GitLens Inspect không chỉ là công cụ để "đổ lỗi" (blame). Nó là công cụ để chúng ta thấu hiểu ngữ cảnh (context). Trong một dự án lớn, Context chính là vua. Khi bạn hiểu được lý do đằng sau mỗi dòng code, bạn sẽ trở thành một developer chín chắn hơn, thay vì chỉ là một "thợ gõ" thấy code lạ là muốn xóa.
Anh em đã thử dùng hết các tính năng của Inspect chưa? Hay còn "tuyệt kỹ" nào khác với GitLens không? Cùng chia sẻ dưới comment nhé!
Happy Coding!
All rights reserved