私有狼书

狼叔 I5ting             
swagger ui

aotuprefixer

atwood定律:

任何可以用JavaScript来写的应用,最终都将用JavaScript来写

  1. node的目标
    1. 简化并发编程,尤其是以网络编程为主的密集IO应用。
  2. node缺点
    1. 异步流程控制+回调地狱
  3. 简述node构成
    1. node = libuv(event loop + async i/o) + v8 + node bindings
  4. v8引擎的黑盒功能
    1. 把JavaScript翻译成c/c++
  5. node除了支持v8引擎以外,还支持什么引擎
    1. ChakraCore
  6. nodejs的网络io和文件io有什么区别
    1. io任务放到了libuv的事件循环中,但是只有文件io才会被事件循环放到libuv线程池中。
  7. nodejs为什么会被称为单线程
    1. 任务的分发是单线程的,具体的任务放到了线程池中,具体任务执行时是多线程的。排队-叫号模型。
  8. nodejs的特点
    1. 简单
      1. js本身简单
      2. 并发编程简单:事件驱动+非阻塞io
      3.  部署运维方便:不用额外的容器,配套完善,与现有的自动化运维工具兼容
      4. npm小而美的模块让开发简单
    2. 适合构建web应用
      1. 前后端不分离的web网站
      2. 多端共用的后台接口下的,各端独立的api层
      3. RPC:使用TCP协议
        1. 方式:使用Socket编程
        2. 案例:DNode、Seneca、gRPC
      4. 前后端分离
        1. 前端页面静态化
        2. 前端页面服务化
        3. 服务端渲染
        4. PWA
      5. Serverless:不关心运维、流量、高并发 (Knative)
    3. 可扩展
      1. npm社区
      2. 编写c/c++扩展,完成CPU密集型操作
      3. 轻松搭配java
      4. 与其他架构搭配轻松
    4. 高性能
      1. 快:v8之后是c/c++
      2. 天生异步:事件驱动和非阻塞i/o必须异步,让dev对并发操作毫无感知
      3. 适用于io密集型的网络应用开发,因为网络应用开发的瓶颈在于io。对于cpu密集型开发,尽量使用其他语言,没法使用其他语言就要用c/c++扩展。
  9. 应用场景:
    1. 工具
    2. 前端
    3. 后端
    4. 跨平台
  10. 源码编译
  11. 3m安装法
    1. npm
      1. npm v2 树形 下载慢 引用清晰
      2. npm v3 扁平 下载快 查找依赖麻烦 当依赖多个版本时,也会采用树形结构
      3. npm v5 自动记录依赖树 有package-lock.json
    2. nrm
      1. 哪个镜像快,你怎么知道的
        1. cnpm快 nrm test
    3. nvm
      1. n不支持windows
      2. nvm–nvmw支持Windows
      3. nvs-支持windows
      4. 如果npm全局安装模块的时候遇到了权限问题,请问当前版本的node是不是从nvm下载的?
        1. 不是,因为使用nvm安装的node会安装到用户目录下(如果不使用nvm,node就安装到了系统目录下),所以使用npm全局安装时不会有权限问题
      5. 使用zsh时,要想配置环境变量,就要把地址放到~/.zshrc中,并source
      6. 奇数版本和偶数版本的区别
        1. 奇数版本是尝鲜版本,偶数版本是LTS
      7. 切换node版本以后,全局模块要重新安装,有快捷方式吗?
        1. nvm reinstall-packages 6
      8. 发布到github的项目node版本是v10,怎么让不同node版本的用户都能不受版本影响地运行我们的项目
        1. 在.nvmrc文件中定义
      9. 怎么使用node-chakracore:指定远端下载地址
  12. commonjs=require、module.exports
  13. js生态圈:nodejsSDK+v8 js + bom/dom
  14. 编程三境界
    1. 第三等:打日志
    2. 第二等:断点调试
    3. 第一等:测试驱动开发(写代码之前先测试)TDD BDD :Mocha AVA Jest Cucumber
  15. 断点调试:
    1. 当前打开某一文件,按f5,即调试当前文件
    2. 当前未打开某一个文件,按f5,使用固定文件调试
    3. 远程调试
  16. java架构
    1. model:利用orm使用model跟数据库形成映射关系
    2. DAO层,对单一model的操作
    3. service层,调用DAO,定义业务逻辑
    4. controller:调用service,执行具体业务
  17. nginx的替代方案
    1. openrestry:lua 学习成本高
  18. 静态api方案:typicode/json-server
  19. serverless
    1. function as service
  20. 全栈 = 业务 + ui
    1. 前端转全栈难点:DB 和 ER 模型
  21. 跟人学、跟书学、自己悟。
    1. 开源项目、每日精进
    2. 一次学习、处处使用
发布了57 篇原创文章 · 获赞 5 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_33807889/article/details/103187448