3

nodejs学习笔记之入门

 2 years ago
source link: http://wwj718.github.io/post/%E6%8A%80%E6%9C%AF/nodejs-learning-1/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

nodejs学习笔记之入门

2014-04-13

对js的兴趣由来已久,倒不是对这门语言有什么好感,而是对它能做的事很感兴趣。web的世界太美妙了。nodejs的横空出世,更是让这门语言被视为将统一网络编程的霸主。

加之对函数式的偏爱,最终决定好好学习js。js有披着C外衣的Lisp的称号,其对函数式编程的支持还是很好的,函数是一等公民。支持闭包。支持lambda算子,关键的是,写的代码能马上在浏览器里执行,很让人兴奋。

之前其实也看过一些书籍,却一直对js没有好感,对于习惯了面向对象,习惯了python的我来说,读js简直就觉是一种回到史前的感觉,糟糕的全局变量,没有模块的概念,困难的调试…还好后来遇到jquery,虽说平时也能写些前端代码,可总觉得js不像一门语言,整天在折腾些鸡毛蒜皮的琐事,一会添加一个dom元素,一会修改一些元素属性。丝毫没有编程的感觉。

态度的转变从学习nodejs开始,在学习node的过程中,似乎突然就懂了js是什么了,有了编程的感觉,之前写前端代码时总觉得像个使用者而不是开发者。正如Manuel在他那本很棒的node教程里说的:这次是玩真的了。

前些日子,看了不少lisp/函数式编程的东西,虽说觉得函数式确实很美好,好比:把函数当变量传递 /引用透明性 /没有"副作用" /让我们方便地使用递归 /describe what to do, rather than how to do it 可怎么用它,还是没有感性的认识。

下午在图书馆看书(《了不起的nodejs》)的时候,忽然豁然开朗了,我想这样算是入门了吧。
想起许多之前读多的话,现在看来,人家都说得那么清楚了,我当时怎么就没有领悟呢。 诸如: 我们大多时候需要的是动作。就是说我们需要动词而不是名词。函数而不是对象!

我想理解以下几个词就差不多理解js(nodejs)了 :

  • 回调函数(响应)

看websocket(socket.io)的时候,例子是用socket.io制作一个聊天室。有些心得也记下,未必有条理,更多的是抓住当时电光火石的感觉,对我个人而言能帮助我回忆当时的想法。

  • 分发事件(广播)

以上的概念往往是互相关联的。

对于事件驱动,当时写下这段话:大多的东西都是辨识(自定义事件),好比代码只是字符串,对我们的逻辑进行划分,使其清晰化才是关键。代码可以视为是对逻辑的划分与标识”
好吧,我的表达能力估计很弱,只能表达到这么混乱的程度了。
很羡慕《代码大全》的作者,能把很晦涩的东西说得简单清晰。
keep it simple and stupid 才是大师。
虽说表达得不清晰,但还是先记录下来吧。

函数式果然是靠顿悟的啊,某个晴朗的午后,阅读代码的时候,恍然,原来还可以这样!其实本该这样啊!

激动之余在朋友圈里发了个状态:
…天河倒灌,星月逆行说不定就是这种感觉吧…


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK