欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

drupal 恶梦的开始 在中国请不要再学习 drupal [复制链接]

shiping1 的头像

drupal 恶梦的开始 在中国请不要再学习 drupal 

[复制链接]
  
跳转到指定楼层
楼主
 DeadFire 发表于 2009-11-25 13:17:43 | 只看该作者 回帖奖励
  首先我想说在中国请不要使用drupal,也不要学习drupal,真的,最近刚刚用drupal做了一个商业网站, drupal不适合中国绝对不是危言耸听。
  好,现在开始正文,我会从不仅仅是开发角度,而是从项目管理,流程,开发,测试,上传同步。等各个角度drupal的噩梦般的缺点。也许文字较多,希望有人能耐心看一下。我会把开发中的问题留到最后讲,因为实在是太多问题了。我们程序的经理一句话总结drupal只适合1个人开发。
1、流程问题:我是产品经理, 作为普通的web项目流程 一般为, 需求确立->做出设计(psd)->完成前端(html)->编程阶段(php)。 而drupal的流程为 需求确立->做出设计(psd)->drupal编程阶段(php)->完成前端html。 这样的流程直接导致了很多问题:
问题1:psd到html有一个切图的流程,大家都知道现在psd做出来的设计搞到html总会有一些差异。字体大小,图片大小,和一些效果。例如每行放多少个字,图片的尺寸比例都是需要等到html做完后微调确立的。而用drupal的流程没有切图这个步骤,所有的html都是drupal的view生成出来的,结果导致这个psd和html差异的问题被放大,需要更多时间去调整。
问题2:由于html是view生成出来的,垃圾代码非常多,是普通手工写的代码3倍以上。可读性非常差,是做html人的恶梦。而且一些效果很难做出来(圆角就不要想了,直接用一个大背景算了)
问题3:由于流程 做出设计(psd)->drupal编程阶段(php)->完成前端html。 每次改动view生成的html的ID都会变化,然后html的css就要重做。举个例子:例如传统的方式html做好后,原来是一行显示的是城市改成显示省,城市,区后 html和css不需要该任何东西。因为css控制的一行的文字。 而drupal用view改了之后每个node都会生成span,需要重新调整样式给新建的样式,而且如果是更改了某个块, 块ID变了,css就没了,还要重新调整css里面的id, 做html的人不知道要做多少次重复的劳动。而且由于html是view生成的,从html里面的n多垃圾代码找到一个可以用于写css的ID真比自杀还难受。
总结,流程的不同直接导致了drupal是做html人的恶梦
2、成本问题:在中国找到一个会html的不难,找一个会php的也不难,而且成本也不高。 即使找一个会做html css 并且会php也不是很难。 那么如果用drupal开发会变成什么样呢?你必须找一个需要精通html+CSS+JS+php的人,而且缺一个不可(注意是要精通)。而且还要同时找精通drupal的人,这样的人在中国能找到吗?
  为什么呢? 首先drupal的view绝对不是仅仅懂html就能掌握的,view是给精通sql的程序员用的,所以不懂程序的人,或者不精通程序不精通sql的人请不要学习drupal了, drupal看似一个cms系统,但实际drupal是一种语言,一个操作系统。 没有3年以上的大型开发经验的人根本无法掌握。 (就连开发drupal的都无法掌握drupal)
  我们开发这个项目时,从德国总部请来了drupal专家,而且还聘请了中国drupal社区的二号人物(一个法国人),而且我们前端都是可以自己写js的人,这些的人成本有多高。关键是即使是这样我们还是无法降服drupal。 
总结 drupal是老板的恶梦。
3、从现在开始谈开发问题。

  • drupal 的view 说白了就是一个简单的sql查询工具。 一个程序员可以轻松手写sql达到目的,而用view可能怎么写也达不到目的,做同一个逻辑增加很多时间成本,而且关键很多都达不到。 还有就是定位的pannel只能往顶部或底部插入,不能往中间插,如果当初需求没定好想改,那就改整个页面的布局吧。而且html的样式还要重做。 一个开发同事原来会html,会js,会sql,现在做了drupal后被强制变成了viewer,只会写view了,html,css代码也不会了,sql不会了, 整个人的职业发展终结了。 
  • 传值问题,例如js 与 flash之间传值, 现在变成了 view,js, flash, 之间传值 本来就不是很容易的问题现在又多了一成, 很多东西时间需要3倍以上时间用了很多办法才能做到。 
  • 多人开发问题, 普通流程都是用svn控制,而用drupal开发很多逻辑都是直接储存在drupal的数据库,出了问题根本不知道是哪出了问题,是谁出了问题。 
  • 性能问题,不多说了,垃圾的html代码,加垃圾的view的逻辑, 加上复杂的传值过程,性能要好就真是见鬼了。 
  • 中文问题, 很多内置对英文的处理,例如截取,断句,等等都是很好功能,但是对于中文都成了bug。(那个法国人正在开发drupal7的适合中文的模块) 
  • 文章分页功能,都需要自己开发,很多bug。再加上多人开发问题,出了问题不知道问题在哪,如何解决。 
  • 点击链接新开窗口打开,view中没有这个功能,真的,真的没有,目前我们用js实现的。 
  • js浏览器IE下兼容性问题,drupal会把js都整合到一起,无解,好了ie坏了firefox。 
  • cck问题, cck也是drupal重要部分,但是就连2级联动这种功能都没有,现在国内哪个cms和论坛没有类似cck建字段的功能。 最基本的功能都要自己开发,而且关键是自己开发很危险。说不定改了什么drupal核心的东西系统就崩溃了。 
  批量上传图片问题,很多插件看似没有问题,但是不支持中文文件名,而且我们图片的数量级是15000张,数量级一多,一大堆问题。
4、最最重要的问题:drupal非常不稳定,或者drupal没有人能控制得了,现在drupal给我的感觉越来越像终结者里的天网。我们有开发drupal的专家,都控制不了。 举例说明几个问题,

  • 内存泄露问题,在开发的时候我们曾经每5分钟重启一次服务器,不重启过一段时间服务器远程都连不上了,只能手动去按服务器上的按钮重启。 
  • 有时候只改css的文件的时候样式都改不过来,即使已经清楚了所有服务器的缓存,drupal的缓存,和浏览器的缓存, 
  • drupal自己把数据库回档了2次,本来我们都已经改好了功能,但却回档到某个版本,因为都是纯在在drupal的数据库里,根本无法找到问题所在,只好重做一遍。 而另一次是在切换域名的时候,也是数据丢失。 (drupal有自我修复功能?) 
  • drupal 在我们切换域名的时候,强制把mysql服务器关闭了,不知道为什么,我们查看了mysql的日志,也不知道什么问题,很灵异。 
  • 虽然有比较好的缓存系统,但只对访客有效,对于注册用户来说居然毫无作用,其中还有很多很多问题, 我只能想起什么写什么了, 总之 drupal是程序员的恶梦, 是项目管理的恶梦,我们无法控制项目,是drupal在控制我们。不知道什么时候出问题,不知道问题出在哪,不知道如何解决,都是走一步看一步。及时备份数据库吧。 
  我非常同意我们开发经理的说的一句话,drupal只适合一个人开发,(我们那个德国专家说的是一个viewer对应一个htmler,2个人开发)
  那么我在想,drupal的定位是什么,如果是定位于类似supersite,织梦,这种不懂编程也能快速建站用的人,drupal显然不适合, 那么给程序员的用的,把程序员强制了变成了一个viewer,终结了程序员发展,也不适合,开发大型的商业网站,不稳定,不适合多人协作,也不适合,那么drupal到底适合做什么呢? 所以我的结论就是drupal不适合中国。真的不适合。
来自:http://drupalchina.org/node/8045
  
 


来自 http://linux.cn/thread-1469-1-1.html
普通分类: