Là một nhà phát triển full-stack, mỗi ngày tôi đều sống trong một vở kịch đa nhân cách.
9 giờ sáng, tôi là một "nghệ nhân PHP," bảo trì một dự án WordPress cũ đồ sộ, đầu óc tôi đầy những ký hiệu $, echo, và composer.
11 giờ sáng, theo lệnh của quản lý sản phẩm, tôi chuyển sang phát triển tính năng mới. Bộ não của tôi khởi động lại vào chế độ "tín đồ Node.js," và tôi bắt đầu vật lộn với async/await, npm, và package.json.
3 giờ chiều, một yêu cầu xử lý dữ liệu từ backend đến, và tôi lại phải biến thành một "nhà giả kim Python," đắm mình trong thế giới của Jupyter Notebooks và Pandas.
Bộ não của tôi, qua nhiều năm rèn luyện, có thể chuyển đổi giữa các "nhân cách" này một cách mượt mà. Nhưng localhost của tôi rõ ràng là không theo kịp. Nó đang trên bờ vực suy sụp.
Bạn chắc chắn hiểu cảm giác đó:
Chiến tranh cổng: Cổng 3000 của Node.js vừa khởi động, Flask của Python cũng muốn dùng nó, terminal tràn ngập lỗi Address already in use màu đỏ. Địa ngục phiên bản: Một plugin WordPress chỉ nhận PHP 7.4 , nhưng dự án Laravel tôi vừa nhận lại yêu cầu PHP 8.2. Thế là, brew switch php@7.4 và brew switch php@8.2 trở thành những lệnh tôi gõ nhiều nhất mỗi ngày. Tung hứng cơ sở dữ liệu: Dự án cũ dùng MySQL , dự án mới dùng PostgreSQL. Tôi phải đảm bảo cả hai dịch vụ cơ sở dữ liệu đều đang chạy và luôn nhớ cái nào đang ở cổng 3306, cái nào ở 5432. Mê cung Terminal: Một cửa sổ terminal đang chạy npm run dev, một cửa sổ khác chạy PHP-FPM, một cửa sổ thứ ba đang thực thi script Python. Chúng ta tự gọi mình là "kỹ sư full-stack," nhưng thực tế, chúng ta đã trở thành "diễn viên xiếc môi trường cục bộ." Mỗi công nghệ mới chúng ta áp dụng đều làm cho thiết lập cục bộ của chúng ta trở nên mong manh và hỗn loạn hơn.
Tôi đã thử giải quyết tất cả những điều này bằng Docker. Nghe có vẻ đẹp đẽ, nhưng tôi sớm nhận ra rằng mình chỉ đang di chuyển sự hỗn loạn từ nơi này sang nơi khác. Việc quản lý nhiều file docker-compose.yml và mạng phức tạp khiến tôi cảm thấy "thuốc giải" còn đắng hơn cả "thuốc độc".
Điều tôi thực sự cần không phải là một bộ sưu tập các "bộ phận" mà tôi phải tự mình sắp xếp, mà là một "Trung tâm chỉ huy thống nhất."
Cuối cùng, tôi đã tìm thấy Servbay. Nó không cố gắng thay thế tất cả các công cụ của tôi; nó một cách thanh lịch trở thành "nhạc trưởng" cho tất cả chúng.
Với Servbay, buổi sáng hỗn loạn của tôi giờ đây trông như thế này:
Trên bảng điều khiển của Servbay, PHP, Node.js, và Python giống như ba biểu tượng kỹ năng mà tôi có thể kích hoạt bất cứ lúc nào.
Tôi tạo một Host tên là legacy.wp.test cho dự án WordPress cũ và gán cho nó phiên bản PHP 7.4 từ menu thả xuống.
Đối với microservice Node.js, tôi tạo api.node.test.
MySQL và PostgreSQL cũng tồn tại như hai dịch vụ riêng biệt, được bật hoặc tắt chỉ bằng một cú nhấp chuột trong bảng điều khiển.
Tất cả sự hỗn loạn đã được dẹp yên bởi một giao diện đồ họa sạch sẽ. Servbay đã chữa khỏi chứng "đa nhân cách" của tôi bằng cách cung cấp cho mỗi "nhân cách công nghệ" của tôi một ngôi nhà sạch sẽ, độc lập và luôn sẵn sàng.
Đối với một nhà phát triển full-stack, thách thức thực sự không bao giờ là học nhiều ngôn ngữ; đó là cách quản lý một cách thanh lịch sự phức tạp mà chúng mang lại. Công cụ của bạn nên giúp bạn che giấu sự phức tạp, chứ không phải tạo ra nó.