惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
D
DataBreaches.Net
博客园 - 三生石上(FineUI控件)
H
Hacker News: Front Page
Know Your Adversary
Know Your Adversary
Recorded Future
Recorded Future
The Hacker News
The Hacker News
Help Net Security
Help Net Security
月光博客
月光博客
L
LINUX DO - 热门话题
Hacker News - Newest:
Hacker News - Newest: "LLM"
T
Tor Project blog
Security Archives - TechRepublic
Security Archives - TechRepublic
aimingoo的专栏
aimingoo的专栏
Attack and Defense Labs
Attack and Defense Labs
Project Zero
Project Zero
V
Vulnerabilities – Threatpost
SecWiki News
SecWiki News
S
Security @ Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale
V2EX - 技术
V2EX - 技术
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
A
Arctic Wolf
T
Threat Research - Cisco Blogs
WordPress大学
WordPress大学
H
Heimdal Security Blog
小众软件
小众软件
C
Check Point Blog
T
Tailwind CSS Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
C
Cyber Attacks, Cyber Crime and Cyber Security
Vercel News
Vercel News
云风的 BLOG
云风的 BLOG
Last Week in AI
Last Week in AI
L
LangChain Blog
博客园 - Franky
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
P
Proofpoint News Feed
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
J
Java Code Geeks
Apple Machine Learning Research
Apple Machine Learning Research
C
Cybersecurity and Infrastructure Security Agency CISA
C
CXSECURITY Database RSS Feed - CXSecurity.com
Microsoft Security Blog
Microsoft Security Blog
Google DeepMind News
Google DeepMind News
有赞技术团队
有赞技术团队
MyScale Blog
MyScale Blog
S
Schneier on Security

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
nodejs学习笔记之入门
2014-04-13 · via 夜行人

对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 才是大师。
虽说表达得不清晰,但还是先记录下来吧。

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

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

文章作者 种瓜

上次更新 2014-04-13