|
我用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做产品 |
评分
-
查看全部评分
|