我的职场和代码重构

一,刚踏入职场与代码重构

项目已经开发到一定阶段会对代码的要求更高,对系统crash要求更严格。项目代码重构无非就是为了提高开发效益,为了稳定系统版本。 -- 项目重构好像在我第一份工作就似乎有听到个,那时候的我连一个协议都不会联调的时候,刚刚从学校毕业就去面试软件开发,那时候即是憧憬又是彷徨,项目经理安排的任务不知道该如何下手,甚至第二天去上班的勇气都没有了,当初以为自己能在学校写一点代码,可以几个月拼出一个项目就感觉自己牛得不得了,好像自己真的有什么优势一样,其实真正到了要给企业公司做事情的时候给感觉到压力特别大,毕竟是领着老板的工资,当初我记得项目经理面试我的时候,问我分配的任务能够完成吗?问我学习能力强吗?我面不改色的说我可以按时完成任务,我会积极主动学习,在我还没来及学习的时候问题就堆成山,面临这些问题我感觉每天我都需要加班,我得花一些时间去学习,自己吃透不会的知识点,一天一天过去,自己熟悉了整个项目,同时分配的任务也能按时完成,但是好景不长,因为没有大牛的带领,我一个人一直在已有的项目上迭代,导致项目代码冗余,很难维护现有的代码结构和扩展,刚好一期项目结束。项目经理就告诉我二期项目需要代码重构,我第一次听代码重构?我因为在之前自学都是习惯的去SEO,所以我就搜索什么代码重构。

二,认识代码重构

我作为一年多工作人,开始对自己产生了一些不满意的想法,原单位是一个独立岗位开发,android开发只有我一个人,对于自己开发能力和以后的一些规划产生了一系列的想法,我开始需要突破自己,提升自己的开发水平,就想到更大的公司,有一些团队一起开发,向他们学习一些经验,提升自己,这时候我就对项目经理说我需要辞职,发出邮件的10分钟他就找我谈话,因为邮件至发给他一个人,没有发给HR,他跟我聊了很多,对我即是肯定又是表扬的,还对我生活上的照顾,那时候我似乎忘记自己为什么要提辞职,过了两周我主动去找他说我决定了要走,然后到了腾讯SNG(也就是互娱平台)做的是道具商城项目,刚去又是接手别人写过的代码,我虽说有一年多的工作经验,但是在大神面前我依旧是班门弄斧,阅读他们的代码也就是不知所以然。过了几个月,产品已经发布上线了,感觉还是充满了挑战,因为大公司所以对代码和文档技术都是很有要求的,大公司做事情总是有合理的安排和布置,规范的流程,对项目要求更严格,领导提出需要代码重构,我又再次进入代码重构,这次我知道什么是代码重构,是对项目结构和代码的优化,代码解耦,对于我这个小菜来说  根本提升不了代码的性能和优化,我就看着大神重构的代码,代码没有重构的时候添加需求或者改动牵扯的class 太多。

三,代码重构的意义

我用自己的话来说,代码重构就是为了更好的写代码,写出稳定流畅的系统。 重构就是通过调整程序代码,但并不改变程序的功能特征,达到改善软件的质量、性能,使程序的设计模式和架构更趋合理,更容易被理解,提高软件的扩展性和维护性

四,如何代码重构

1、提取类/抽离方法   解除代码的冗余,提高代码的复用,提出公告的代码,这就是Java中体现的封装,因为平时习惯写代码为了赶时间,赶进度,考虑的是功能,没有考虑代码的质量。他类的成员方法的成员方法。这些方法也应该被迁移到合适的类中。

2,分离条件 

if( seat.equals("硬座")|| seat.equals("硬卧") ||seat.equals("软卧")||seat.equals("无座")) { 

if(ticket>0){

  System.out.print("出票成功,可以回家了");

}else{

  System.out.print("出票失败,继续在公司加班。。");}

   }

}

else { 

System.out.print("继续在公司加班。。");} 

重构

if(ticket>0&& !TextUtil.isEmpty(compareSeat(String seat))){

  System.out.print("出票成功,可以回家了"+compareSeat(String seat));

}


private String compareSeat(String seat){

String resultTicket = "";

if("硬座".equals(seat)){

resultTicket  = "硬座";

}

else if("硬卧".equals(seat)){

resultTicket  = "硬卧";

}

else if("软卧".equals(seat)){

resultTicket  = "软卧";

}

else if("无座".equals(seat)){

resultTicket  = "无座";

}

3、引入参数对象/保留全局对象 

在我做代码审查时发现另外一个很常见的情况 - 好几个参数被传入方法。问题主要与需要从已有方法中增加或者移除一个方法参数有关。在这种场景,建议将相关方法参数组成一个对象(引入参数对象),让方法传递这些对象而不是每个单独的参数。 

4,代码规范

a.图片用英文名
b.代码注释规范。 例如: int age;//年龄 
c.类名,方法名,变量名命名规范,要有意思,最好用英语。 
d.冗余代码要删除(废弃的方法、变量名,注释掉的代码快) 
e.新建文件夹要在相应的工程目录文件夹里面新建 



四、降低重构的风险

   把你重构的代码和其它程序隔离开,这样能让你更容易找到出问题的地方。 
   为你的重构活动准备测试计划,包括回归测试,功能测试,反向测试,负载测试,性能测试和用户确认测试。 
   投入全部精力来研究其中的逻辑,不要分心做其它事情。 
  在需要的地方使用设计模式。不要为了设计模式而增加设计模式。设计模式应该用在合适的时间和合适地方。




转载于:https://my.oschina.net/qxf323/blog/551601

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值