2013年的夏天,在我学习了一年多Joomla之后,在帮助一些用户做网站和培训的过程中,我认识到公司网站建设通常有三个阶段:
1.公司发展初期业务少,需求也不是很多,建站的主要目的是宣传公司,所以这时候有个漂亮的模板,可以发些文章和产品就可以,这个阶段需要快速完成网站原型的设计。(Joomla和WordPress)
2.公司发展到中期,业务逐渐增多,用户的需求也变得多样化起来,用户不在需要只是以审美的眼光去看一个网站,而是追求更加实用,能和用户产生更多的互动,这时候会出现很多需要定制化的功能。(Drupal)
3.公司发展进入成熟期,业务已经稳定,如何通过更多的互动深入挖掘用户需求,更好的服务于这些用户,如何整合内部资源提高公司内部管理效率,成为了这个阶段公司的目标。这时候会出现对网站框架的灵活性,性能,安全性,稳定性的诉求。
这个时候外部的环境发生了很大的变化,网络越来越成熟化,互联网已经成为家喻户晓的东西,成为了任何公司的标配,人们逐渐从对做一个网站的阶段,走向了做一个我需要的网站的阶段,对定制化功能的要求越来越多。Joomla(WordPress我没有学过,不做评价)显然在第二个阶段,定制开发上显现出了瓶颈,框架固定,做组件开发的难度并不小。于是我开始了重新选择CMS的历程。通过查询大量的对于Joomla,Drupal,WordPress的对比,我逐渐了解到Drupal是一个介于框架和CMS之间的产物,他的目标是尽量保持框架的灵活性,又要通过模块的方式,保持快速建站的理念。于是深入了解Drupal的人说他是CMF( Content Management Framework)。
2013年6月份,我在Joomla社区询问国内最大的Drupal社区是哪个,我的Joomla朋友,星仔码头告诉我了Drupal中国的QQ群,于是我加入到了Drupal中国社区群,刚来的时候,虽然看大家聊的内容,我都看不懂,不过有两种感觉,一种是这里技术氛围很浓厚,一种是高手很多,群里很活跃。一个欣欣向荣的社区。于是,我下决心开始学习Drupal,2013.6.25日是我正式开始学习Drupal的日子,我开始在网络上寻找大量的英文文章,后来感觉这样不够直接,还好我搜索资料的能力不弱,于是我很快找到了一个中文的Drupal资料,这就是著名的台湾讲师出的《通通学Drupal系列教程》,这个教程是我真正的启蒙老师,讲的很通俗易懂,这套教程帮助我快速的了解了Drupal的很多基本概念和操作。后来群内大神老葛出了一本《Drupal 7 实战》的教程,于是我毫不犹豫将老葛的5套书一网打尽。书买回来是非常兴奋的,马上投入学习,很快遇到了障碍,后来发现,这4本书按照由浅入深的排序应该是这样的,先看实战(以操作为主),然后3册,之后第1册,最后是第4册,不过葛总的书偏代码类,很多地方深入到Drupal的核心讲解代码的,读了一半,看不懂了,于是折回来继续看通通学。当我看到通通学讲的模块开发系列的时候,由于前面看过老葛的书,于是有些不明白的地方,又懂了。就这样循环往复几次,不断深入了。
今天是2014.10.22日距离正式开始学Drupal的时间,已经过去了一年多了,学了这段时间,于是我开始思考Drupal,它为什么是这样的,它能在那些方面帮助我们,能做到什么程度这些问题。经常群里有些朋友也在说,Drupal有的地方,把复杂的问题变简单了,有的地方似乎又把简单的问题变复杂了,通过我学习的过程中,看了很多国外的文章和评论,我的理解是这样的,Drupal的用户有三类:
1.网站的开发者(偏向代码编程,以开发模块功能为主,追求API支持是否多,灵活性是否好)
2.网站的设计者(快速建立网站原型设计,以主题开发为主,灵活性要好,实现要简单)
3.最终用户(使用简单,能快速搭建一个自己想要的站点,性能要好,要美观)
Drupal要同时满足这三类用户的需求,既要做到通用化,又要实现灵活性,这两者其实是天然的矛盾,但是又是必须解决的问题,于是Drupal在做最大程度上的平衡。
Drupal的目标还是在无代码或者少代码实现功能(这也是CMS的重要定位)。如果要做到通用化,无代码或者少代码编程,还要实现功能就需要对函数进行封装,于是产生了模块(模块实际上就是一大堆函数实现的一个大功能)。这样又会带来一个问题,易用性肯定提高,灵活性就必然要下降。举个例子,如果让你输出一个"Hello World",你会怎么做?
你会这样写<?php print('Hello World'); ?>
一句话就完成了,你觉得很简单吧,现在要求你用无代码的方式去输出"Hello World"这句话,你会怎么做?
于是,你会这样实现,首先,你会先做一个文本框,下面还有个提交的按钮和取消的按钮,然后用户在文本框中输入Hello World,点击提交,于是在另外一个界面会出现"Hello World"(这里你还要考虑到提交后传值的问题)
OK,如果你是Drupal的第一类用户(1.网站的开发者(偏向代码编程,以开发模块功能为主,追求API支持是否多,灵活性是否好)),你在打开这个文本框的代码,看一下,他需要多少行才能实现这个简单的功能。
于是,大家都会觉得这样是Drupal把一个简单的问题变复杂了,其实如果实现无代码或者少代码编程,也就是所谓的可视化编程,都是这样的,实现这个过程是需要大量代码才能做到一个简单的事情。但是这样的界面和输入,更接近人类的思维模式,让很多不懂编程的人无需在学习编程,他是在这个角度上降低了难度。所以这是思维角度的不同。
当然,前面说Drupal在做这三类用户的需求平衡,那么灵活性对他来说还是非常重要的,众所周知CMS无论如何也不可能和纯框架去比灵活性,纯框架不需要考虑可视化,那么Drupal怎么才能既满足第一类用户需求,又满足第二第三类用户的需求呢?于是,今年刚出的Drupal 8 测试版,Drupal用symfony框架重新架构了核心,那么以后你可以用纯框架Symfony去写代码,也可以使用Drupal的CMS架构网站。
从加入到Drupal中国社区,有幸结识了很多好朋友,龙马,浩江,Drupal猎人,小强,大风筝,幽灵,7_huo,Tvdrupal,老葛,看山....大家为了同一个兴趣聚到一起来,这是一种缘分。我在Drupal中国群的这一年,看到了很多人为Drupal在中国的发展做出努力,默默奉献,翻译文章,汉化Drupal系统,组织线下技术交流等等,感谢各位!!!
2014年快过去了,2015年我们将见到一个全新Drupal 8正式版的诞生,随着Drupal战略开始从CMS向着企业的WEM转移,Drupal 8将是这步战略的入门级产品,我相信Drupal的明天会更好,我相信我们的Drupal中国社区在各位的不断努力推动下,也会发展壮大,社区会呈现更加多元化发展,随着Drupal的推广,会有越来越多的朋友加入,越来越多的公司开始采用Drupal,增加更多的生意机会,增加更多的Drupal专业人才的就业机会,增加更多的以Drupal为核心的创业团队,会有更多的网站甚至移动端的网站是Made in Drupal !!!!!
狂潮
2014.10.22
你在省略号里
YES,你说的对
TV,加油,持之以恒,一定会开花结果,任何东西练到极致
TV,加油,持之以恒,一定会开花结果,任何东西练到极致,就非常了不起了
很不错的文章
给作者点个赞,用心在写的内容。
哎 没点我的名啊