用户
 找回密码
 入住 CI 中国社区
搜索
查看: 4887|回复: 5
收起左侧

CI VS DRUPAL,谈谈我为什么放弃了CI

[复制链接]
发表于 2013-2-16 01:14:34 | 显示全部楼层 |阅读模式
我用CI有三年多了,这几年,CI一直是我做私活赚外快的利器,接过的项目各式各样都有,如企业站、下载站、视频网站、电子商务网站等等。每次接到项目,都是没日没夜的赶活,几乎所有代码都是自己一手写出来的,虽然CI有很多现成的库,但这些库一般先要学习怎么用,不满足需求还要改,同时,库也只提供了功能,界面、业务流程还要自己做,很多时候,用了这些类库,还不如自己动手从头写快。而且自己写的比较熟悉,下次的项目用到,也知道怎么改,很是方便。

但是几个项目做过之后,我越来越觉得自己一个人整出来的东西,实在是算不上成功的产品,呵呵,也许是能力有限吧。基本上都是建几个表,然后增删改查,没有架构,没有灵活性,没有可靠性,没有性能的考虑,几乎没有测试,说难听点儿,就是欺负客户不懂,凑合着上线了,自己还累得个半死。

而我对一个成功产品的定义包括以下几点:
1、性能,比如静态缓存、内存缓存等等,CI虽然提供这些库,但项目中鉴于工期,几乎从不考虑这些。对于SQL优化,也几乎很少考虑,两层嵌套foreach,最里面查数据库的代码经常用。项目越写到后面,越觉得恶心。
2、扩展性,一个好的产品,要在可能的情况下,尽量提高它的适用范围,要能被尽量多的项目使用到,而我的建表、代码都是依托现有项目的需求来写,扩展性很少考虑,因为增加扩展性就意外着要增加工作量,很多时候不愿意花费这些工作量。
3、安全性,好的系统,要能对付外在的安全威胁,鲁棒性要好,而我很多地方数据没有校验,有些URL,换一个不存的的ID,页面就会存在一堆错误提示。
4、要有一些必要有功能,任何一个真正成熟可用的系统,至少要有日志管理,网站报表,数据备份,计划任务,邮件列表,广告管理,SEO等功能,而这些,我在系统里却从来没做过。

由于赶工期太辛苦,而对自己写的东西,又越来越不满,最近我开始尝试使用成熟的CMS,而最终,选了DRUPAL。原因有:
1、开源,不存在版权问题。
2、文档丰富,国内资料相比较少些,但是英文资料很丰富。
3、扩展性好,有太多模块可以用。
4、学习难度虽然大,但是绝对值。
5、之前学过drupal,有一些基础

选了drupal后,我就把最新的项目拿drupal来试手,结果很轻松的,仅仅两个周之内,就把原计划自己开发两个月的项目做完了,在这过程中,遇到一些难点,有国内的论坛和QQ群可以讨论,国外有丰富的资料,基本上比较容易的就解决了。以后的项目,我想都要用drupal来做了。

总而言之,我不是说CI不好,drupal好,而是各有各的适用场景,CI适合做产品,一个人或者一个团队有计划的按部就班的做,慢工出细活,真正的好产品,是打磨出来的,不是赶出来的。而drupal适用于接私活赶项目,快速搭建,快速上线,方便。
当然有另外一种情况,想通过接一些项目,然后积累代码,做自己的产品出来,我个人觉得最好的思路是,如果项目需求与产品定位偏差较大,可以用drupal,而功能接近,则可以用CI来做。否则用CI摊的太开,就自己把自己拖死了。

一句话,drupal做外包,CI做产品

评分

参与人数 1威望 +5 收起 理由
Hex + 5 写的很好

查看全部评分

发表于 2013-2-17 11:17:31 | 显示全部楼层
CMS和框架的对比,当然是CMS考虑的更周到,做起项目更快了。
发表于 2013-10-27 19:09:28 | 显示全部楼层
哎,不在一个层级的东西也去比什么?
tcp协议跟http协议你怎么去比?

真有想法,可以把平时做的一些 CI 功能性的东西抽象出来,一边下次重复利用。
当然直接使用开源的东西,不只是 drupal ,某些情况下是很省事,首先需要你自己站在足够的高度去认识这些开源产品。
发表于 2014-3-6 13:16:59 | 显示全部楼层
要比应该是ci 跟durpal 的开发框架symfony2 比才对啊。
(尽管其实这也是两个极端框架了,一轻一重)
发表于 2014-3-17 09:48:39 | 显示全部楼层
嗯,我比较同意楼主的观点。细致活用CI,快速出活用现成的CMS。
顺便问一下楼主,Drupal做前台模版的时候怎么做,我怎么觉得特别不方便呢。总是感觉没有DEDE灵活。若是用Drupal做一个门户形式的首页啥的,感觉很费劲。是不是我还没入门呢?
发表于 2014-8-4 15:27:51 | 显示全部楼层
这就是经验啊,上手私单,肯定要现成的cms做,分类,文章,缓存,权限,用户,静态页都是现成的,肯定用现成的系统做啊~~~

本版积分规则