Home Tags Posts tagged with "编程习惯,基础,代码大全,java"

编程习惯,基础,代码大全,java

0 52

编程并不是一件难事,但是如何让编程更优雅,的确需要一些技巧。

在查找资料以及做leetcode题目的时候,我常常发现自己的代码十分臃肿,不易阅读,不易调试,因此我决心改变自己的编程习惯,通过《代码大全》这本书,使我受益良多,因此写下这篇博客。

变量定义

隐式声明(使用未声明变量时,编译器会自动为你声明)

隐式声明变量对于任何语言来说都是最危险的特性之一;十分容易发生变量混淆,例如需要使用acctno,却错写成acctnum;

建议:关闭编译器的隐式声明;

建议:声明全部的变量;

建议:遵循某种命名规则;(如:employeeNum,employeeName)

建议:检查变量名;(使用插件或编译器自带)

优点:避免变量混淆,提醒自己更加清晰的使用变量;

变量初始化原则

不合理的初始化是产生编程错误的常见根源之一,掌握初始化原则可以节省许多的调试时间;

       建议:在声明变量的时候初始化;

            int a=5;

建议:在靠近变量第一次使用的位置初始化它;

                                   int  a=5;

                                   code using a;

                                   int b=10;

                                   code using b;

建议:使用final,const确保该变量初始化之后再被赋值;

建议:注意计数器和累加器的变量重置问题;

建议:在类的构造函数里面初始化该类的数据成员;

建议:检查是否需要重新初始化;(如双重循环里所使用的变量)

建议:一次性初始化具名常量;用可执行代码来初始化变量;

建议:打开编译器自动初始化变量;

建议:查看编译器警告;(哪些变量未初始化或未使用)

建议:在为变量赋值前,确保参数合理;

作用域

控制变量的作用域,将避免许多难以察觉的错误,并有助于调试代码;

 建议:使变量引用局部化;缩小攻击窗口(同一变量多个引用点之间的代码);集中引用点可提高程序可读性;

 建议:缩短变量的存活时间(变量存在期间所跨越的语句总数)缩小攻击窗口(同一变量多个引用点之间的代码);集中引用点可提高程序可读性;

 建议:循环里使用的变量尽可能靠近循环语句进行初始化

                      int  a=15;

                      while(a<20){
                       }

 建议:直到变量即将被使用时赋值;

 建议:相关语句放在一起;

 建议:把相关语句组提取成子程序;。建议:尽量使变量局部化;因为扩展变量作用范围更简单,但缩小变量作用范围则很困难;

持续性

绑定时间

把变量和它的值绑定在一起的时间,越晚的绑定时间越有利

                     编码时—使用神秘数值;

     编译时—使用具名常量;

                    加载时—从windows注册表,java属性文件等外部数据源读取数据;

                    对象实例化时—例如创建对象时绑定;

                    即时—每次创建对象时绑定;

数据类型和控制结构之间的关系

序列型数据翻译为程序中的顺序执行,由一些按照特定顺序使用的数据组成

选择型数据翻译为程序中的if和else语句,一组数据在特定时刻有且仅有一项被使用,相应的程序语句必须做出实际的选择;

迭代型数据翻译为程序中的循环 for,while,repeat,是需要反复进行操作的同类型的数据;

为变量指定单一用途

可以使变量的使用变得清晰可见,并且无二义性;

建议:每个变量只用于单一用途;

建议:避免让代码具有隐含含义;(避免混合耦合)

建议:确保使用了所有已声明的变量;