Redian新闻
>
Node.js 写的 JS 代码有点难读懂
avatar
h*w
2
2005 1OZ 70分 9200RMB
2006 1OZ 68分 7800RMB
另外套猫03 2w3, 04 2w3,05 2w1
买的兄弟可以参考.
avatar
S*f
3
☆─────────────────────────────────────☆
timeacct (no) 于 (Tue Jun 30 19:28:43 2009, 美东) 提到:
将来要跟父母住, 要给父母兄弟姐妹办移民...等等.
没见过一个婆媳能相处好的例子.
这样的男生可能到国内搬运一个比较简单.
☆─────────────────────────────────────☆
hymie (知足常乐,热情谦卑) 于 (Tue Jun 30 20:28:48 2009, 美东) 提到:
给父母办移民其实蛮好的啊
他们过来可以招呼好孩子,还做家务
基本都不用你动手
我有的朋友就是这样的

☆─────────────────────────────────────☆
nojob (湾区瘟神) 于 (Wed Jul 1 02:58:47 2009, 美东) 提到:
don't bother, won't work, unless u r just a simple-minded 村姑
☆─────────────────────────────────
avatar
d*r
4
最近在用 Node.js 做个简单的 RESTful service, 顺便看了下 Node.js 的一些 lib,
感觉异步JS代码是挺难读的。
可能是我 JS 太菜了,读起来挺费劲的。比如 express.js 4.0, 这种应该是 Node 写
的比较好的 lib 了吧。
一些 router.get/post 什么的函数, 我看懂怎么来的都比较费劲。
感觉 JS 比 Python 还不注重类型,我用 JetBrains webstorm 在读代码,对函数变量
用 jump to declaration,经常找不到, 就给出长长的一串备选...
看着看着郁闷了,上大招,设 break point, 跟着走,这样搞 C++ 代码也容易看懂。
然后发现对于各种 callback 匿名函数,因为注册 callback chain 和 实际调用匿名
函数是分开发生的,于是整个逻辑又分成了2部分。比如 breakpoint 开始肯定会停在
注册 callback chain 的地方(注册这个 callback 的 calling function),step into
后,发现calling function这里面又是一堆 magic, 好像这个 calling function 本
身就是从这一堆 magic 里面动态生成的...... 好不容易看懂了一点,觉得好绕呀 ...
... +_+
我觉得我读 JS 代码还没入门。Node.js 这些 lib 用着 magic 一样,慎得慌...
avatar
M*9
5
这里买不到这个价格吧,,,
avatar
M*z
6
真正的菜鸟在此,所以转投golang了。至少看得明白一些。不过做web app的前端还会
和js碰面的。
avatar
h*w
7
是的,不过目前象00 1原封这种中档次的也就在饿爸1600刀成交,卖家到手应该还不到
1500,其实这个猫我挺喜欢的,正在考虑是不是要买.上个月刚买了个1700 67分,幸好平
推掉了.
金猫真跌起来没边的,因为发行量太大了,没有收藏者能HOLD住.
精致币目前应该已经差不多了.

【在 M**9 的大作中提到】
: 这里买不到这个价格吧,,,
avatar
r*y
8
不能同意更多
碰到 dynamically typed language, 尤其维护别人的代码极其伤害最弱的小心脏.

【在 d*******r 的大作中提到】
: 最近在用 Node.js 做个简单的 RESTful service, 顺便看了下 Node.js 的一些 lib,
: 感觉异步JS代码是挺难读的。
: 可能是我 JS 太菜了,读起来挺费劲的。比如 express.js 4.0, 这种应该是 Node 写
: 的比较好的 lib 了吧。
: 一些 router.get/post 什么的函数, 我看懂怎么来的都比较费劲。
: 感觉 JS 比 Python 还不注重类型,我用 JetBrains webstorm 在读代码,对函数变量
: 用 jump to declaration,经常找不到, 就给出长长的一串备选...
: 看着看着郁闷了,上大招,设 break point, 跟着走,这样搞 C++ 代码也容易看懂。
: 然后发现对于各种 callback 匿名函数,因为注册 callback chain 和 实际调用匿名
: 函数是分开发生的,于是整个逻辑又分成了2部分。比如 breakpoint 开始肯定会停在

avatar
P*o
9
我打算从2000年的金猫开始收集,以前的总觉得做工太丑

【在 h*****w 的大作中提到】
: 是的,不过目前象00 1原封这种中档次的也就在饿爸1600刀成交,卖家到手应该还不到
: 1500,其实这个猫我挺喜欢的,正在考虑是不是要买.上个月刚买了个1700 67分,幸好平
: 推掉了.
: 金猫真跌起来没边的,因为发行量太大了,没有收藏者能HOLD住.
: 精致币目前应该已经差不多了.

avatar
l*n
10
先写测试,再写代码

【在 r***y 的大作中提到】
: 不能同意更多
: 碰到 dynamically typed language, 尤其维护别人的代码极其伤害最弱的小心脏.

avatar
M*9
11
年轻人啊,,,

【在 P*******o 的大作中提到】
: 我打算从2000年的金猫开始收集,以前的总觉得做工太丑
avatar
l*n
12
npm module都是遵循commonJS的,有啥不好读的?

【在 l**********n 的大作中提到】
: 先写测试,再写代码
avatar
N*n
13
This is why we said JS is not for big projects. Not even IDE could find
out how sth is defined in JS sometimes. Imagine you'd use it to write
hundred of thousand lines of code. It'd be a mess.

【在 d*******r 的大作中提到】
: 最近在用 Node.js 做个简单的 RESTful service, 顺便看了下 Node.js 的一些 lib,
: 感觉异步JS代码是挺难读的。
: 可能是我 JS 太菜了,读起来挺费劲的。比如 express.js 4.0, 这种应该是 Node 写
: 的比较好的 lib 了吧。
: 一些 router.get/post 什么的函数, 我看懂怎么来的都比较费劲。
: 感觉 JS 比 Python 还不注重类型,我用 JetBrains webstorm 在读代码,对函数变量
: 用 jump to declaration,经常找不到, 就给出长长的一串备选...
: 看着看着郁闷了,上大招,设 break point, 跟着走,这样搞 C++ 代码也容易看懂。
: 然后发现对于各种 callback 匿名函数,因为注册 callback chain 和 实际调用匿名
: 函数是分开发生的,于是整个逻辑又分成了2部分。比如 breakpoint 开始肯定会停在

avatar
d*r
14
展开说说呢,是不是熟悉一些 commonJS 的常用pattern,看 node.js 的 lib 代码能
高效些?
但是就我所知,Node.js 设计本身参考了 commonJS,至于 Node 那些 JS lib 的实现
,未必遵循了

【在 l**********n 的大作中提到】
: npm module都是遵循commonJS的,有啥不好读的?
avatar
l*n
15
一般的npm module都有spec吧。

【在 d*******r 的大作中提到】
: 展开说说呢,是不是熟悉一些 commonJS 的常用pattern,看 node.js 的 lib 代码能
: 高效些?
: 但是就我所知,Node.js 设计本身参考了 commonJS,至于 Node 那些 JS lib 的实现
: ,未必遵循了

avatar
r*y
16
我是跟statically typed 的对比来讲的.
碰到 dynamically typed, 文件多了, 行数多了. 尤其再不是自己写的, 你这些没用,
一样抓瞎
是 statically typed 的, 几万个文件的项目都没啥压力

【在 l**********n 的大作中提到】
: 先写测试,再写代码
avatar
d*r
17
你指的是API文档吗?express4.0 是有的,还不错
我是说想看懂内部实现

【在 l**********n 的大作中提到】
: 一般的npm module都有spec吧。
avatar
l*n
18
你没必要都要看懂实现。Java你也不是都能看懂原代码怎么实现的。那个是需要花时间
的。

【在 d*******r 的大作中提到】
: 你指的是API文档吗?express4.0 是有的,还不错
: 我是说想看懂内部实现

avatar
l*n
19
我一般都是直接在元代码里搜索。一行一行读没时间。

【在 l**********n 的大作中提到】
: 你没必要都要看懂实现。Java你也不是都能看懂原代码怎么实现的。那个是需要花时间
: 的。

avatar
l*n
20
说实话,JS代码量比Java少多了。

【在 l**********n 的大作中提到】
: 我一般都是直接在元代码里搜索。一行一行读没时间。
avatar
d*r
21
我之前的背景决定其实 C++ 读得最多,Java 用的少,当然 Java 读起来应该更舒服
没想到 JS 这么难读,少是少,怎么看着比 C++ 还 magical
可能还是我 JS 太菜

【在 l**********n 的大作中提到】
: 说实话,JS代码量比Java少多了。
avatar
l*n
22
好好学学grunt,干活应该很轻松。grunt就是Java的ant或者maven。
avatar
d*r
23
grunt看我同事在用,据说很好
我还是觉得精确理解 API 有点辛苦,比如 express.js 4.0 的 API
http://expressjs.com/4x/api.html
基本就只有最简单的例子和一点解释,数参数都没有类型注释,也没有详细解释,JS
community 都是这种 style?
感觉 Python 的 API 文档都比这种详细多了, 至少参数啥的有时还解释下.
不知道参数类型,用着总是慎得慌,不能总是下面这样吧:
copy, paste, and modify, then do some black-box tests... expect the magical
programs always work correctly without knowing precise type information of
the parameters...!?
于是去看源码,发现源码也很 magical, 然后看得有点小郁闷

【在 l**********n 的大作中提到】
: 好好学学grunt,干活应该很轻松。grunt就是Java的ant或者maven。
avatar
p*2
24
这个doc看起来没啥问题呀

magical

【在 d*******r 的大作中提到】
: grunt看我同事在用,据说很好
: 我还是觉得精确理解 API 有点辛苦,比如 express.js 4.0 的 API
: http://expressjs.com/4x/api.html
: 基本就只有最简单的例子和一点解释,数参数都没有类型注释,也没有详细解释,JS
: community 都是这种 style?
: 感觉 Python 的 API 文档都比这种详细多了, 至少参数啥的有时还解释下.
: 不知道参数类型,用着总是慎得慌,不能总是下面这样吧:
: copy, paste, and modify, then do some black-box tests... expect the magical
: programs always work correctly without knowing precise type information of
: the parameters...!?

avatar
d*r
25
Go 现在主要在哪一块流行?

【在 M****z 的大作中提到】
: 真正的菜鸟在此,所以转投golang了。至少看得明白一些。不过做web app的前端还会
: 和js碰面的。

avatar
d*r
26
挺好,就是不详细,参数类型一个都没解释

【在 p*****2 的大作中提到】
: 这个doc看起来没啥问题呀
:
: magical

avatar
p*2
27
grunt 跟 cake 比是啥情况呀

【在 l**********n 的大作中提到】
: 好好学学grunt,干活应该很轻松。grunt就是Java的ant或者maven。
avatar
p*2
28
感觉也是最web server

【在 d*******r 的大作中提到】
: Go 现在主要在哪一块流行?
avatar
s*r
29
异步代码本来就不好读,和是不是js没有关系。这也是google为什么要搞go的原因。

【在 d*******r 的大作中提到】
: 最近在用 Node.js 做个简单的 RESTful service, 顺便看了下 Node.js 的一些 lib,
: 感觉异步JS代码是挺难读的。
: 可能是我 JS 太菜了,读起来挺费劲的。比如 express.js 4.0, 这种应该是 Node 写
: 的比较好的 lib 了吧。
: 一些 router.get/post 什么的函数, 我看懂怎么来的都比较费劲。
: 感觉 JS 比 Python 还不注重类型,我用 JetBrains webstorm 在读代码,对函数变量
: 用 jump to declaration,经常找不到, 就给出长长的一串备选...
: 看着看着郁闷了,上大招,设 break point, 跟着走,这样搞 C++ 代码也容易看懂。
: 然后发现对于各种 callback 匿名函数,因为注册 callback chain 和 实际调用匿名
: 函数是分开发生的,于是整个逻辑又分成了2部分。比如 breakpoint 开始肯定会停在

avatar
r*y
30
grunt 真心不错.
扫了一眼文档, 感觉更象 java 的 gradle , 不是 ant, maven

【在 l**********n 的大作中提到】
: 好好学学grunt,干活应该很轻松。grunt就是Java的ant或者maven。
avatar
N*m
31
grunt更主流吧

【在 p*****2 的大作中提到】
: grunt 跟 cake 比是啥情况呀
avatar
p*2
32
我怎么感觉grunt用处不大呢 不过cake也break了

【在 N*****m 的大作中提到】
: grunt更主流吧
avatar
N*m
33
用处太大了,基本上就是java的maven, gradle

【在 p*****2 的大作中提到】
: 我怎么感觉grunt用处不大呢 不过cake也break了
avatar
p*2
34
说说常用的plugin?

【在 N*****m 的大作中提到】
: 用处太大了,基本上就是java的maven, gradle
avatar
N*m
35
karma, serve, watch

【在 p*****2 的大作中提到】
: 说说常用的plugin?
avatar
p*2
36
karma是写前端用的?

【在 N*****m 的大作中提到】
: karma, serve, watch
avatar
p*2
37
我用coffee做rest 有什么推荐的plugin吗

【在 N*****m 的大作中提到】
: karma, serve, watch
avatar
N*m
38


【在 p*****2 的大作中提到】
: karma是写前端用的?
avatar
N*m
39
watch and serve总要用吧
watch可以监视coffee script

【在 p*****2 的大作中提到】
: 我用coffee做rest 有什么推荐的plugin吗
avatar
p*2
40
好 回头看看

【在 N*****m 的大作中提到】
: watch and serve总要用吧
: watch可以监视coffee script

avatar
s*o
41
建议先学clojure,等你一眼扫过去就能数清是用了108个还是204个括号时,回头再看
这些js code 肯定跟玩似的 :)

【在 d*******r 的大作中提到】
: 最近在用 Node.js 做个简单的 RESTful service, 顺便看了下 Node.js 的一些 lib,
: 感觉异步JS代码是挺难读的。
: 可能是我 JS 太菜了,读起来挺费劲的。比如 express.js 4.0, 这种应该是 Node 写
: 的比较好的 lib 了吧。
: 一些 router.get/post 什么的函数, 我看懂怎么来的都比较费劲。
: 感觉 JS 比 Python 还不注重类型,我用 JetBrains webstorm 在读代码,对函数变量
: 用 jump to declaration,经常找不到, 就给出长长的一串备选...
: 看着看着郁闷了,上大招,设 break point, 跟着走,这样搞 C++ 代码也容易看懂。
: 然后发现对于各种 callback 匿名函数,因为注册 callback chain 和 实际调用匿名
: 函数是分开发生的,于是整个逻辑又分成了2部分。比如 breakpoint 开始肯定会停在

avatar
l*n
42
就没有一种editor帮你找括号的匹配?

【在 s***o 的大作中提到】
: 建议先学clojure,等你一眼扫过去就能数清是用了108个还是204个括号时,回头再看
: 这些js code 肯定跟玩似的 :)

avatar
h*b
43
用netbeans,点一个{,对应的}自动highlight. 自动排版,自动列function/class表。
这些所有IDE都有吧。 很容易啊。
楼主非要读懂node的source code那层次就不一样了。 糙快猛就是直接拿来用不需要
问为什么啊。
avatar
m*t
44
lighttable

【在 l**********n 的大作中提到】
: 就没有一种editor帮你找括号的匹配?
avatar
g*t
45
这世界上其实哪有那么多big projects阿。很多大的projects其实都是设计或者需求分
析没弄好,或者business logic没弄清楚。
我记得发明Unix那哥们当初就这么说的。他说科学家都是从小到大的。
Einstein方程也就几行而已。他喜欢写的也是小的solid程序。

This is why we said JS is not for big projects. Not even IDE could find
out how sth is defined in JS sometimes. Imagine you'd use it to write
hundred of thousand lines of code. It'd be a mess.

【在 N********n 的大作中提到】
: This is why we said JS is not for big projects. Not even IDE could find
: out how sth is defined in JS sometimes. Imagine you'd use it to write
: hundred of thousand lines of code. It'd be a mess.

avatar
d*r
46
所以 Unix/Linux 那一套管理 project 的东西 (make, bash) 真是无比难用 ......

【在 g****t 的大作中提到】
: 这世界上其实哪有那么多big projects阿。很多大的projects其实都是设计或者需求分
: 析没弄好,或者business logic没弄清楚。
: 我记得发明Unix那哥们当初就这么说的。他说科学家都是从小到大的。
: Einstein方程也就几行而已。他喜欢写的也是小的solid程序。
:
: This is why we said JS is not for big projects. Not even IDE could find
: out how sth is defined in JS sometimes. Imagine you'd use it to write
: hundred of thousand lines of code. It'd be a mess.

avatar
d*r
47
还没读 Node.js 的代码,据说总量不大。
读了下 express.js 这个 lib 的代码,因为它 API 解释太精炼了.

表。

【在 h******b 的大作中提到】
: 用netbeans,点一个{,对应的}自动highlight. 自动排版,自动列function/class表。
: 这些所有IDE都有吧。 很容易啊。
: 楼主非要读懂node的source code那层次就不一样了。 糙快猛就是直接拿来用不需要
: 问为什么啊。

avatar
d*r
48
没有那么多括号数吧,就是各种 JS 匿名函数,和动态生成的函数,有点多

【在 s***o 的大作中提到】
: 建议先学clojure,等你一眼扫过去就能数清是用了108个还是204个括号时,回头再看
: 这些js code 肯定跟玩似的 :)

avatar
L*s
49
我觉得还是熟练程度吧
当初学Python就没有对类型问题抓狂过?
用熟了就好了

【在 d*******r 的大作中提到】
: 最近在用 Node.js 做个简单的 RESTful service, 顺便看了下 Node.js 的一些 lib,
: 感觉异步JS代码是挺难读的。
: 可能是我 JS 太菜了,读起来挺费劲的。比如 express.js 4.0, 这种应该是 Node 写
: 的比较好的 lib 了吧。
: 一些 router.get/post 什么的函数, 我看懂怎么来的都比较费劲。
: 感觉 JS 比 Python 还不注重类型,我用 JetBrains webstorm 在读代码,对函数变量
: 用 jump to declaration,经常找不到, 就给出长长的一串备选...
: 看着看着郁闷了,上大招,设 break point, 跟着走,这样搞 C++ 代码也容易看懂。
: 然后发现对于各种 callback 匿名函数,因为注册 callback chain 和 实际调用匿名
: 函数是分开发生的,于是整个逻辑又分成了2部分。比如 breakpoint 开始肯定会停在

avatar
d*r
50
我也是写 Python 的,Python 代码比 JS 直白多了...

【在 L***s 的大作中提到】
: 我觉得还是熟练程度吧
: 当初学Python就没有对类型问题抓狂过?
: 用熟了就好了

avatar
M*z
51
感觉很多是在玩而已。
web后端的话,搜golang martini框架,这个势头最猛。
和node比,可以拿来就用的东西会少很多。不过你有基础的人应该学的快。我是啥基础
都没有,就写过不到半年的objective-c。node我也是发现看不懂,去看express源代码
,仍然不懂,问了个朋友,讲明白了,不过我还是不太容易理解。时间紧迫,正好有
golang看着势头不错,初学门槛似乎比node低,就放弃了。
不过我太菜,上stackoverflow问了一直没搞明白的callback,人家讲解了一二,压根
没明白是怎么回事。可能是还不习惯这种方式吧。
仅供参考。

【在 d*******r 的大作中提到】
: Go 现在主要在哪一块流行?
avatar
l*s
52
一回事。不过python的括号是比较少,代码格式又严格,没js这么乱。

【在 d*******r 的大作中提到】
: 我也是写 Python 的,Python 代码比 JS 直白多了...
avatar
p*2
53

用coffee就简单很多了吧?

【在 l*********s 的大作中提到】
: 一回事。不过python的括号是比较少,代码格式又严格,没js这么乱。
avatar
t*r
54
楼主很奇怪。
有括号才不乱呢
没括号才乱死了。
avatar
d*r
55
我冤... 我压根没想讨论括号问题... 是前面 stdio 硬扯到 clojure 括号多云云...
我哪点关心括号了,你仔细再读读帖子呢

【在 t**r 的大作中提到】
: 楼主很奇怪。
: 有括号才不乱呢
: 没括号才乱死了。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。