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

[控制器] index()控制器接近2300行,而里面的index()近300行代码......

[复制链接]
发表于 2010-5-31 17:59:22 | 显示全部楼层 |阅读模式
如题,index()函数,300行的代码里面包括了20个if语句,10个foreach(还是循环嵌套那种),最糟糕的是所有SQL语句都写在控制器中的index()中......无语了,无语了。
  不知道各位看官有没曾经遇到类似的代码?你们怎么重构的?
发表于 2010-5-31 18:34:56 | 显示全部楼层
所有的数据操作放在model中,能分离的独立功能尽量拆分为独立的方法
发表于 2010-5-31 19:03:35 | 显示全部楼层
这是完全不懂框架的写法么……
 楼主| 发表于 2010-5-31 19:12:32 | 显示全部楼层
回复 2# haohailuo


   问题是光是看代码我都觉得犯晕了......
 楼主| 发表于 2010-5-31 19:13:42 | 显示全部楼层
回复 3# baiyuxiong


   框架是懂,问题是没有真正理解MVC
发表于 2010-5-31 20:40:44 | 显示全部楼层
回复 2# haohailuo

同意楼上说法,把数据库操作的函数封装在model中,然后在controller中调用这些函数。可以将判断条件进行分类,每一类写成一个函数,根据判断条件返回若干可能的结果,然后在controller中再依次调用这些函数。
发表于 2010-6-1 00:43:37 | 显示全部楼层
根据我的经验,很多代码都可以简化到一行语句,楼主应该再好好思考思考。
 楼主| 发表于 2010-6-1 09:01:37 | 显示全部楼层
回复 7# Hex


   高见,膜拜。
发表于 2010-7-6 23:12:14 | 显示全部楼层
工作量巨大!我一般也是把代码先写到控制器里做测试,然后再放到MODEL中的。
当然代码比你这可少多了。楼主加油。。:)
发表于 2010-7-22 19:13:45 | 显示全部楼层
路過一個...
是太可怕了,如果能測試就好了(太理想化)。买了本好书《修改代码的艺术》,可惜这本书没遇到合适它的人,我没看,哈哈。
遇到这样的问题,最重要的是耐心。有了耐心才能静下心来想办法,怎么改才能不会出现bug。

本版积分规则