Flex为什么要"NoMVC"
2013-03-05 16:18
218 查看
Flex为什么要MVC?
1、对不同用途的代码进行分类管理?降低耦合?
2、分类后的每个代码程序规模都不大,使得代码容易懂?
3、防止修改代码的时候把不该修改的地方误改了?
4、提高生产效率(代码少?容易编写?)?
5、代码易读,易懂?
6、代码容易单独调试?
7、减少重复代码?
8、代码运行性能好?
9、易维护?
--------------------------------------------------------------------------
1、MVC框架(如Cairngorm 、PureMVC)通过使用各种设计模式,达到对代码进行分类和解除紧密耦合。这个目的是可以达到的。
但是,对于展示层代码(Flex)是否有这个必要?
Flex代码粗线条来看,有几种处理内容:
(1)画面代码(窗体,按钮等可见组件)
(2)操作画面的代码(对组件的控制:如改变状态,取得组件的输入数据,为组件赋值等)
(3)编辑画面上的输入数据(比如进行数学计算,业务逻辑判断)
(4)与后台服务器的交互
(1)和(2)的关系都是紧密的。即便物理上把代码分类,这些代码也很少能够重用,所以没有必要分来。放在一起可以使得代码易读,易懂 。
(3)是要通过(2)来获取数据画面上的输入数据的,关系也是很紧密的。使用函数库或功能类库就能达到从功能上对代码进行分类,并代码重用 的目的。
(4)也是可以通过函数库或功能类库就能达到目的,并代码可重用。
2、MVC分类后的代码程序会小?
代码过于集中从而变得体积庞大,是否需要拆分,如何拆分,这和MVC没有一毛钱的关系
3、MVC不能解决误改的问题。
如果大家做过对日软件开发,应该知道,对于代码的修改,特别是已经交付使用的代码,其修改是需要进行严格验证的。
通过对修改前后代码的Diff确保其只修改了该修改的地方,防止误操作。
通过充分的测试和严格的验证确保其修改符合原始意图。
防止误改是通过工程手段来进行的,而不是通过MVC。
(敏捷开发方式是否如此不得而知)
4、地球人都知道,使用MVC会增加很多代码(工作量)
5、这可是仁者见仁智者见智的事儿(个人觉得只要熟练了,都能看懂。不过新手可就感受不同了,MVC自然需要多些时间成本)
6、MVC分类后的代码一部分可能容易进行单独测试,而另一部分由于缺少上下文的支持变得难于单独测试。
(把原本应该放在一起的代码分开来测,有这个必要吗?)
你做过这种分来单独测试的工作吗?
7、恰恰相反,重复代码会多
MVC框架对程序结构进行了硬性约束,代价是降低了程序的灵活性。
MVC后,各个部分的代码过于独立,缺少能够承上启下环境,只能借助于第三方数据载体来传递数据。
Cairngorm 中同一个画面的不同command 会存在一些重复代码吧。
8、MVC框架隐藏了太多的细节(如类型转换,类型匹配,函数调用,参数传递,事件收发等等),必然影响性能
9、同5
-------------------------------------------------------------------------------------------------------
我认为不使用MVC,而原生态地使用Flex是非常值得推荐的做法。
如何提高代码重用? -----函数库
如何防止误改? -----工程规范控制 + 质量控制
如何规范代码的编写?----完善的规则 + 标准代码编写范例 + 质量控制
思考一个问题:
我提倡尝试“NoMVC”,是否仅仅为了NoMVC而NoMVC?是否有充足的理由认为应该NoMVC?
反过来,如果使用MVC,是否仅仅为了MVC而MVC?是否有充足的理由认为应该MVC?
曾经有人质疑我们是否先入为主地认定:使用框架就是好,不是用框架就不好。
无论主流是什么观点,都要避免盲从。
转自:http://blog.csdn.net/tiangej/article/details/7096875
1、对不同用途的代码进行分类管理?降低耦合?
2、分类后的每个代码程序规模都不大,使得代码容易懂?
3、防止修改代码的时候把不该修改的地方误改了?
4、提高生产效率(代码少?容易编写?)?
5、代码易读,易懂?
6、代码容易单独调试?
7、减少重复代码?
8、代码运行性能好?
9、易维护?
--------------------------------------------------------------------------
1、MVC框架(如Cairngorm 、PureMVC)通过使用各种设计模式,达到对代码进行分类和解除紧密耦合。这个目的是可以达到的。
但是,对于展示层代码(Flex)是否有这个必要?
Flex代码粗线条来看,有几种处理内容:
(1)画面代码(窗体,按钮等可见组件)
(2)操作画面的代码(对组件的控制:如改变状态,取得组件的输入数据,为组件赋值等)
(3)编辑画面上的输入数据(比如进行数学计算,业务逻辑判断)
(4)与后台服务器的交互
(1)和(2)的关系都是紧密的。即便物理上把代码分类,这些代码也很少能够重用,所以没有必要分来。放在一起可以使得代码易读,易懂 。
(3)是要通过(2)来获取数据画面上的输入数据的,关系也是很紧密的。使用函数库或功能类库就能达到从功能上对代码进行分类,并代码重用 的目的。
(4)也是可以通过函数库或功能类库就能达到目的,并代码可重用。
2、MVC分类后的代码程序会小?
代码过于集中从而变得体积庞大,是否需要拆分,如何拆分,这和MVC没有一毛钱的关系
3、MVC不能解决误改的问题。
如果大家做过对日软件开发,应该知道,对于代码的修改,特别是已经交付使用的代码,其修改是需要进行严格验证的。
通过对修改前后代码的Diff确保其只修改了该修改的地方,防止误操作。
通过充分的测试和严格的验证确保其修改符合原始意图。
防止误改是通过工程手段来进行的,而不是通过MVC。
(敏捷开发方式是否如此不得而知)
4、地球人都知道,使用MVC会增加很多代码(工作量)
5、这可是仁者见仁智者见智的事儿(个人觉得只要熟练了,都能看懂。不过新手可就感受不同了,MVC自然需要多些时间成本)
6、MVC分类后的代码一部分可能容易进行单独测试,而另一部分由于缺少上下文的支持变得难于单独测试。
(把原本应该放在一起的代码分开来测,有这个必要吗?)
你做过这种分来单独测试的工作吗?
7、恰恰相反,重复代码会多
MVC框架对程序结构进行了硬性约束,代价是降低了程序的灵活性。
MVC后,各个部分的代码过于独立,缺少能够承上启下环境,只能借助于第三方数据载体来传递数据。
Cairngorm 中同一个画面的不同command 会存在一些重复代码吧。
8、MVC框架隐藏了太多的细节(如类型转换,类型匹配,函数调用,参数传递,事件收发等等),必然影响性能
9、同5
-------------------------------------------------------------------------------------------------------
我认为不使用MVC,而原生态地使用Flex是非常值得推荐的做法。
如何提高代码重用? -----函数库
如何防止误改? -----工程规范控制 + 质量控制
如何规范代码的编写?----完善的规则 + 标准代码编写范例 + 质量控制
思考一个问题:
我提倡尝试“NoMVC”,是否仅仅为了NoMVC而NoMVC?是否有充足的理由认为应该NoMVC?
反过来,如果使用MVC,是否仅仅为了MVC而MVC?是否有充足的理由认为应该MVC?
曾经有人质疑我们是否先入为主地认定:使用框架就是好,不是用框架就不好。
无论主流是什么观点,都要避免盲从。
转自:http://blog.csdn.net/tiangej/article/details/7096875
相关文章推荐
- Flex为什么要"NoMVC"
- Flex为什么要"NoMVC"(再)
- 关于"no declaration can be found for element 'mvc:default-servlet-handler"的问题分析
- django Warning: (3135, "'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes
- ORA-8103 "object no longer exists"错误
- Erlang 编译时出现"no such file or directory" 与 当前工作目录问题
- flex 的反射要事先声明.......为什么?
- pyhton 安装pip 以及 numpy (解决python:ModuleNotFoundError:No module named "numpy" 等类似缺包问题
- android 打包 /${zipalign}" error=2, No such file or directory
- Android异常:Unable to resolve host "...": No address associated 错误 解决方案
- cocos2d-x, protobuf, no config.h, #error "No suitable threading library available."
- Spring : No mapping found for HTTP request with URI in DispatcherServlet with name "..."
- 通过jquery dialog为什么提交不了form表单 和 $("#Form").ajaxSubmit(options) is not a function 的原因
- Do not set "root" as "NOPASSWD" in sudoers file
- "No target device found."——Android Studio真机测试中遇到的问题
- dxtrans.h": No such file or directory
- ASP.NET MVC 扩展之 NoCacheAttribute
- Asp.net MVC 示例项目"Suteki.Shop"分析之---安装篇 推荐
- Asp.net MVC 示例项目"Suteki.Shop"分析之---Controller
- JAVA: 为什么要使用"抽象类"? 使用"抽象类"有什么好处?