Skip to content

nodejs开发的一些经验和教训

LYF edited this page Jun 28, 2017 · 4 revisions
  1. 日志一定要详细、要打全,这样分析起来事半功倍;
  2. 由于nodejs是异步的,打的log会错乱,所以生成一个logid对于debug是很重要的;
  3. 由于nodejs是异步的,所以如果有一个全局唯一的状态是很多对象和方法都要使用的,那么可能就会出现错乱的问题,除非故意要这么做;https://github.com/pod4g/tool/wiki/%E8%AE%B0%E4%B8%80%E6%AC%A1node%E5%BC%80%E5%8F%91%E4%B8%AD%E7%9A%84%E2%80%9C%E8%AF%A1%E5%BC%82%E2%80%9Dbug
  4. 对于一些公共的东西,要做成配置,比如针对每个路由设置header、登录token验证、是否允许跨域、设置缓存时间、是否下掉这个路由等;
  5. linux的工具运用的不熟,比如 curl、awk、sed、grep、find等,要加强这方面的学习;
  6. 不要过多地设计一刀切的功能,除非经过分析,以后不会在改动;
  7. 要坚持单一职责原则,一个类和方法不要做太多的事儿;
  8. 以后要做单元测试,先写测试再写代码,提高质量;
  9. 一个文件不要太大,要注意模块化;
  10. 为了保证服务的稳定性,http超时、访问数据库超时、读写文件超时、RPC调用超时都要所有考虑;
  11. 不要一次性地读入过多数据进入内存,nodejs很容易把内存弄大。比如有一个url列表,最好做成下载了一个url,再下载第二个,或者有一个不太大的池,比如一次性下载10个url,然后在下载另外10个,在比如有一个超大的文件,不要一次性地读取,而是一行一行地读取比较好,这样肯定是没有问题的
  12. 多用并行async、并行promise,提高响应时间;
  13. log一定要详细!!!log要多打。良好地分类打日志是很好的做法。一般可以分为下列日志类型:http日志、sql日志(所有执行的sql)、error日志(代码中抛出的所有error都可以在这儿找到)、业务日志(一定要详细!)
Clone this wiki locally