写代码,一定要对自己写的(维护的)每一行代码都进行深入的研究。写程序本来就是一个很细致的活儿,粗心大意和自以为是的猜测都是在给后人或自己挖坑。
简单的一个布尔值装箱,都有可能是bug的根源。
Code review的时候,发现一段代码如下:
Boolean isNeedProxy = (Boolean)threadLocalMap.get(ip);
return ( isNeedProxy == Boolean.TRUE ) ? true : false;
我的猜想是编程的人为了防止isNeedProxy为null,所以有了这段代码。
这里有个问题。如果存储的值是new出来的Boolean,那么这里的逻辑就是错的。
Boolean b = new Boolean("true");
Assert.assertFalse(b == Boolean.TRUE);
发现了这个问题,改正起来当然是比较容易的。
return isNeedProxy==null?false:isNeedProxy;
本来故事到了这里就结束了,但是,仔细想想,对于这种比较细微的代码级别问题,别人一样是很容易犯错的。还是应该把这个细微的东西封装起来比较好。
代码如下:
private Map<String, Boolean> map = new HashMap<String, Boolean>();
public void put(String key, boolean value) {
map.put(key, value);
}
public boolean getValue(String key) {
Boolean value = map.get(key);
if (value == null) {
return false;
}
return value.booleanValue();
}
分享到:
相关推荐
《重构:改善既有代码设计》是一本由Martin Fowler所著的经典IT著作,它详细阐述了在软件开发过程中如何通过重构来提升代码质量、可读性和维护性。重构是一种系统性的方法,旨在不改变软件外在行为的前提下,改进其...
重构__改善既有代码的设计_高清 绝对清晰
在描述中提到的"对经验模态分解后的各分量IMF进行重构代码,函数可直接调用",意味着这个压缩包中包含了一个名为"EMDchonggou.m"的MATLAB脚本文件,该文件提供了实现IMF重构功能的代码。用户可以直接运行这个函数,...
在IT领域,稀疏重构算法是信号处理和数据科学中的一个重要概念,特别是在压缩感知理论(Compressive Sensing, CS)中。压缩感知是一种革命性的理论,它表明,如果一个信号可以用较少的非零元素(即稀疏表示)来描述...
《重构:改善既有代码的设计》是一本由Martin Fowler撰写的经典软件工程书籍,其核心思想是通过一系列小的重构步骤来改善和优化既有代码的质量。在软件开发领域中,重构是一个重要的技术,它可以帮助开发人员提升...
在软件工程中,重构是一个至关重要的过程,它指的是在不改变软件外部行为的前提下,对代码进行结构上的改进,以提高其内部质量。重构的目的在于提高软件的可读性、可维护性和可扩展性,进而降低维护成本,提升软件的...
标题《重构_改善既有代码的设计-中文完整版PDF》和描述《重构_改善既有代码的设计-中文完整版PDF,Martin Flower大师经典》中提到的是一本由Martin Fowler所著的软件工程领域的经典之作《重构:改善既有代码的设计》...
总的来说,"Demo_CS_CoSaMP.rar"提供了一个用于实践和学习CoSaMP图像重构的平台,通过运行MATLAB代码,我们可以深入理解压缩感知的核心思想,以及CoSaMP算法如何高效地重构稀疏信号。这个DEMO是理论与实践结合的典范...
配电网重构是电力系统领域中的一个重要研究课题,它涉及到电力系统的稳定运行与经济效率。配电网重构的目标是在满足一系列约束条件下,通过改变开关状态,优化网络结构,以达到提高供电可靠性、降低运营成本、改善...
在本文中,我们将深入探讨基于Matlab的压缩感知(Compressive Sensing,简称CS)重构算法的实现。压缩感知是一种理论先进的信号处理方法,它允许我们以远低于奈奎斯特定理所要求的采样率捕获信号,并能恢复原始信号...
标题中的“用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构_源码.rar.rar”揭示了该压缩包文件包含的是与信号处理相关的源代码,特别是涉及了三种重要的信号分解方法:Empirical ...
这里提到的"top88_拓扑优化88行代码_99行_"是一个编程实现,可能是用某种编程语言(如MATLAB)编写的代码片段,其目标是简化和优化拓扑优化的计算过程。 原始的88行代码可能已经提供了一个基础的拓扑优化算法,但...