最近的一个项目,在是否选用drupal的问题上,稍微有些纷争,也由此导出了这篇文章,希望对大家选择开源系统协作站点有所帮助。

文章会比较冗长,先简要的说一下选择之前需要考虑的重点:

需求 | 学习成本 | 开发速度 | 性能与后期维护 | 总结

需求

我们需要什么功能?
网站需要什么时间上线?
开发需要什么样的人力资源?

根据需求,来做评估。

开源软件种类繁多,雨后春笋般涌现的开源框架都声称自己是最好的。
面对老板推荐一个框架已经变成一件困难的事情,他们会有各种各样的问题:Webwork比Struts好在哪里?Hibernate和iBatis各自的优缺点是什么?OpenWFE比之jBpm有什么优势?drupal在国外很火啊,为什么不适合咱们?

要确定一个框架时,往往需要将相似的框架都研究一遍,以便有充足的理由让老板相信我们的选择是最优的。但是,要将同类的框架都做一次研究比较并非易事,例如能用于开发企业网站的就有joomla、drupal、ee、dede、phpcms、MODx、typo3、甚至wordpress都可以用作于企业站点,这么多良莠不齐的东西,每种都有他们自己的设计思路和实现方案,决定选择哪一种,不可能在项目周期内占用太多的时间,而不深入预研又无法客观地作出评判,所以往往是熬红的双眼依然带着迷茫的目光。

怎么办?

从实际情况出发,手里有几杆枪?大家的能力如何?团队比较熟悉哪款框架?有必要选择这些开源程序吗?高度定制的系统,自己写是否更有效率?

以drupal举例,我确信它是万能的,玩熟了之后可以适用于各种领域。

drupal强大的扩展性,可以轻松调用社区开发的各种modules,论坛/博客/投票/社区/电子商务/短消息,应有尽有,给客户做网站的时候,他所要求的常用功能,基本上都可以很快找到。

对于建站者来说,这种快速开发的神器,在和任何客户的战斗中都能发挥作用,为什么不大力推广?

但是,我们需要吗?

我们的博客已经采用了wordpress架构,我们的论坛已经采用了discuz积累了大量的数据,我们的招聘系统已经稳定上线录入了许多职位,而我们真正需要后台更新维护的“产品特性”“通栏图”“合作方式”“软件更新列表”,等等等等特色功能,都需要php人员学习drupal modules的开发方式,自行开发,需要前端人员学习他们的模版架构,再提交给php加入一个个的模块之内。

种种需求拉下来,选择drupal是减轻了压力,还是加重了成本?

学习成本

不懂,就会遇到各种各样的问题。
如果一个项目的负责人选用了一种自己都不熟悉的开发平台,召集了一批不专业的 Drupal 平台二次开发者,除了 Drupal 本身的开发入门确实不容易以外,是否也要检讨一下自己到底应以什么标准选择开发平台呢?

一个项目开发周期是多少?能留给大家的学习时间是多少?
短时间内是否能够熟悉框架的真正魅力?

使用drupal的view模块,确实可以非常容易的创建一个最新文章列表区块。
但你是否要考虑代码冗余?是否有更好的方法来实现?

任何一个框架的熟练掌握,都需要大量的时间。我们要最优性能,就要下功夫。

这不是个人的战斗,大量的逻辑存储在数据库,导致整个团队的协作,需要适应新的开发模式,建站者学习drupal是为了建设上百个企业站点。
我们半个团队出来学drupal只为了这一个站点,是否大材小用?

开发速度

选择框架,或者开发框架,哪个更高效取决于要做的事情是什么。取决于开发者是否熟悉。
框架没有好与坏的区别,问题在于是否适合。

你的团队最擅长干什么,问他们一下再做决定。
如果开发周期过长,学习成本过高,为什么不外包出去?

专业的人做专业的事,互联网是高速迭代的过程,工作重点是什么?如何提高效率?

性能与后期维护

性能和安全性一样,如果选择的是开源系统,只要跟着系统升级就是了。
唯一的问题在于,升级常常会导致模块工作的异常。

确保所有自定义的和第三方的模块(modules)与新升级的Drupal版本相匹配,是后期维护中比较大的一个问题。

其他方面,在需求不明的情况下,我揣测一下领导的意图:

用drupal的模版+多语言包,将官方网站推送到全世界范围,全球各个分公司,只需要招聘一个能看懂drupal后台、会打字的人,就可以维护当地官方网站的正常运行。毕竟每个地区都招一个懂html的前端开发来维护,成本会比较高。

这个需求,我们是否有更好的方法来实现?

我们自己做一个多语言的后台,可视化界面让他们修改文字,自定义的后台即简单也易学。

总结

谁说服谁并不重要,重要的是实现同样的需求,哪个更快、更好?
干活的那个人是谁?他擅长什么?他的建议是什么?

每个人的时间是有限的,对于周期紧,进度急,加班赶的it民工来说更加如此,作为开发者,选择好适合自己、适合项目的框架进行重点学习尤为重要。博览百家不如专精一行。

作为负责人,听取手下的专业建议比听取互联网上的xx评测更为靠谱,用人不疑,不要让员工把时间都浪费在讨论框架上。对于公司来说,利润永远都是第一位的,不管用不用框架或用什么框架,只要能如期保质保量完成用户的所有功能需求,就是最好的项目。

希望此文能让兄弟们在嘈杂喧闹的开源世界把握方向。找准真正适合自己的路。
也希望决策者,以后请仅提需求,不要提实现方式。领导随口的一句话,底下人会琢磨很久。