0

[Series VS Code Mastery] Bài 6: Tối ưu Workflow - Làm chủ Snippets, Tasks và Multi-root Workspace

Chào anh em, một developer giỏi không chỉ là người viết code xịn, mà còn là người biết cách bắt các công cụ làm việc thay cho mình. Trong quá trình phát triển các hệ thống backend, có những đoạn code hay những quy trình setup mà chúng ta phải lặp lại hàng trăm lần.

Hôm nay, chúng ta sẽ ép VS Code phải tự động hóa những công việc nhàm chán đó, giúp anh em tiết kiệm tối đa thời gian gõ phím.

1. User Snippets: Gõ 1 phím, ra 100 dòng code

Chắc hẳn anh em đã quen với việc dùng các extension có sẵn để gen code. Nhưng đôi khi chúng không đúng với chuẩn Clean Architecture hay coding convention của team. Đây là lúc User Snippets tỏa sáng.

Bạn có thể tự định nghĩa các từ khóa (prefix) để gọi ra cả một class hay function template.

Cách làm:

  1. Mở Command Palette (Ctrl + Shift + P) -> gõ Preferences: Configure User Snippets.
  2. Chọn ngôn ngữ bạn muốn (ví dụ: go.json hoặc php.json).
  3. Thêm cấu hình snippet của riêng bạn.

Ví dụ: Thay vì phải gõ lại toàn bộ khung chuẩn của một Repository trong Laravel hoặc một HTTP Handler trong Golang, bạn chỉ cần cấu hình như sau:

"Go HTTP Handler": {
    "prefix": "httphandler",
    "body": [
        "func ${1:HandlerName}(w http.ResponseWriter, r *http.Request) {",
        "	${2:// TODO: implement logic}",
        "	w.WriteHeader(http.StatusOK)",
        "	json.NewEncoder(w).Encode(map[string]string{"status": "success"})",
        "}"
    ],
    "description": "Tạo nhanh một HTTP Handler function trong Go"
}

Bây giờ, chỉ cần gõ httphandler và nhấn Tab, toàn bộ đoạn code trên sẽ hiện ra, con trỏ chuột sẽ tự động nhảy đến ${1} để bạn điền tên hàm. Rất mượt mà!

2. Tự động hóa lệnh với tasks.json

Là backend dev, vòng lặp công việc thường là: Code -> Build -> Chạy Test -> Khởi động lại Server. Nếu lúc nào cũng phải mở Terminal và gõ thủ công từng lệnh (như npm run build, go test ./..., hay biên dịch file C++) thì quá tốn thời gian.

VS Code cung cấp file .vscode/tasks.json để bạn gán những chuỗi lệnh này thành các Task có thể chạy bằng phím tắt.

Ví dụ một Task chạy Unit Test nhanh:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Run Unit Tests",
            "type": "shell",
            "command": "go test -v ./...",
            "group": {
                "kind": "test",
                "isDefault": true
            },
            "presentation": {
                "reveal": "always",
                "panel": "shared"
            }
        }
    ]
}

Khi đã setup xong, bạn chỉ cần bấm Ctrl + Shift + T (Run Test Task), VS Code sẽ tự động gọi lệnh này dưới nền và trả kết quả ra Terminal.

3. Multi-root Workspaces: Giải pháp cho Microservices

Khi hệ thống phát triển theo kiến trúc Microservices, bạn có thể có hàng tá repo riêng biệt (một API Gateway bằng Node.js, một service xử lý thanh toán bằng Go, một service phân tích dữ liệu...). Việc mở 3-4 cửa sổ VS Code cùng lúc sẽ khiến bạn dễ bị "tẩu hỏa nhập ma" khi Alt + Tab.

Multi-root Workspace cho phép bạn gom nhiều thư mục độc lập vào chung một cửa sổ Explorer duy nhất.

Cách thiết lập:

  1. Mở thư mục service đầu tiên trong VS Code.
  2. Chọn File -> Add Folder to Workspace... và chọn tiếp thư mục service thứ 2, thứ 3.
  3. Chọn File -> Save Workspace As... và lưu lại thành file .code-workspace.

Lợi ích khổng lồ của việc này là bạn có thể Search toàn cầu (Ctrl + Shift + F) trên tất cả các services cùng lúc, hoặc cấu hình launch.json để bấm F5 khởi chạy đồng loạt tất cả các backend services chỉ trong một cú click.

4. Refactoring Thần Tốc

Cuối cùng, đừng bao giờ đổi tên biến hay tên class bằng công cụ Search & Replace (Ctrl + F). Hãy sử dụng tính năng Rename Symbol (F2).

Khi bạn trỏ chuột vào một tên biến, tên hàm hoặc tên class và bấm F2, gõ tên mới, VS Code sẽ sử dụng bộ phân tích cú pháp của ngôn ngữ đó để đổi tên biến này ở MỌI NƠI trong project một cách an toàn, đảm bảo không vô tình đổi nhầm những text có nội dung tương tự nhưng khác ngữ cảnh.

Lời kết

Tối ưu hóa workflow không chỉ giúp bạn code nhanh hơn, mà còn giữ cho luồng tư duy (flow state) không bị gián đoạn bởi những thao tác chân tay rườm rà. Hãy áp dụng ngay vào project hiện tại của anh em nhé!


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí