美折网在node.js上的尝试

梵高 发布于 2013/08/10 13:16
阅读 1K+
收藏 4

最近论坛上好多人贴自己的网站,按捺不住地将自己的网站美折网贴出来,一是给自己的网站增加一点访问量(虽然我知道OSC的桶子们肯定不是我的目标用户);二是分享一些开发过程中的技术经验,三是听听大家对我的网站的意见和建议,毕竟现在还很不成熟。

美折网(http://meizhe100.com)是我和一朋友花了数周在业余时间刚刚做出来的,目前的技术组合是:

Nginx + PHP + Code Igniter + Node.js + Express + Mysql + jQuery

PHP主要用于美折网的页面展示,Node.js用于后台管理、数据采集、数据更新。

之所以采用这样的组合也是慢慢磨合探索出来的。

前期我们采用的开发模式是前端+后台(此时并没有引入Node.js),我负责前端我朋友负责php后台开发。但是经过一段时间后,发现这模式最大的局限就是在进度上。前端严重依赖于后台,本来就是业余时间开发,两人时间步调上并不能保持一致所以导致前期进展慢。进展慢是很可怕的,会衍生一系列更严重的问题,有过类似的经验应该都懂得。不过如果你的团队时间充分且步调一致,那情况可能会不同,这个也因人而异。

后来我尝试使用Node.js来分担一系列工作,另外觉得这也是我学习后台开发的一个好机会。

在花了几天时间在Node的官网学习之后,发现Node真的是非常容易上手和入门的。node入门以后就开始了node著名的Web框架--Express的学习,不得不说这个框架的起点很高。

Express的作者本身对ruby非常熟悉,在Express开发中吸收和借鉴了Ruby的轻量级框架Sinatra的各种精华。所以对于那些稍微有点Web开发经验的人来说,Express入门和开发毫无难度。

对node入门之后就发现一发不可收拾,我已经不满足于仅仅将其用来做后台管理了。在node的官方仓库npm和github一番摸索之后,果断地将美折网的商品价格同步工作使用node.js重写,代码我已经上传,在这里

node.js有很多好处,不过也有很多蛋疼的地方,最蛋疼的莫过于回调嵌套了。回调对于那些适合用于事件驱动模型编程的确实非常简洁和方便,但是如果业务逻辑各种迂回复杂,潜规则就不好搞了。不过好在我们网站的逻辑非常简单,所以目前也并没有遇到非常难以解决的问题。回调可以通过async,Event Proxy,WindJS等框架来解决,最后我采用了async,使用简洁也完全能够满足我的需求。

加载中
1
mallon
mallon
对于复杂程序逻辑,只能callback方式或者线程方式,都很繁,不过都没办法,呵呵
梵高
梵高
确实,即便使用传统语言如java,c#也不能说没有问题。这个问题其实还和代码组织也有关系,代码写的易懂,合理注释。只要不让人觉得困惑,其实就不那么蛋疼了。
0
张三alpha
张三alpha
试试erlang
张三alpha
张三alpha
回复 @高老庄壮猪 : 分布式,高并发,容错,热升级等等,还有强大的OTP框架。erlang绝对是一门值得学习的语言。你可以先看看erlang之父的论文。
梵高
梵高
能说下erlang的好处吗,之前确实看到很多人将其和nodejs对比
0
osc特邀摸鱼官
osc特邀摸鱼官
Nginx + PHP  +  Mysql + jQuery就可以搞定啊,不知道Code Igniter + Node.js + Express 起什么作用?
梵高
梵高
商品和分类已经还有其他信息的后台管理、商品数据的信息同步、以及其他一些数据采集任务
0
Shazi199
Shazi199
没有写好文档和注释的话,一层接一层的callback真心蛋疼……
梵高
梵高
谁说不是呢?-.-
返回顶部
顶部