当前位置: 首页 > 后端技术 > Node.js

一点感悟:《Node.js学习笔记》星数突破1000+

时间:2023-04-03 14:09:30 Node.js

写作背景前年开始写的《Node.js学习笔记》github星数突破1000,里程碑。从第一次投稿(2016.11.03)到现在,1年半的时间过去了。突然有点感慨,想写点东西说说这段时间的收获,心路历程,学习Node.js的方法。心路历程笔者一直有做技术笔记的习惯。这几年,我也零零散散的写了很多Node.js的东西,不过都存到了evernote里面。写着写着,觉得有必要系统地整理一下,于是就有了这个项目。据粗略统计,共提交了约60个教程和近300个示例脚本。大多数commit集中在2016年11月和12月,以及2017年上半年。这段时间项目组其实很忙,经常一周工作6天,在两三个项目之间来回切换同时。写的过程挺枯燥,有点累,尤其是大半夜或者周末只能用来码字的时候。经常写技术文章的同学应该能看懂。不管怎样,一路坚持下来了,感觉自己还是有很多收获的。1、技术积累。最初,Evernote中只有零散的笔记。经过整理、进一步思考和延伸学习,零散的知识点逐渐串联成一个系统的知识面。这比记住数百个Node.jsAPI和无聊的配置项更有用。2.知识共享。在写的过程中,很多同样在学习Node.js的同学通过QQ或者私信表达了感谢。对于笔者来说,这其实比星数的增加更有意义。3、技术焦虑有所缓解。众所周知,前端领域变化太快,里面的从业者压力很大。这也是前不久著名的“学不会了”梗突然刷屏的原因。深入学习、思考,掌握学习的方法和规律,可以在一定程度上缓解技术焦虑。4.意外之财。这期间,我收到了阿里云栖社区(专家博主)和腾讯云+社区的邀请,多家知名出版社的写文章邀请,在线教育平台(如MOOCs)的开课邀请等。如何学习Node.js2年前,有人在SegmentFault社区问过一个类似的问题,并简单回答了下。实践是最好的学习方式。如果能把所学的知识应用到实践中,效率会比不练光学高很多。遇到问题,学着用google、stackoverflow、官方文档。很多时候,学习node的障碍不是node本身,而是相关领域的知识。无需强调,实践出知识。遇到技术问题善用搜索引擎是圈内的共识(初学者需要加强这方面的意识)。其实最难的是第三点,就是识别你遇到的问题。比如现在要学习https模块,很多初学者会不知所措。常见问题包括:问题一:https、http、net模块看起来很像,API也很像。他们之间是什么关系?问题2:配置项之一是证书。它是做什么用的?按照指南配置证书后,为什么浏览器报错?问题三:服务器在本地运行良好,部署在云服务器上却无法访问。可以ping通,端口开启。为什么提示拒绝访问?在正式回答问题之前,先奉上一张网络分层架构图,请大家牢记。Internet是基于分层架构实现的,包括应用层、传输层、网络层、链路层和物理层。其中,前端开发人员对应用层(HTTP协议)更为熟悉。想要学习Node服务器编程,至少需要对传输层(TCP)和网络层(IP)有一定的了解。对于网络的每一层,Node.js基本上都有相应的模块,比如https、http、net(TCP)、tls/crypto等,上面列出的问题都是网络知识和服务器知识不足导致的,而不是比理解Node.jsAPI有多么复杂和困难。这里直接回答问题:问题1:http是一个应用层模块,主要是按照特定的协议对数据进行编解码;net是传输层模块,主要负责传输编码后的应用层数据;https是一个综合模块(涵盖http/tls/crypto等),主要用于保障数据安全;应该清楚使用哪个模块。问题二:安全证书是PKI体系的重要组成部分,主要用于身份验证。如果本地调试使用的证书是自己签名的,浏览器会认为不安全并报错,可以参考《HTTPS科普扫描帖》。问题三:这种情况下,很大概率是请求被防火墙拦截了。ping使用ICMP协议,由操作系统内核处理。能ping通不代表TCP连接能建立成功。可以参考后面写的《ping的使用与实现原理剖析》写《Node.js学习笔记》。写《Node.js学习笔记》的过程收获很多,感悟很多。这里就不多想了。关于“如何学习Node.js”这个问题,其实要写的东西还是挺多的,篇幅有限,后面的文章会详细展开。相关链接Nodejs学习笔记作者个人博客

猜你喜欢