icon picker
Best Practice

Start every new project with npm init
Sử dụng .npmrc một cách thông minh
default, npm sẽ không tự động lưu các dependencies vào package.json.
Nếu ta sử dụng --save , các package sẽ có dấu ^ ,dẫn đến việc có thể khiến các module tự động nâng cấp phiên bản. Điều này ổn trong quá trình phát triển nhưng không ổn cho product.
Giải pháp cho việc này là npm install abc ーーsave ーーsave-exact
Hoặc tốt hơn điều chỉnh trong file ~/.npmrc bằng cách
npm config set save=true
npm config set save-exact=true
Giờ chỉ cần npm install abc là được
Đặt tên file thì chỉ nên đặt lowercase
Node.js là một ứng dụng tập trung vào linux như lại là crossplatform → Thì sao
Windowns và OSX thì xử lí các file ‘myclass.js’ và ‘MyClass.js’ giống nhau, Linux lại không như vậy
Nên để ứng dụng làm việc thiệt tốt trên crossplatform → hãy viết mọi file lowercase → my-class.js
Cluster your app
node runtime được giới hạn trong 1 nhân cpu và với 1.5gb ram → deloy non-clustered app trên một server lớn thì rất phí
để dùng nhiều nhân hơn và nhiều bộ nhớ hơn → dùng module
Testing là cách tốt nhất để tìm số process lý tưởng cho app. Hãy bắt đầu với việc recommend của platform
const CONCURRENCY = process.env.WEB_CONCURRENCY || 1;
Nên dùng các thư viên về để tránh “phát minh lại bánh xe”. Nếu thích file nhỏ nhỏ thì hãy dùng
Hãy dùng enviroment variables thay vì dùng các file config
Tránh rác vùng nhớ
V8 sử dụng cơ chế lazy and greedy garbage collector. Nó sẽ đợi tới giới hạng dung lượng limit (1.5GB) nên nó sẽ đợi tới gần lúc đó mới đi dọn rác.
Để có thể có nhiều quyền điều khiển hơn hay thêm flag trong Procfile
web: node --optimize_for_size --max_old_space_size=920 --gc_interval=100 server.js
Việc này có rất quan trong nếu flatform của bạn còn thấp hơn 1.5GB

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.