Mấy hôm nay chuyển từ VSCode sang sử dụng Zed vì một số lý do. Zed là một trình soạn thảo mã viết bằng Rust rất nhẹ và có giao diện tương đồng với VSCode ở nhiều chỗ. Tuy vậy Zed vẫn có những điểm khác biệt và đi theo triết lý riêng của họ. Cá nhân mình đã sử dụng Zed từ những ngày đầu ra mắt, ấn tượng ban đầu là rất nhanh và mượt. Tuy nhiên rất nhiều tính năng quen dùng trên VSCode lại không có trên Zed nên chỉ dừng lại ở mức trải nghiệm.
Một trong những tính năng mình thường xuyên sử dụng là debug bằng breakpoint, chọn vị trí rồi quan sát luồng dữ liệu trong hệ thống. VSCode là trình soạn thảo phổ biến cho nên bật debug dễ dàng hơn nhiều. Thường chỉ mất vài thao tác, đặc biệt nếu sử dụng framework thì bạn còn dễ dàng tìm thấy hướng dẫn trên mạng. Nói chung là VSCode làm rất tốt việc tối giản cho người sử dụng.
Vì vậy sau khi chuyển... Xem thêm
Đây có thể là bài viết cuối cùng của chuỗi MCP cơ bản trong chuyên mục Posts của blog. Đúng ra dự định không viết thêm nữa do Prompts & Resources trong MCP có tài liệu rất hạn chế, nhưng vì đây là hai phần thú vị nên giới thiệu chúng đến bạn đọc.
Mình đã đọc và nghiên cứu tài liệu về hai mục này trên trang chủ của MCP, sau khi hiểu được nguyên tắc và trường hợp sử dụng thì sau đó có đi tìm một số dự án đã tích hợp với dự định bổ sung thêm ví dụ trong bài viết, nhưng xem ra rất ít dự án triển khai hai thành phần này. Tại sao?
Theo quan điểm cá nhân... Xem thêm
Bạn có thích viết tài liệu không? Hay thích viết mã hơn? Khi nhận yêu cầu, bạn thường suy nghĩ luôn giải pháp, rằng mình sẽ làm như này, viết như này, từng dòng if...else hiện ra một cách tự nhiên trong đầu, hay nghĩ về nghiệp vụ, những phần có liên quan hoặc thay đổi có ảnh hưởng gì đến cái hiện có trong hệ thống không?
Từ lúc mới biết lập trình, tôi không có khái niệm về viết tài liệu, thậm chí đọc tài liệu cũng không. Tất cả những gì làm là đọc bài viết từ người khác, được họ chỉ cho từng bước làm thế này, sau đó chỉ cần làm theo là được. Nếu gặp khó khăn thì tìm kiếm trên mạng không mất quá nhiều thời gian. Tóm lại là chỉ cần đủ, không cần thừa, còn lại nhờ thời gian tích luỹ thêm kinh nghiệm cho ta.
Điều đó đeo bám một... Xem thêm
Mediator là một mẫu thiết kế hệ thống giúp giảm thiểu sự phụ thuộc hỗn loạn giữa các đối tượng, bằng cách áp dụng biện pháp hạn chế giao tiếp trực tiếp giữa các đối tượng mà buộc chúng phải thông qua một đối tượng trung gian.
Ban đầu khi chưa biết đến khái niệm này mình có kiểu viết mã rất "hỗn loạn" trong cả Front-end lẫn Back-end. Các thành phần trong hệ thống đôi khi không hoạt động độc lập mà chúng còn tương tác với nhau, chính việc tương tác này gây ra nhiều khó khăn trong quá trình gỡ lỗi và bảo trì. Để mình lấy lần lượt từng ví dụ cho mọi người dễ hình dung.
Đầu tiên là ở phía... Xem thêm
Sự kiện các gói trên npm liên tục bị tấn công trong thời gian qua gây ảnh hưởng không nhỏ đến cộng đồng, khiến cho chúng ta nghi ngờ cả khả năng bảo mật của các thư viện mà đang sử dụng, dù là trong môi trường phát triển (development) hay môi trường sản xuất (production).
Thực tế ngay từ ngày đầu mới biết đến Node.js, npmjs... mình thấy mỗi khi chạy npm install xong thì xuất hiện thư mục node_modules và tệp package-lock.json. Tò mò mở ra thì ôi thôi, sao mà nó chứa nhiều thư mục khác quá vậy, trong khi nếu mở package.json ra chỉ thấy cài mỗi thư viện express 🤔. Điều đó có nghĩa cài express thì nó sẽ tự cài một đống gói, hay nói cách khác express đang phụ thuộc vào các gói khác, các gói đó lại tiếp tục phụ thuộc vào gói khác nữa dẫn đến một "địa ngục" phụ thuộc. Điều đó giải thích cho việc tại sao cài một thư viện thôi mà xuất hiện hàng tá thư viện chưa bao giờ nhìn thấy.
Có một điều khá thú... Xem thêm
Hôm vừa rồi lướt mạng xã hội thấy có người hỏi làm thế nào để chia sẻ tệp .env cho người khác. Lúc đó bài đăng còn mới và chỉ có một vài bình luận. Bấm vào đọc thì thấy có người trả lời là "copy" rồi gửi cho người khác thôi. Không biết ở nơi làm việc của các bạn thế nào, chỗ tôi mọi người vẫn thường gửi env cho nhau qua tin nhắn. Nhưng không phải là Messenger, Telegram hay Slack... mà sử dụng ứng dụng nhắn tin nội bộ dựa trên Mattermost.
Các tệp env thường chứa những thông tin quan trọng, việc gửi trực tiếp env thông qua các kênh tin nhắn thường không phải lúc nào cũng nên làm vì tiềm ẩn nhiều rủi ro bảo mật. Bài viết ngày hôm nay tôi sẽ tổng hợp lại một số cách quản lý và chia sẻ env mà tôi biết.... Xem thêm
Xin chào độc giả của 2coffee.dev. Viết là một kỹ năng có thể mài giũa qua từng ngày. Học viết không khó nhưng cần sự kiên trì nhất định. Nếu ai đó cho rằng họ viết tốt ngay từ lần đầu tiên thì chỉ có thể là năng khiếu bẩm sinh hoặc phải trải qua một quá trình rèn luyện theo công thức 10.000 giờ - nhấn mạnh rằng những người giỏi nhất - kể cả thiên tài đều phải trải qua quá trình luyện tập không ngừng nghỉ.
Từ trước khi viết blog, tôi không hề biết viết. Tôi cho rằng mình không có khả năng viết vì không thể viết giống những bài viết đã từng đọc. Nhưng vì đam mê chia sẻ quá lớn cho nên tôi quyết định đặt tay xuống viết dù cho nó hay hay dở. Ban đầu viết rất khó vì không thể điều khiển được câu chữ, kể cả khi trong đầu có rất nhiều ý tưởng nhưng khi viết ra lại khác với tưởng tượng rất nhiều. Tưởng chừng sẽ nản và bỏ cuộc nhưng thật tình cờ tôi phát hiện ra có những quy tắc giúp rèn luyện kỹ năng viết của mình.
Dưới đây là 5 điều... Xem thêm
Absolutely agree, practice every day until it becomes a habit.
Xin chào các độc giả của 2coffee.dev, hôm nay tôi mang đến cho các bạn một chuyên mục mới có tên là "Posts" - Bài viết hàng tuần dành cho bạn. Tại sao?
Như đã nhắc đến rất nhiều trong các bài viết trước, blog gần đây đang phải hứng chịu một đợt di cư lớn từ thói quen người dùng, họ không tìm kiếm bằng Google nữa mà thay vào đó là sử dụng công cụ khác như AI Agent hoặc Chat trực tiếp với AI. Do đó buộc tôi phải thay đổi hướng đi.
Như bạn biết, blog được... Xem thêm
Tôi bình luận