Drupal是否适合你?——学习成本
国内选择Drupal的人越来越多,选择的理由也各不相同,时间、开销、安全性、稳定性、扩展性、持续性、名气等等是大家考虑的常见因素。
确定选择Drupal很容易,几乎认真了解过Drupal的团队都愿意在项目中使用它,但使用Drupal却又不象想像得那么轻松。(安装Drupal->启用模块->完成,这只是一个美丽而动人的传说:D)
在真正使用Drupal之前还是需要投入大量的学习和实践,以便掌握必备的知识、技能和积累必要的经验。这是使用任何新事物前都必须经历的阶段,没有例外。
对于Drupal而言,在学习和使用的过程中主要将要面对以下学习成本
成本1:语言
语言更多应该算作是一种能力,而非实在的成本。但如果说Drupal的使用者在英文资料、文档的阅读上存在不足,那学习英文这个过程就会成为一项实际的成本了。
目前绝大部分的Drupal资源、资料都是英文,虽然我们也有在做各种翻译、原创的工作,但对于真正的Drupal使用者而言,不能阅读英文文档将严重制约今后的学习和发展高度。
成本2:模块知识
Drupal不是拿来就可以使用的产品软件,熟练使用第三方模块是作为Drupal工程师的一项重要技能。
模块化设计是Drupal成功和壮大的一项重要原因,目前社区有近20000个模块,几乎能够想到的通用功能都能够找得到,需要什么功能,到社区一找,可能早就有人实现了,而你只需要下载这个模块,安装并配置就可以轻松实现这样或那样的功能。
这是很迷人的特性,但同时也让人眼花缭乱。
选择多也不见得都是好事,你需要去了解哪些模块能够实现什么、需要学习如何使用(配置)这些模块、需要知道怎么与让模块与模块配合使用。获取这些知识需要不断去了解和试用各种第三方模块,在找到最合适的一个模块之前,这会花费你和你的团队大量的时间。
另一方面,一旦熟悉了大量的模块,借助它们在很短的时间内实现很复杂的功能自然也不在话下。对于新人团队,这也是实实在在的成本。
成本3:开发知识
为了让Drupal获得无所不能的可扩展性,Drupal在各个层面上都尽可能的提供抽象层,如数据库抽象层、Entity抽象层、字段抽象层、表单抽象层、模块抽象层等等。如果开发人员希望借助Drupal的各种特性和优势,开发适用自身项目的功能模块,学习Drupal API和大量的抽象层是不可避免的学习内容。
Drupal是否适合你?
看到这里,不少朋友心里已经开始打起了退堂鼓,觉得使用Drupal太麻烦,做出一个项目要学的东西还很多。但事实上,使用Drupal提供的成熟框架和大量可复用的功能模块,可以节省传统项目中80%~100%的开发工作量(且不说其它因使用Drupal而节省的成本和带来的优势)。
如果看中Drupal的各项优势,自身没有合适的技术团队,或者是不希望自身投入过多的时间去学习Drupal,可以将项目外包给专业的Drupal团队。而如果有自己的工程师,自我学习或者是通过Drupal培训来提升Drupal团队的知识面和能力都是可行的办法。
以上对成本的说明主要是希望大家对Drupal有更清楚的认识,走出装上第三方模块就能完成项目的误区,根据实际情况在使用Drupal前确定正确的实施方向(外包、自学、培训等)。
前期的成本投入是个战略问题,是否投入、是否认为值得投入以及如何投入,还得由各位看官自己掂量 :D