写java程序的程序员,需要有重构知识和计算机底层硬件知识

最近在一个项目中,惊讶的看到了无比混乱的代码。1方法长度600行以上,结构无法洞见,逻辑几乎看不见。

这样的方法造成初级人员基本不敢动代码,组长干废2个。项目开发完全失控。

本人,经过经过对代码进行进行重构发现,重构对现有的代码是有极强的优化能力。

对于杂乱无章的代码,对于业务功能堆叠的冗长方法。经过一些一段时间的重构,发现以下经验值得分享。

1、重构从最细节开始。保证同一逻辑的正确性和唯一性。提取硬编码为常量,统一系统的底层逻辑。

2、拆分重构大方法,将方法按功能进行区分重构。把系统要干的事情按模块,业务进行罗列。每一个步骤干的事情,重构为一个方法,进行面向对象设计。实现顶层顶层设计,对混乱代码进行翻译重构。

3、对于相同的逻辑。提取公共逻辑代码。使用重构思想和Eclipse。进行重构。相同逻辑的方法,只保存一个。统一系统逻辑。

4、对系统存在诡异的事情,需要进行逐个跟踪,检查代码要干什么事情。并进行DBUG,进行逐步确认每一步骤的代码是否在正确的做事情。

    在重构的过程中,也发现了,很多初级人员,存在一个问题就算,本身的代码毫无逻辑。写的代码很随意。一件事情,可以复杂着做。一步可以搞定的事情。应该尽量做到极致。这些随意的,随业务的代码犹如风中的树叶,飘来飘去。同时也如同乱麻缠来绕去。在这里要强调一点就算:写代码要充分利用代数知识,对代码逻辑进行换算,化繁为简。

程序是一个精密的逻辑推演。容不下太多随意的代码。行云流水,天马行空的思维。这些都是离散的想象,和机器连续的逻辑结构不是同一个世界。

写代码,必须做到每一个微小代码都算确定的,可执行的。结果可以预期和确定。否则无数个不确定,堆叠到无法堆叠的时候,到最后就算项目逐步失控,直至完全不可控。

关于微小方法的理解,为什么要拆分大方法的一点感悟,这就涉及到计算机的体系结构知识。超大方法的局部变量会大概率增加,造成cpu的寄存器不够用。影响CPU 执行效率。且大方法占用硬件Cache空间。计算机系统存在预加载机制,每一个代码执行都算PC指针。如果每个方法写的太大,一段代码被各种细节实现嵌套,填充。会造成Cache失效。程序的局部原理被破坏。造成预加载机制失效。这就完全不利于程序在CPU 中执行。每一个逻辑要尽量简单。减少逻辑执行的影响因素。

编写代码不能脱离底层硬件知识。只有有了解过汇编语言的。才能明白代码三怎么执行的。才会对上层代码有规约。计算机的专业素养也就体现这些方面。

最后建议初级开发人员应该做到:

1、了解计算机体系结构之所,编译和汇编等相关知识。

2充分利用代数知识,数学原理进行,化繁为简。

3对每一个行代码,每一个方法,都进行逻辑检查。确保每一行代码都是有逻辑的。且是确定正确的逻辑。

4、使用参数变量前空指针判断。减少异常。

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/kerlais/blog/2875680

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值