A Coastal Engineer who is trying to become a WEB3 engineer. GitHub: https://github.com/CAOYUhhu Twitter: https://twitter.com/james_tsao21
A Coastal Engineer who is trying to become a WEB3 engineer. GitHub: https://github.com/CAOYUhhu Twitter: https://twitter.com/james_tsao21
Share Dialog
Share Dialog
Subscribe to JamesTsao的个人成长笔记
Subscribe to JamesTsao的个人成长笔记
<100 subscribers
<100 subscribers
JavaScript是运行在前端的脚本语言,可以给浏览器添加一些交互性的功能,从而改善网页的访问体验。而Node.js是一个可以让JaveScript运行在浏览器之外的平台。Node.js和Python一样,都可以作为Web后端开发的平台。而使用Node.js作为后端最明显的优点就是前后端语言的统一。在Web3中,掌握Node.js可以帮助我们实现前后端通吃。另外Node.js在性能方面会优于Python(Python的优点是易上手,可以使用的库非常的多)。
谈谈我学习Node.js过程中的体会。
1.异步操作费脑
传统的变成是多线程模型,更符合正常人的算法逻辑。而Node.js使用的是单线程、异步式I/O(磁盘读写或网络通信)模型,提升了性能,但是编码和调试的难度增加。我在一开始接触的时候,对于异步函数这个概念理解起来就很费劲。
关于异步(非阻塞)这个概念,以下的解释取自《Node.js开发指南》:
阻塞:当一个线程在执行过程中,遇到需要I/O操作的时候,操作系统会剥夺线程的CPU控制权,即为阻塞。等I/O操作执行完了,再解除其阻塞状态,恢复其对CPU的控制权,继续执行。
异步(非阻塞):当线程遇到I/O操作的时候,不会对其进行阻塞,而是将I/O操作发送给操作系统,然后继续执行接下来的语句。当操作系统完成I/O操作之后,以事件的形式通知线程,线程会在特定的时间处理事件。
2.Node.js的模块(Module)和包(Package)
Node.js的一个文件就是一个模块。exports是一个模块公开的接口,在模块文件桩需要公开的函数前面加上exports,那么就可以在另外一个文件中通过require引入模块来调用这个函数。
Node.js的包是在模块的基础上进行的扩展。最简单的包就是一个模块。按照CommonJS规范 ,包应该具有以下的结构特征:
包的顶层目录下有package.json文件
bin目录存放二进制文件
lib目录存放JavaScript代码
doc目录存放文档
test目录存放单元测试
也就是说,包通常是一个文件夹的形式,里面是许多模块的集合。子文件夹中放模块文件,包文件夹的顶层目录中需要有一个package.json文件,package.json是CommonJS规定的用来描述包的文件,主要包括以下字段:name、description、version、keywords、maintainers、dependencies(包的依赖)等。
包的安装和管理通过npm平台进行。通过npm,可以进行包的安装以及包的发布。另外,npm安装的包默认是本地模式,包会安装到当前项目目录的node_modules文件夹,只适用于当前的项目。
3.Node.js的框架
框架本质上也是一种包(package),需要通过npm先安装框架。框架安装完成后,通过框架提供的命令,可以在目录下建立一个项目的基本结构,包括一些子文件夹和文件。并通过npm安装一些依赖(这些依赖项在package.json自动获取)。框架搭建完成后,就可以在框架的基础上,进行我们的开发工作了。框架定义了我们的项目的基本架构,我们在这个基础上,针对具体的功能与内容进行实现。
4.Node.js的代码格式
Node.js的代码格式和Python不同,前者是通过{}和()进行代码组织,而Python是通过代码缩进来组织代码。个人认为Python的这种代码格式比较美观简洁一些,Node.js在写代码的过程中经常遇到括号不对称的尴尬…而且如果编程习惯不好的话,代码的各种缩进也会比较混乱,影响观感…
以上均为个人学习体会,如有不正之处,欢迎交流
————————————————————————
Github:
Twitter:
JavaScript是运行在前端的脚本语言,可以给浏览器添加一些交互性的功能,从而改善网页的访问体验。而Node.js是一个可以让JaveScript运行在浏览器之外的平台。Node.js和Python一样,都可以作为Web后端开发的平台。而使用Node.js作为后端最明显的优点就是前后端语言的统一。在Web3中,掌握Node.js可以帮助我们实现前后端通吃。另外Node.js在性能方面会优于Python(Python的优点是易上手,可以使用的库非常的多)。
谈谈我学习Node.js过程中的体会。
1.异步操作费脑
传统的变成是多线程模型,更符合正常人的算法逻辑。而Node.js使用的是单线程、异步式I/O(磁盘读写或网络通信)模型,提升了性能,但是编码和调试的难度增加。我在一开始接触的时候,对于异步函数这个概念理解起来就很费劲。
关于异步(非阻塞)这个概念,以下的解释取自《Node.js开发指南》:
阻塞:当一个线程在执行过程中,遇到需要I/O操作的时候,操作系统会剥夺线程的CPU控制权,即为阻塞。等I/O操作执行完了,再解除其阻塞状态,恢复其对CPU的控制权,继续执行。
异步(非阻塞):当线程遇到I/O操作的时候,不会对其进行阻塞,而是将I/O操作发送给操作系统,然后继续执行接下来的语句。当操作系统完成I/O操作之后,以事件的形式通知线程,线程会在特定的时间处理事件。
2.Node.js的模块(Module)和包(Package)
Node.js的一个文件就是一个模块。exports是一个模块公开的接口,在模块文件桩需要公开的函数前面加上exports,那么就可以在另外一个文件中通过require引入模块来调用这个函数。
Node.js的包是在模块的基础上进行的扩展。最简单的包就是一个模块。按照CommonJS规范 ,包应该具有以下的结构特征:
包的顶层目录下有package.json文件
bin目录存放二进制文件
lib目录存放JavaScript代码
doc目录存放文档
test目录存放单元测试
也就是说,包通常是一个文件夹的形式,里面是许多模块的集合。子文件夹中放模块文件,包文件夹的顶层目录中需要有一个package.json文件,package.json是CommonJS规定的用来描述包的文件,主要包括以下字段:name、description、version、keywords、maintainers、dependencies(包的依赖)等。
包的安装和管理通过npm平台进行。通过npm,可以进行包的安装以及包的发布。另外,npm安装的包默认是本地模式,包会安装到当前项目目录的node_modules文件夹,只适用于当前的项目。
3.Node.js的框架
框架本质上也是一种包(package),需要通过npm先安装框架。框架安装完成后,通过框架提供的命令,可以在目录下建立一个项目的基本结构,包括一些子文件夹和文件。并通过npm安装一些依赖(这些依赖项在package.json自动获取)。框架搭建完成后,就可以在框架的基础上,进行我们的开发工作了。框架定义了我们的项目的基本架构,我们在这个基础上,针对具体的功能与内容进行实现。
4.Node.js的代码格式
Node.js的代码格式和Python不同,前者是通过{}和()进行代码组织,而Python是通过代码缩进来组织代码。个人认为Python的这种代码格式比较美观简洁一些,Node.js在写代码的过程中经常遇到括号不对称的尴尬…而且如果编程习惯不好的话,代码的各种缩进也会比较混乱,影响观感…
以上均为个人学习体会,如有不正之处,欢迎交流
————————————————————————
Github:
Twitter:
No activity yet