重构总结(二)

经历一个多月的时光机房重构个人版终于结束了,这次重构更深刻的理解了面向对象设计,分层设计的好处就在于我们可以重复的利用代码,因为每个功能都是分开的,它们之间没有密切的联系,耦合性很低,这样我们以后就能很好的进行维护,而不会牵一发,动全身。下面就是我具体的一些收获总结。

一、多用设计模式

一开始的时候我就用了抽象工厂+反射和模板模式,后来验收的时候师傅说太少了于是乎就多加了几个,总的下来应该是6个,除了上面两个,又加了外观、职责链、策略、单例等模式,对设计模式又理解了很多,所以这次机会我们要好好的把握,多加写设计模式,这是我们面向对象设计的第一个软件,也是最全面的一个,能实现多少就努力的去尝试。

二、用EA巧画图

软件设计就是代码未动图先行,一般就是先是原型图,这个之前的博客中也有提到,这里主要说下EA,这个工具感觉挺好的,我们自己要善于利用啊,给大家推荐一篇博文以供参考:http://blog.csdn.net/xiaoxian8023/article/details/8276047

三、vs使用小技巧

听师傅说现在公司开发用的就是vs,这么好用为什么不用?这次重构了解了很多关于vs使用的小技巧,比如方法注释的时候只需要连续打出三个单引号就好了,还有修改类模板,当新建一个类的时候自动添加注释,这些都是我们应该掌握的,下面还有一些重构中可能会常用到的:

1、快速定位未完成的代码

在未完成的代码前注释“//TODO:+自己所需加的注释”。

选择“视图”→“其他窗口”→“任务列表”或者快捷键“Ctrl+Alt+K”即可。

2、存储和调用自定义代码段

首先将“工具箱”固定,然后选中要存储的代码,然后拖动选中的代码到工具箱中,工具箱会存储刚才被拖进去的代码段,最后双击修改一下被拖进去的代码名字即可。调用的时候,只需点击工具箱中的目标代码段,拖动到指定位置即可。

3、插入系统自带代码段

在这里主要说的是#region和#endregion,可以手写出来,也可以自动添加:

“编辑”→“IntelliSense”→“插入代码段”,或者快捷键:Ctrl+K,Ctrl+X

4、整理代码快捷键

快捷键为:Ctrl+K,Ctrl+D

四、对数据库的利用

我们要会用并且熟练掌握数据库操作知识,像前触发器、后触发器、存储过程、视图、函数,还有一些高级查询语句好好掌握,这样我们会很省时省力,利用这次机会再好好的学习数据库吧,还记得师哥给我们说的产生死锁的可能吗,大家可以多查查多试试。

五、编码规范

我觉得程序员的专业素养其实很多体现在编码的规范上,我们在设计的时候要注意编码规范,一个好的设计不是说多高大上让多少人看不懂,而是让人一眼看去就明白了。这就需要我们多注意规范,多看一些专业方面的知识,时刻提醒自己我们可是专业的啊!

六、学会使用专业工具——MSDN

一开始不理解反射是怎么回事,上网查了很多说法,但是很少能有说明白的,这个时候就要用到我们的专业工具MSDN,下面是我自己的反射编码和MSDN的讲解。

Assembly 类

抽象工厂+反射实现各种功能,具体格式如下:

Private SharedReadOnly AssemblyName As String = "DAL"
    '声明程序集的名称
    Private Shared ReadOnly db As String =ConfigurationManager.AppSettings("DB")
    '读配置文件,连接相应数据库

    ''' <summary>
    '''创建一个UserLoginDAL,用户登录实例
    ''' </summary>
    '''<returns>返回IDAL.IUser的一个接口变量</returns>
    ''' <remarks></remarks>
    Public Function CreateUser() As IDAL.IUser
        Dim className As String = AssemblyName+ "." + db + "UserLoginDAL"
        '定义类名初值为DAL.WorklogDAL
        Dim iuser As IDAL.IUser
        '定义一个接口
        iuser =CType(Assembly.Load(AssemblyName).CreateInstance(className), IUser)
        Return iuser
    End Function

但是一直对Assembly类不是很理解,查阅csdn方才明白,解释如下

当然也有很多时候我们的MSDN说的云里雾里的,但是这就像字典,它可能是更专业一些的资料和说明,很多是英文的说明,当然不是很难,我们都能看懂,但是要是看翻译的可能就会把你带到误区,所以我们还是尽量和专业标准靠近的好。

七、站在巨人的肩膀上,而不是趴

我们重构中有很多问题,但是我发现我们遇到的问题都能在网上查到,并且很多都是提高班的师哥师姐,这说明一我们没有走弯路,二我们的成长可以更快。这不是说我们直接把代码搬过来套用,而是理解逻辑,有不懂到懂得过程,这会提高我们的效率,但是如果是直接照搬那可就得不偿失了,大家不要错过这一次学习的机会才是。而且听师傅说以后实习过程中我们也会遇到很多问题,那时候真的是完全靠自己了,不可能什么都问别人吧,多锻炼自己的自主学习能力,多动脑子勤动手,久而久之我们就会养成一种不懂就查的好习惯,也会让自己接受新知识的能力更强。现在科技日新月异,我们必须能很快的掌握新知识新技能才不会被时代落下啊,所以要做到,站在巨人肩膀上。

八、艺术编程,代码如人生

编程就是没有你做不到的,只有你想不到的,工具就在你手中,你想怎么设计就怎么设计,但是如何更好的设计那才是关键。乔布斯不会编程,但是他有很多好的想法,好的构想才让他成为科技之父,只会编码不会构思的那是码农,又会编程又会构思,那可就超过乔布斯啦!换到我们生活中也是一样,为什么有的人把自己的生活规划的井井有条,高效轻松,而有的人却忙忙碌碌,却一天没有什么作为。代码如人生,时常把两者结合起来,我想我们就会爱上编程了。

每完成一个新的项目就会有很多收获,自己又上了一个台阶。其实我们都在慢慢的蜕变,从一个菜菜鸟变成菜鸟,终有一天会变成大师。我们能做的就是踏踏实实完成每一个项目,认认真真的做好每一个总结,这些都是我们宝贵的财富啊!

时间: 2024-10-11 22:23:57

重构总结(二)的相关文章

异常处理的设计和重构学习二

[一] Exception异常--->意思是例外.一:异常处理机制代码和程序源代码放一块坏处1)-->逻辑代码和错误处理代码放在一起,降低程序的可读性                                                                     2)--->程序员在编写程序时考虑的例外情况多,对程序员本身要求高二:异常机制-->当程序出现错误,程序如何安全退出的机制.                                java的

关于重构(二)

最近在看<重构改善既有代码设计>这本书,有些感悟分享给大家!!此感悟均自己瞎想,说的不对请见谅!! 这本书我已经看到第6章了,前5章可以简单的总结为:“为何重构?怎么重构?(重构的方法.原则)” 书中提及“事不过三.三则重构”,意思就是一个方法.函数用过3次或是多次就应该考虑重构了. 何时重构? 添加功能时:因为在某个功能基类可能在多个地方被用到,但客户有了写的需求,需要添加新的功能,但是你又不确定在基类中修改会不会影响其他的功能点,此时就应该重构. 修补错误时:这个情况和上述情况差不多,在修

说说什么是重构(二)重构的过程

序 上一篇文章主要是说了说什么是重构,重构都在什么情况下开始.而这篇文章,则主要是讲讲重构的过程中,需要注意哪些东东.还有就是如何进行重构. 背景 说到底,重构无非就是为了让代码更加优雅,更加简练,更加高效.重构的结果就是找到一个平衡点,使得项目不仅能够稳定的运行,还能够很容易的被程序员理解,以至维护起来不用那么辛苦.那么,下面就说说重构过程中应该注意哪些事项,以及如何进行重构. 建立测试体系 如果你想进行重构,首要前提就是要有一个稳定.可靠的测试环境.作为开发人员,大部分的时间不是消耗在编写代

排球计分程序重构(二)

数据库的设计 1.CompetitionScore表 用于记录总比分 比如3:0 3:1这样的大比分 字段: Id HomeTeamId--主队Id GuestTeamId--客队Id HomeTeamScore--主队比分 GuestTeamScore--客队比分 2.TotalScore表 用于记录回合比分的表 比如24:22这样的每一回合的比分 字段: Id CompetitionId--比赛Id.与总比分的Id值相同,如果一场比赛有五回合那么五条记录的CompetitionId与总比分的

【Java重构系列】重构31式之封装集合

2009年,Sean Chambers在其博客中发表了31 Days of Refactoring: Useful refactoring techniques you have to know系列文章,每天发布一篇,介绍一种重构手段,连续发文31篇,故得名“重构三十一天:你应该掌握的重构手段”.此外,Sean Chambers还将这31篇文章[即31种重构手段]整理成一本电子书, 以下是博客原文链接和电子书下载地址: 博客原文:http://lostechies.com/seanchamber

网络框架重构设计

一.背景 网络管理层是各上层业务都要用到的层级,为提供更高效率.更高质量的服务,需对网络服务层进行重构. 二.重构目标 1.提供连接管理 在App整个运行过程中,始终向上层业务提供两条有效的长连接(云端连接和路由器连接),并支持在网络断开.心跳失败后的重连机制. 2.自动登陆(已实现) 在长连接重建后, 自动登陆服务器. 3.自动同步(已实现) 在长连接重建后.并自动登陆服务器后, 自动同步本地信息到云平台/路由器. 4.网络服务代理层RemoteProxy RemoteProxy作为对上层业务

设计模式之美学习-重构

为什么要重构 重构是时刻保证代码质量的一种手段,避免代码腐化到不可维护的地步,同时也是避免前期过度设计.优秀的产品都是迭代出来的,我们不可能提前预知未来需求,所以重构也是无法避免的. 重构的二种方式 大型重构 对 系统.模块.代码结构.类与类之间的关系等的重构,重构的手段有:分层.模块化.解耦.抽象可复用组件.此类重构会对代码的改动比较大,影响比较深. 比如我们的代码中有很多if else 判断 我们重构提取一个抽象 然后根据条件创建不同的处理类 小型重构 对类.函数.变量等代码级别的重构,比如

Hibernate之API初识及增删改查实现

声明:关于hibernate的学习.非常大一部分东西都是概念性的. 大家最好手里都有一份学习资料,在我的博文中.我不会把书本上的概念一类的东西搬过来.那没有不论什么意义.关于hibernate的学习,我主要是通过演示项目让大家加深一些概念的理解,同一时候,也是为了让大家深层次的理解hibernate.而不仅仅是单纯的停留在概念上,假设仅仅是单纯的理解一些概念性的东西.到最后你们肯定会一无所获.并且过段时间就会忘记.所以以后的hibernate的学习.希望大家多看下演示项目.下载下来部署上演示看看

bokeh-scala

使用bokeh-scala进行数据可视化 目录 前言 bokeh简介及胡扯 bokeh-scala基本代码 我的封装 总结 一.前言 最近在使用spark集群以及geotrellis框架(相关文章见http://www.cnblogs.com/shoufengwei/p/5619419.html)进行分布式空间地理系统设计(暂且夸大称之为地理信息系统),虽说是空间地理信息系统但是也少不了数据可视化方面的操作,所以就想寻找一款支持大数据的可视化框架,网上查阅半天发现bokeh不错(其实是老板直接指

构建之法阅读笔记六

今天看完构建之法,开始写最后一篇感想,在开始写对构建之法这本书的感想之前,我想先写一下对今天软件工程概论课上老师讲的话的一些感受.今天上课一上来老师就说我们离“人”还差很远,在听完之后发现还真是这么回事.那么,人是什么,人分为做事的人和不做事的人,而仅仅当一个做事的人就可以了吗?当然不行,做事的人又可以细分成做真事的人,做假事的人和假装做事的人,你想当哪种人呢? 言归正传,今天看了构建之法中有关软件发布这一部分,联想到自己团队也要发布bata版本,感觉还是应该仔细看一下的.在软件生命周期的最后阶