kkk 发表于 2010-5-31 17:59:22

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

如题,index()函数,300行的代码里面包括了20个if语句,10个foreach(还是循环嵌套那种),最糟糕的是所有SQL语句都写在控制器中的index()中......无语了,无语了。
不知道各位看官有没曾经遇到类似的代码?你们怎么重构的?

haohailuo 发表于 2010-5-31 18:34:56

所有的数据操作放在model中,能分离的独立功能尽量拆分为独立的方法

baiyuxiong 发表于 2010-5-31 19:03:35

这是完全不懂框架的写法么……

kkk 发表于 2010-5-31 19:12:32

回复 2# haohailuo


   问题是光是看代码我都觉得犯晕了......

kkk 发表于 2010-5-31 19:13:42

回复 3# baiyuxiong


   框架是懂,问题是没有真正理解MVC

yunnysunny 发表于 2010-5-31 20:40:44

回复 2# haohailuo

同意楼上说法,把数据库操作的函数封装在model中,然后在controller中调用这些函数。可以将判断条件进行分类,每一类写成一个函数,根据判断条件返回若干可能的结果,然后在controller中再依次调用这些函数。

Hex 发表于 2010-6-1 00:43:37

根据我的经验,很多代码都可以简化到一行语句,楼主应该再好好思考思考。

kkk 发表于 2010-6-1 09:01:37

回复 7# Hex


   高见,膜拜。

kevinstudio 发表于 2010-7-6 23:12:14

工作量巨大!我一般也是把代码先写到控制器里做测试,然后再放到MODEL中的。
当然代码比你这可少多了。楼主加油。。:)

eq75 发表于 2010-7-22 19:13:45

路過一個...
是太可怕了,如果能測試就好了(太理想化)。买了本好书《修改代码的艺术》,可惜这本书没遇到合适它的人,我没看,哈哈。
遇到这样的问题,最重要的是耐心。有了耐心才能静下心来想办法,怎么改才能不会出现bug。
页: [1] 2
查看完整版本: index()控制器接近2300行,而里面的index()近300行代码......