Mỗi lập trình viên đều có vài công cụ yêu thích, kiểu không nỡ gỡ cài đặt ấy.
Nhưng mà, công cụ cũng giống như chuyện yêu đương vậy, cái đang hot chưa chắc đã hợp, mà cái hợp rồi cũng có thể dần trở nên lệch pha.
Nhìn lại những năm qua, tôi mới nhận ra mình đã cố chấp bám lấy vài công cụ chỉ vì thói quen, chứ không phải vì thực sự không thể sống thiếu chúng. Nói ra có thể bạn không tin, nhưng sau khi thay thế chúng, tôi code nhanh hơn, tập trung hơn, thậm chí cảm giác tóc cũng dày lên một chút.
Lưu ý nhỏ: Bài viết này không nhằm mục đích "dìm hàng" bất kỳ ai, chỉ đơn thuần là chia sẻ kinh nghiệm "dẫm hố" và những "kho báu" mới mà tôi tìm thấy, hy vọng có thể mở ra một thế giới mới cho bạn.
1. Từ MAMP đến ServBay
Ngày xưa lúc mới tập tành code trên Mac, MAMP giống như "trưởng làng tân thủ" vậy, một cú nhấp chuột là khởi động bộ ba (Apache/MySQL/PHP), giao diện đồ họa, rất thân thiện với người mới. Nhưng khi các dự án ngày càng phức tạp, MAMP dần trở nên đuối sức.
Mỗi lần chuyển đổi phiên bản PHP cứ như mở hộp mù, file cấu hình thì giấu ở một xó xỉnh nào đó. Hơn nữa, MAMP chỉ hỗ trợ một số phiên bản PHP nhất định, muốn nhiều hơn? Phải trả thêm tiền. Còn nếu muốn tự thêm một dịch vụ như Redis ư? Cực kỳ phiền phức. Tôi chỉ muốn yên ổn code ở local, chứ không muốn trở thành một chuyên viên vận hành (DevOps) toàn thời gian.
Tình yêu mới của tôi: ServBay
ServBay là một môi trường phát triển local hiện đại, trước đây chỉ có phiên bản cho Mac, gần đây cuối cùng cũng đã hỗ trợ Windows.
Với ServBay, tôi muốn dùng môi trường nào chỉ cần tải về như tải app. Hiện tại nó hỗ trợ các ngôn ngữ như Python, Java, Golang, Node.js, PHP, Rust, Ruby, .Net và nhiều hơn nữa.
Nó tốt ở điểm nào?
- Đa phiên bản cùng tồn tại, chuyển đổi mượt mà: Có thể chạy đồng thời PHP 8.3, 8.2, 7.4... Mỗi phiên bản hoạt động độc lập, gán phiên bản khác nhau cho các dự án khác nhau, chuyển đổi trong một giây, không bao giờ bị lẫn lộn.
- Hệ sinh thái đầy đủ: Ngoài PHP, nó còn hỗ trợ nhiều ngôn ngữ lập trình khác như Python, Java, Node.js. Các dịch vụ phổ biến như Nginx, Caddy, MariaDB, PostgreSQL, Redis, Memcached... đều được tích hợp sẵn, cần là có, không gây xung đột.
- Hỗ trợ toàn diện: ServBay còn hỗ trợ chứng chỉ SSL, giúp bạn có "ổ khóa xanh" an toàn ngay cả khi đang dev; có cả mail server hỗ trợ STARTTLS và SSL/TLS; hỗ trợ xuyên NAT, không còn phải lo lắng khi sếp đột ngột đòi "gửi tao xem thử".
- Tự động sao lưu: Tôi thích nhất là tính năng sao lưu. Là một người hay quên sao lưu thủ công, tôi sợ nhất là dự án sắp xong thì quên backup dẫn đến công cốc. ServBay cung cấp tính năng sao lưu tự động, không còn phải lo mất điện đột ngột hay máy bị treo.
2. Từ Postman đến Bruno
Đã có một thời, Postman là số 1 trong lĩnh vực debug API, tính năng nhiều đến hoa cả mắt. Nhưng cũng giống như người đến tuổi trung niên thì phát phì, nó cũng dần "béo" lên. Tôi chỉ muốn gửi một request đơn giản, nhưng lại phải chịu đựng thời gian khởi động dài đằng đẵng và phải đăng nhập một tài khoản đám mây.
Khi bộ nhớ Postman chiếm dụng còn cao hơn cả IDE của tôi, và những rắc rối khi đồng bộ với team còn nhiều hơn cả việc viết API, tôi đã quyết định nói lời tạm biệt.
Tình yêu mới của tôi: Bruno
Bruno là một API client mã nguồn mở, nhẹ nhàng và lấy Git làm trung tâm.
Nó tốt ở điểm nào?
- Tích hợp Git tự nhiên: Mọi request API đều được lưu dưới dạng file văn bản thuần túy (.bru) trong dự án. Tôi có thể trực tiếp dùng Git để quản lý, hợp tác và review code API, trải nghiệm này thực sự quá tuyệt vời!
- Trở về với sự thuần khiết, nhanh như bay: Không bắt buộc đăng nhập, không bị gánh nặng đồng bộ đám mây, tốc độ khởi động và phản hồi cực nhanh.
- Tập trung vào cốt lõi, không rườm rà: Nó chỉ làm một việc duy nhất - debug API, và làm cực kỳ xuất sắc. Những tính năng màu mè hoa lá cành, nó không có cái nào, và đó cũng chính là những thứ tôi không cần.
3. Từ Codeium đến Cursor
Trợ lý code AI giờ đã là trang bị tiêu chuẩn của lập trình viên. Codeium, một plugin miễn phí và mạnh mẽ cho VS Code, thực sự đã giúp tôi tiết kiệm không ít công sức. Nhưng tôi vẫn cảm thấy mình và nó như đang ở hai kênh khác nhau, nó vẫn chưa thực sự hiểu tôi.
Tình yêu mới của tôi: Cursor
Chắc hẳn không còn nhiều người không biết đến Cursor, một trình soạn thảo mã nguồn sinh ra cho AI, hay nói đúng hơn, bản thân nó chính là một AI.
Nó tốt ở điểm nào?
- AI không còn là "phụ kiện", mà là "linh hồn": Trong Cursor, AI không phải là một hộp chat ở thanh bên, mà được tích hợp vào toàn bộ trải nghiệm chỉnh sửa. Bạn có thể
@
toàn bộ kho code, một file cụ thể, hay một tài liệu nào đó để AI trò chuyện với bạn trong bối cảnh đầy đủ nhất. - Refactor thông minh, chỉ đâu đánh đó: Chọn một đoạn code, nói cho nó biết bạn muốn làm gì bằng ngôn ngữ tự nhiên, nó sẽ tạo ra một bản diff code để bạn xem trước và áp dụng chỉ với một cú nhấp chuột. Cảm giác này giống như có một kiến trúc sư kỳ cựu đang lập trình đôi (Pair Programming) với bạn vậy.
- Từ "công cụ" thành "đồng đội": Cursor đã hoàn toàn thay đổi cách tôi hợp tác với AI. Nó không còn là một trợ lý nhỏ chỉ biết tự động hoàn thành code, mà là một người bạn đồng hành có thể giúp bạn gặm những yêu cầu phức tạp và gỡ rối những "núi code" khó nhằn.
4. Từ Notion đến Obsidian
Công bằng mà nói, Notion rất tốt. Nhưng khi tôi tham lam muốn dùng nó để quản lý mọi thứ, nó trở thành một chiếc bình hoa vạn năng xinh đẹp: đẹp đấy, nhưng lúc cần thì lại "rớt xích".
Điều tệ nhất là trải nghiệm offline của nó gần như bằng không. Mất mạng = mất trí nhớ. Tôi cần một công cụ thực sự thuộc về mình, chạy trên máy local, hoàn toàn thân thiện với Markdown, và có thể kết nối các kiến thức kỹ thuật của tôi lại với nhau.
Tình yêu mới của tôi: Obsidian
Obsidian là một "bộ não thứ hai" dựa trên các file Markdown cục bộ.
Nó tốt ở điểm nào?
- Dữ liệu của bạn, bạn làm chủ: Mọi ghi chú đều là các file
.md
trên máy, cảm giác an toàn tuyệt đối. Bạn có thể dùng Git để quản lý, dùng bất kỳ trình soạn thảo nào để mở, nó mãi mãi thuộc về bạn. - Nhanh là tiêu chuẩn: Vì là file local, việc tìm kiếm, điều hướng, chỉnh sửa, mọi thứ đều mượt mà như lụa.
- "Giàn nho" kiến thức: Khả năng liên kết hai chiều (bi-directional linking) và bản đồ quan hệ (graph view) mạnh mẽ giúp bạn kết nối các điểm kiến thức rời rạc, phát hiện ra những mối liên hệ bất ngờ, thực sự nội hóa kiến thức.
- Hệ sinh thái plugin, tùy biến cao: Bạn có thể biến nó thành bất cứ thứ gì bạn muốn, đơn giản cũng được, phức tạp cũng được.
5. Từ VS Code đến Sublime Text
Đúng vậy, bạn không nhìn nhầm đâu. Tôi đã "hạ cấp" trình soạn thảo số một vũ trụ VS Code. Công bằng mà nói, hệ sinh thái và tính năng của VS Code là vô đối.
Tôi đã từng rất thích các loại plugin: Linter, Formatter, các theme khác nhau, plugin Git, các công cụ tăng năng suất... Cài đến cuối cùng, VS Code của tôi khởi động ngày càng chậm, phản hồi ì ạch, thỉnh thoảng lại báo plugin này làm giảm hiệu năng. Tôi cảm thấy không phải mình đang dùng trình soạn thảo, mà là trình soạn thảo đang "dùng" mình.
Vậy nên, không phải VS Code không tốt, mà là tôi không "xứng" nữa.
Tình yêu mới của tôi: Sublime Text
Quay về với sự đơn giản, trở lại với tốc độ và đam mê.
Sublime Text tốt ở điểm nào?
- Nhanh, đó là một tín ngưỡng: Tốc độ khởi động, tốc độ mở file lớn hàng GB, tốc độ tìm kiếm... Sublime Text về khoản "nhanh" thì đến nay vẫn chưa có đối thủ. Cảm giác mượt mà trôi chảy này, một khi đã có thì không cần gì hơn.
- Trải nghiệm chỉnh sửa đỉnh cao: Các tính năng cốt lõi như chỉnh sửa đa con trỏ (multiple cursors), Goto Anything... vẫn là những chuẩn mực kinh điển, giúp bạn thực sự tập trung vào văn bản.
- Buộc bản thân phải "đoạn xá ly": Tôi chỉ cài vài plugin cốt lõi nhất. Điều này giúp tôi không còn sa đà vào việc vọc vạch công cụ, mà tìm lại được trạng thái "nhân-máy hợp nhất".
Tôi đã ngộ ra
Tổng kết lại, tôi phát hiện ra một quy luật: Đại đạo chí giản, phản phác quy chân. (Đạo lớn thì cực kỳ đơn giản, quay về với sự mộc mạc ban đầu).
Công cụ càng đơn giản, tập trung, và chạy local, quy trình làm việc của tôi càng trôi chảy. Tôi cuối cùng cũng hiểu ra, dùng thuận tay chưa chắc đã là dùng hiệu quả. Những công cụ trông có vẻ "ngầu" thường phải trả giá bằng sự tập trung và hiệu suất của bạn.
Trước khi đổi công cụ mới
Hãy tự hỏi mình vài câu:
- Công cụ này tôi dùng hàng ngày, hay chỉ để trưng làm linh vật?
- Nó thực sự giúp tôi nhanh hơn, hay chỉ tạo ra ảo giác rằng tôi đang làm việc hiệu quả?
- Có lựa chọn nào nhẹ hơn, tập trung hơn không?
Tất nhiên, không cần phải thay toàn bộ công cụ trong một đêm. Chỉ cần giống như khi chúng ta refactor code, hãy định kỳ xem xét lại hộp công cụ của mình, khi nó trở nên cồng kềnh, vướng víu, thì hãy ra tay dứt khoát.
Cuối cùng, tôi muốn nói:
Công cụ là vật chết, con người mới là sống. Bộ công cụ của bạn nên giúp bạn vượt mọi chông gai, cưỡi sóng đạp gió, chứ không phải trở thành gánh nặng trên con đường tiến về phía trước.
Cùng trò chuyện nhé, có công cụ nào bạn thấy không hài lòng nhưng vẫn dùng vì thói quen không?