提升:抛弃七条不良编码习惯

简介: 提升:抛弃七条不良编码习惯
很多人错误地认为编码只是熟练手的事情,其实要成为优秀的编码人员就必须进行自我剖析,抛弃不良的习惯,展示自己优秀的编码能力。通常不良的编码习惯有很多种,这里列出7条编码者经常会犯的错误,提醒大家注意。

(1)自由格式的代码如果我们不从一个团队角度出发,而是从程序员个体角度去看问题:A项目的风格和B项目的风格迥异,甚至是在同一个项目的不同类中风格也不同,不用缩进,不添加注释,想加接口就加个接口,不想加就不加,我们要的是“自由,自由,还是自由”。—这不是一个成熟的职业者应该具有的,我们应该保持自己的代码风格,即使它是错的,也比没有风格要好。

(2)不使用抽象的代码这也算是IDE的便利性造成的习惯,一个业务类不进行抽象,直接进行编码,在需要修改时,要么依靠IDE批量重构,要么通过查找替换的方式重构,很方便,不是吗?而且,随着SSH的普及,“无抽象”编程进一步横行起来。要接口何用?想要修改的时候直接修改XML配置文件就可以了,要什么接口!系统间数据交互?序列化为XML传递,与接口何干?!这是一种非常拙劣的习惯,抽象的意义不在于编码,而是在于对业务的理解,接口是对业务宏观的描述,而不是实现代码。

(3)彰显个性的代码技术人员追逐最新的技术,这本是无可厚非的,但是新技术只能作为技术的一个方向,不适合立刻投入生产中,要知道一个项目的运行质量是远远高于代码质量的,不要为了一个新颖的API就在生产中尝试使用,不要做小白鼠。这里介绍一个“最小惊诧原则”(Principle Of Least Surprise简称POLS,或者Principle Of Least Astonishment简称POLA),其意是说要使用最常见的,而不是最新颖的功能。在编码时,应寻找最常用的方法来实现,比如,同样有两个方法都能实现一个算法,选择那个最常用的,而不是那个别人一看就惊呼“哇哦,算法这么牛”的,让普通人都能看懂的代码才是最简洁的代码。最小惊诧原则也同样适用于UI设计,当操作界面上两个元素冲突或重叠时,首选是那个不让用户感到吃惊的元素。

(4)死代码可能是忘记删除的代码,也可能是故意保留的类似“到此一游”的签名代码,这些代码按照正常的执行逻辑是不可能被执行到,但是在某些未知情况下它就是执行了,此时就会产生严重的影响。

(5)冗余代码写了一个实现类,过了N天后又废弃了,之后这个类就永久地保留下去了,没人知道它为什么没被删除掉。甚至有时候竟然还能在生产机上寻找到测试程序的身影,它的生命力可谓顽强呀!估计如果有一天将生产机移植到月球上,这段代码可能还能存在。曾经遇到过一个项目,项目中建立了单元测试机制,但在生产代码中还能看到main方法,谓之“测试方便”—删除它,它不应该在这里!

(6)拒绝变化的代码哲学上说任何事物都是在运动着的,但是我们有些代码却不遵循这一个规律,一个在JDK 1.1中就过时的方法还还能在使用JDK 1.6项目中存在,谓之曰“没有坏,就不要去修它”—该重构它了,它没坏,但它赖以生存的环境已经变了!我甚至还遇到过一个新项目还准备使用一个5年前的工具包(此工具包已经经历了3次大的版本变更),谓之曰“好用,没有什么Bug”,但不要忘记了,环境在前进,我们不跟随就只能落单—不会有人陪着我们找Bug,不会有人去修正,不会有人去做性能优化,我们能做的就是孤军奋战了!

(7)自以为是的代码这是我们编码的最大忌讳,认为自己无所不能,编码不会出现任何错误,于是不编写测试代码,或者测试代码只是为了应付质量检查人员,那等待我们的恶果就是系统上线后彻夜彻夜地修复Bug—自己排除自己埋下的地雷。自以为是还表现在对产品或工具的选型上,相信自己编写的工具类,而不是开源工具,宁愿自己写序列化工具,也不选择kryo或protostuff;宁愿自己写日期处理工具,也不选择Joda或date4j;宁愿自己写批处理框架,也不选择Spring Batch,这样是不行的!—相信天外有天吧,更多更好的工具等待着你去发掘。

摘自:《改善JAVA程序的151个建议》

目录
相关文章
|
7月前
|
安全 前端开发 PHP
采用PHP开发的医院安全(不良)事件系统源码 医院不良事件有哪些?又该怎样分类呢?也许这篇文章能给予你答案。
医疗安全不容忽视! 医疗不良事件有哪些?又该怎样分类呢?也许这篇文章能给予你答案。
64 1
采用PHP开发的医院安全(不良)事件系统源码 医院不良事件有哪些?又该怎样分类呢?也许这篇文章能给予你答案。
|
6月前
|
Java Python
编码之舞:从混乱到秩序的旅程
【6月更文挑战第3天】在数字世界的无限可能中,编程不仅仅是一种技术实践,它是一场思维与逻辑的舞蹈,是创意与结构的和谐交响。本文将带领读者穿梭于代码的海洋,探索如何将混沌的想法转化为清晰、高效的程序,揭示那些隐藏在平凡代码行背后的深刻见解和创造性解决方案。
|
7月前
|
项目管理
软件项目管理应从源头开始
软件项目的源头是软件产品本身
|
存储 Java
java内存机制详解,老年人也看得懂
java内存机制详解,老年人也看得懂
80 0
|
Java C语言
计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!
各位学弟学妹们好,作为稍微年长的我(岁月是把杀猪刀啊),今天就给大家补补课。 在大学里的,我们上的计算机专业课程一般都是像操作系统、编译原理、计算机组成原理、计算机网络这些理论课程,还有一些像C语言、Java、.Net这些可以实践的课程,甚至还有可能让你焊一个收音机,但是对于一些基本习惯却很容易被忽略,需要学弟学妹们自行摸索。
224 0
计算机教育中缺失的一课,劝学弟学妹们一句,一定要趁早补上,工作后会事半功倍!
|
人工智能 程序员
AlphaGo程序出BUG了——第四局观感
AlphaGo程序出BUG了——第四局观感
110 0
|
物联网 关系型数据库 定位技术
从真假美猴王谈起 - 让套牌车、克隆x 无处遁形的技术手段思考
标签 PostgreSQL , RFID , 物联网 , IoT , 套牌车 , 克隆车 , Wavelet , 图像相似度 , 传输加密 , 伪装 背景 西游记想必大家小时候都看过吧,其中有一集“真假美猴王”还记得吗? 假的美猴王简直是克隆的,和孙悟空一模一样。一开始菩提祖师、如来佛祖
4084 0
一段有毒的代码
import java.util.concurrent.CountDownLatch; public class TestNativeOutOfMemoryError { public static void main(String[] args) { for (int i = 0;; i++) { System.
1103 0

相关实验场景

更多