TW学习总结(三)
9月21日依旧是个充实的一天,上午程序猿老师让童鞋们限时完成三道代码。讲道理,当我完成第三道题时,我是还剩些时间的,于是乎,我沉浸在智商占领高地的喜悦之中无法自拔。然而,等袁老师来了,我才发现,我漏做了第一题,我诡异的手速于是就有了合情合理的解释,刹那间,我不禁老脸一红。
由于是限时编程,命名规范就没那么在意了,代码也没有认真的去想怎么重构。袁老师给我们总结了一些code small,下午给我们讲了三层架构和mvc。下面呈上干货。
Code review
1、Test setup
我们写的三个测试,都在new同一个对象,足足new了三次。显然,这违背了消除重复的原则。我们可以把创建对象的这段代码提取出来,放在测试运行之前,让三段测试共用一个对象,而不是每次new一个新的。
2、移动方法到正确的类中
有一个方法与其他两个方法功能有明显不同,但是他们都放在同一个类里,应该把他们分开存在对应的类中。
3、类名是名词方法名是动词
4、重构一次运行测试
如果重构完了没跑测试,那怎么知道自己的这次重构对不对。万一代码挂了,自己的升职加薪走上人生巅峰之路又多了一块小小的绊脚石了。所以,这个强迫症要养起来。
5、消除重复
6、分离职责
一坨代码不要写太多功能,如果有,它不好懂,也不好维护。请拆分它。
7、去除不必要的临时变量
补充:记得小步提交自己的代码
三层架构和MVC
三层架构
解释
UI(表现层):主要是指与用户交互的界面。用于接收用户输入的数据和显示处理后用户需要的数据。
BLL:(业务逻辑层):UI层和DAL层之间的桥梁。实现业务逻辑。业务逻辑具体包含:验证、计算、业务规则等等。
DAL:(数据访问层):与数据库打交道。对数据库进行增删改查操作。
MVC
解释
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。
通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。
view将指令发送给controller,controller完成业务逻辑后,通知model改变状态,model再将数据传给view。这个模型属于单向通信。
image.png区别
MVC主要用于表现层,3层主要用于体系架构,3层一般是表现层、中间层、数据层,其中表现层又可以分成M、V、C,(ModelView Controller)模型-视图-控制器。
MVC是表现层的架构,MVC的Model实际上是ViewModel,即供View进行展示的数据。ViewModel不包含业务逻辑,也不包含数据读取。