距离上一篇日志已经快有一个半月的时间了,最近这段时间各种各样的事情纠缠不清,一直都处于一种混乱的状态,于是今天关掉手机关掉QQ,一个人安静的写写博客。
私事略过不提,说说最近做的几个小东西。
首先是基于 wordpress 做了一个类似于百度贴吧的简单论坛,实现了用户 关注/私信/动态 以及 发帖的增删改/分类标签 等功能。原理其实很简单,发帖部分利用 wordpress 原生提供的 register_post_type 方法,新建一个允许用户自由发帖的文章类型;至于用户关注私信动态这一块,在 wordpress 原生的$wpdb数据库类上稍作扩展就行了。
开发过程中其实也遇到一些比较蛋疼的问题,最开始是希望用 wordpress 自带媒体库功能来管理用户的头像和上传之类的数据,但是翻遍官方文档也没找到可用的API,最后还是新建了一张附件表来处理,然后强迫症发作,花了很多时间去跟 wordpress 后台整合到一起…
第二个小玩意是基于NodeJS和MongoDB做的一个带SNS性质的游戏社区。最开始其实也是打算沿用上面的那套方案,但是存在两个问题:
问题一:由于存在一个客户端与客户端实时数据交互的需求,如果用ajax长连接的话,一个长连接就要持久占用一个php进程导致服务器成本剧增,而且不同进程之间的数据共享也没有太好的解决方案;用ajax轮询的话,数据交互又会存在延迟,而且频繁的请求对CPU的消耗也比较大。
问题二:其中某个模型的数据结构非常复杂,如果用Mysql的话,可能需要频繁的跨多个表查询。
由于上面这两个问题一直没有较好的解决方案,所以这个项目搁置了一个星期,直到我的膝盖中了一箭。直到我偶然想起NodeJS和MongoDB。
第三个是基于NodeJS的数据抓取/采集程序。NodeJS的本质是JavaScript,而操作DOM是JavaScript最基本的功能之一。相比其他通过正则来采集数据的方式,使用NodeJS非常简单高效。目前基于这个程序做了一个淘宝客网站,直接从淘宝API拿到JSON数据往数据库里存,太安逸了。