10 lỗi mà các dev NodeJS thường mắc phải (phần 3)

57

PHẦN 1PHẦN 2

Lỗi #8: Bỏ qua những lợi điểm của APIs streaming

Giả sử bạn muốn xây dựng 1 web server như proxy nhỏ, phản hồi các requests bằng cách lấy content từ 1 web server khác. Như ví dụ bên dưới, chúng ta phải xây dựng 1 web server hiển thị các hình ảnh Gravatar:

Trong ví dụ về 1 vấn đề của Nodejs, chúng ta đang lấy hình ảnh từ Gravatar, thêm vào 1 Buffer, sau đó phản hồi lại request. Vì các hình ảnh Gravatar không quá lớn nên việc này cũng không quá tệ. Nhưng, nếu kích cỡ của các contents mà chúng ta đang proxy là hàng ngàn Megabytes thì lại là chuyện khác.

Cách khác tốt hơn sẽ như sau:

Ở đây, chúng ta lấy hình ảnh và trả phản hồi lại cho client, mà không cần đọc toàn bộ content trong buffer trước khi thực hiện nó.

Lỗi #9: Sử dụng Console.log với mục đích debug

Trong Node.js, “console.log” cho phép bạn print hầu hết mọi thứ trong console (giao diện điều khiển). Chuyển 1 đối tượng vào đó và nó sẽ print thành 1 đối tượng Javascript bằng chữ. Nó chấp nhận các đối số ngẫu nhiên bất kì và print chúng tại các vùng tách biệt. Có rất nhiều lý do tại sao 1 lập trình viên cảm thấy bị cám dỗ phải sử dụng console.org để debug code của mình, nhưng tôi khuyến khích bạn nên tránh dùng “console.org” trong code thật. Bạn không nên viết “console.log” xuyên suốt các code của mình để debug và sau đó xóa chúng khi không cần nữa. Thay vào đó, sử dụng 1 trong những libraries hay được xây dựng để làm riêng việc này, như debug.

Các packages như trên sẽ là những cách tiện lợi để kích hoạt và vô hiệu vài dòng debug nào đó khi bạn bắt đầu ứng dụng. Ví dụ, với debug, bạn có thể thiết lập môi trường DEBUG biến thể để ngăn dòng debut bất kì không bị print đến terminal.

Để kích hoạt các debug lines, chỉ cần chạy code này với môi trường DEBUG biến thể được thiết lập với “app” hoặc “*”:

Lỗi #10: Không sử dụng các chương trình supervisor

Bất kể code Node.js của bạn đang chạy trong production hoặc trong môi trường lập trình nội bộ, thì 1 chương trình supervisor quản lý code là công cụ hữu ích để tổ chức, dàn xếp chương trình của bạn. Một practice thường được các developers khuyến dùng để thiết kế và hoàn thiện các ứng dụng hiện đại sẽ cho thấy code của bạn phải thất bại sớm. Nếu một lỗi bất ngờ xảy ra, đừng cố gắng giải quyết nó, hãy để chương trình của bạn crash và sử dụng supervisor để khởi động lại trong vài giây.

Lợi ích của các chương trình supervisor không chỉ là việc khởi động lại các chương trình bị crash. Những công cụ này cho phép bạn khởi động chương trình lúc crash, cũng như khởi động lại chúng khi 1 số files thay đổi. Nhờ đó, các chương trình lập trình Node.js đem đến trải nghiệm tốt hơn.

Hiện nay có rất nhiều chương trình supervisor dành cho Node.js như

Tất cả các công cụ này đều có điểm tốt và điểm không tốt. Một số công cụ phù hợp để quản lý nhiều ứng dụng trong cùng 1 thiết bị, trong khi các công cụ khác hỗ trợ quản lý log tốt hơn. Tuy nhiên, nếu bạn muốn bắt đầu với 1 chương trình như thế, tất cả các công cụ đều ổn.

Kết

Một vài vấn đề của Node.js có thể sẽ ảnh hưởng tồi tệ đến chương trình của bạn. Một số là nguyên nhân khiến bạn bực mình khi bạn đang cố gắng hoàn thiện những thứ đơn giản nhất trong Node.js. Mặc dù Node.js đã hỗ trợ rất nhiều cho những người mới bắt đầu, những vẫn có vài chỗ bị rối. Các lập trình viên từ các ngôn ngữ lập trình khác có thể gặp vài vấn đề trên hoặc một số vấn đề phổ biến trong các developer Node.js mới.

May mắn là, bạn có thể dễ dàng tránh được.

Tôi hy vọng hướng dẫn ngắn này sẽ giúp những người mới bắt đầu viết code Node.js tốt hơn và phát triển phần mềm ổn định và tiện ích hơn.

Nguồn: toptal.com via IDE Academy lược dịch