三周前,我开始对wecenter进行二次开发,版本2.5.8。
首先,wecenter很强大,有很好的框架结构,有非常好的codingstyle。也有做得还不够好的地方,比如说前台样式和脚本,都不是很好的支持二次开发,搜索也基本上还是个雏形。
我的设想,是做一个行业网站,有交流,交易,展示,搜索等业务模块。选择wecenter,是因为这个产品严谨,有较快的更新速度。二次开发是痛苦的,几乎有三分之一的时间都在读代码。我在asp,.net下工作了十几年,却是首次接触php。编码时,我选择了尽量符合官方的风格。
分享一下我的教训和心得:
[]模型分离。我最初的想法是在关键业务表里添加字段,来分别这些数据属于哪个业务模块。很快,这个想法就破灭了。原因是:一,要修改大量代码,没有这么多时间;二,数据大的时候,这种操作是可怕的。最终我选择分离这些模型:我将question,answer做成一个问题模型,将article做成一个文章模型。这个很快就完成了。我给米饭网增加了这些模块,只需要重现界面,数据的操作全部通过通用模型来完成。交易模块(文章模型),交流模块(交流模型),帮助模块(文章模型),live群(文章模型)....[/]
期间发现极少bug,wecenter现在的bug大部分都集中在业务操作上,并且大部分是语法错误,逻辑错误很少。
[]搜索增强。我一直在用lucence,php下,我用了sphinx,保留了phpanalisis,但放弃了mysql的全文检索。我用vb写了个小程序,来管理sphinx的索引,这些索引建立在各个业务模块上。今天我正在为shinx做search suggest。[/]
[]其它改动。细小的改动很多,都不知从哪说起。但无非是把家具挪了个位置,或是重刷了另外颜色的油漆。[/]
我上传了一个demo: http://wenda.wecenter.com/question/16302,界面很简陋,不喜请骂
大概就想起这一点,有不对的地方,请哥哥们指点
阅读全文
收起全文