Là một lập trình viên, tôi tin chắc rằng ai cũng đã nghĩ đến việc tận dụng những dòng code để "sai khiến" nó làm một việc gì đó tự động. Lấy ví dụ như là một đoạn mã JavaScript được một lập trình viên nào đó viết ra, để tính tổng số tiền mà bạn đã "nướng" vào một sàn thương mại điện tử nào đó, thay vì phải ngồi cộng từng đơn hàng trong danh sách kéo mãi không biết bao giờ mới hết. Việc tự động hóa mang lại nhiều lợi ích, dễ thấy nhất đó là...
Xin chào các độc giả của 2coffee.dev. Một tuần nữa lại trôi qua, nhanh đến nỗi mà khi nhìn lại trang chủ, không ngờ rằng mình lại ngừng viết trong một khoảng thời gian dài như thế. Thành thật mà nói tuần vừa rồi khá là bận rộn, tôi vừa tập trung phát hành một bản cập nhật quan trọng cho sản phẩm tại nơi đang làm việc. Có lẽ vì thế mà khái niệm thời gian đã tạm thời bị vùi lấp. Hmm... Phải nghĩ ra xem có gì để kể không chứ...
Xin chào các độc giả của 2coffee.dev. Không biết là trong đây có ai đã và đang sử dụng ứng dụng dòng lệnh (CLI) không? Nếu có, tại sao bạn lại lựa chọn thay vì sử dụng ứng dụng có giao diện (GUI)? Nếu như nhớ không nhầm, tôi đã có một vài bài viết nói về quá trình làm một số ứng dụng dành riêng cho mình. Thành thật đối với tôi mà nói, có rất nhiều trường hợp CLI tỏ ra hữu ích hơn hẳn...
1 năm trước, tôi đã hô hào rằng sẽ quyết tâm học Rust trong vòng 1 tháng. Và kết quả thì như bạn đã thấy, chuỗi bài viết về quá trình học Rust vẫn chưa kết thúc. Như vậy có thể coi đó là một sự thất bại rồi phải không? Không biết bạn đọc nghĩ sao nhưng tôi thì nghĩ không hẳn là như thế. Ngôn ngữ lập trình suy cho cùng là một công cụ để giải bài toán. Biết thêm được một cái mới, hẳn kinh nghiệm làm bài sẽ nhiều hơn, chưa kể còn giải được theo cách tối ưu. Bên cạnh việc học, tôi cũng có...
Tunnel Locally là một khái niệm để chỉ hành vi publish máy chủ cục bộ lên "hòa mạng" chung với Internet. Nhờ đó, chúng ta không cần phải triển khai máy chủ một cách chính thức mà vẫn có thể cho người khác vào xem. Như mọi người đều biết, khi khởi động một máy chủ cục bộ ví dụ như node index.js để chạy một RESTFull API, thì hầu như chỉ trong máy tính hiện tại mới truy cập vào được. Cùng lắm thì cho phép thêm các máy trong cùng một mạng LAN kết nối vào với điều kiện chúng phải...
Hi, xin chào mọi người! Lâu rồi tôi chưa có bài viết nào trên blogs. Hôm nay tôi sẽ comback lại với series về NPM đại cương nhé!
Debug là một trong những kỹ năng không thể thiếu của một developer. Trong bất kỳ vị trí nào, ngôn ngữ gì... mà có liên quan đến viết mã thì không thể không biết debug. Bởi mỗi dòng code được thêm vào, nguy cơ tạo ra lỗi càng tăng. Debug giúp cho chúng ta tiến hành tìm ra nguyên nhân của lỗi, hay chí ít là kiểm tra xem liệu chương trình có đang hoạt động đúng như ta mong muốn. Với mỗi nền tảng hay ngôn ngữ có các cách debug khác nhau, tùy thuộc vào khả năng chăm chút của nhà phát triển mà nó đi từ dễ dàng đến khó. Trong Node, có nhiều cách để developer tiến hành gỡ lỗi. Một trong những cách đó là "console.log every where". Vậy ngoài console.log ra thì còn cách nào debug ứng dụng viết bằng Javascript/Node.js nữa hay không?...
Chào các độc giả của 2coffee.dev, cũng khá lâu rồi tôi mới được gặp lại các bạn. Sau khi hoàn thành và khởi chạy dự án OpenNotas vào những ngày đầu của tháng 6, một tuần sau đó là khoảng thời gian dành cho việc "fix bug", thì mới đây tôi đã có một chuyến du lịch ngắn ngày để "reset" lại bản thân sau cả nửa năm trời cày cuốc. Nhân tiện không biết mọi người đã có kế hoạch cho chuyến đi chơi ở đâu chưa? Hãy dành ít thời gian để nghỉ ngơi, tận hưởng cuộc sống chứ đừng nên lao vào công việc quá nhiều kẻo bị "quá tải"...
docker run chỉ cho phép khởi động một container, điều này gây ra một hạn chế là khi quy mô ứng dụng của bạn cần phải khởi động nhiều container một lúc thì sẽ gây khó khăn và phức tạp, chưa kể là có thể có sai sót trong quá trình thực hiện đơn lẻ. Hãy tưởng tượng stack của bạn gồm có n image thì bạn phải chạy docker run n lần sao?
Có một lời khuyên mà chắc hẳn ai làm việc với Node.js đều phải thuộc lòng đó là "đừng bao giờ chặn vòng lặp sự kiện". Chặn ở đây có nghĩa là không để cho Event Loop được thực thi chức năng vốn có của nó. Node.js chỉ có một luồng để xử lý mã JavaScript, nếu một công việc chiếm tương đối thời gian để xử lý thì nó sẽ gây ra một cuộc tắc nghẽn nghiêm trọng trong luồng chính. Hay nói cách khác, tất cả cuộc gọi API có thể sẽ không bao giờ được phản hồi cho đến khi công việc đó xong. Biết được vấn đề, tất nhiên Node.js phải cung cấp cho chúng ta một số cách để giải quyết. Thay vì gọi những hàm đồng bộ thì hãy chuyển qua gọi hàm bất đồng bộ, ví dụ như cùng là đọc file nhưng readFile sẽ được khuyên dùng hơn readFileSync bởi vì readFile là hàm bất đồng bộ. Ngoài ra, nếu công việc đòi hỏi khả năng tính toán cao của CPU như xử lý hình ảnh, video... thì có một giải pháp khác là sử dụng module child_process được tích hợp trong Node...