Don't code by confusing letters in the constants and variables

                    原创地址:   http://www.cnblogs.com/Alandre/  (泥沙砖瓦浆木匠),需要转载的,保留下! Thanks

The reasonable man adapts himself to the world;the unreasonable one persists in trying to adapt the world to himself. —萧伯纳

相信自己看得懂就看得懂了,相信自己能写下去,我就开始写了.其实也简单—泥沙砖瓦浆木匠

Written In The Font

Today , I am writing my java notes about <编写高质量代码改善java程序的151个建议> -秦小波.

Three pieces[1-3]:

1.Don't code by confusing letters in the constants and variables  [不要在常量和变量中出现易混淆的字母]

2.Don't change the constants into the variable.                           [莫让常量蜕变成变量]

3.Make the the types of ternary operators the same.                 [三元操作符的类型务必一致]

Don't code by confusing letters in the constants and variables

from the book:

Outputs:

(unbelieved?just ctrl c + ctrl v run the code !)

In my words:

‘1l’is not ‘11’. But we always code by the confusing things . then bebug for a long time , finally we will laught at ourselves with the computer and codes face to face.”What fucking are the coder?”lol,smile ! carm down , because u r so lucky to read this . i will tell some excemples to keep them away. away ? really away?

Step 1: somthing about Coding Standards

★Constants should always be all-uppercase, with underscores to separatewords. [常量都要大写,用下划线分开]

See a case from my project ITP:

★Camel Case:[变量命名驼峰原则,自然你也可以选择其他的法则等]

if u wanna do it , right now ! it can make your codes more beautiful and clean! amazing ! u learned it , keep on!!!

#please remeber the camel , then u can write a nice code.

Step 2: somthing can make your program easier to understand

some letters should not be used with the numbers,like  l O … they are the brother of the numbers.but we can do some to avoid. like use ‘L’ , and write some notes about them.

Don't change the constants into the variable

A magical demo:

#I think the demo is bad. RAND_COSNT is not a constant and we never do that.

what is Constants ?

    Constants are immutable values which are known at compile time and do not change for the life of the program.But if the project is too large to manage.There will be a problem.Let me show u!

example:

Outputs:

Class A's goodNumber = 0.618

Now we  change A.java –> goodNumber to “0.6180339887”

“javac A.java”then “java B” , we will find the outputs is the same:

Class A's goodNumber = 0.618

why??????????????????

just see the class of B, use “ javap –c B”:

#3: ldc #3 // String Class A's goodNumber = 0.618

ok , we see! the last interface A was already in the class B. so we can “javac B.java”to deal.

All in all ,

Java Interface is usually the best place to store The Constants.

[Java Interface 通常是常量存放的最佳地点]

A best way store constants : static fianl  XXX    static Object getXXX()

it shows the Java dynamic advantage and a constant principle.

 
 
Make the the types of ternary operators the same.
from the book:
 
Outputs:

  

see the compiled code ,use “javap –c Client03”,we will see:

 

the transformation rules about ternary operators.

三元操作符类型的转换规则:

1.若两个操作数不可转换,则不做转换,返回值为Object 类型。

2.若两个操作数是明确类型的表达式(比如变量),则按照正常的二进制数字来转换,int 类型转换为long 类型,long 类型转换为float 类型等。

3.若两个操作数中有一个是数字S,另外一个是表达式,且其类型标示为T,那么,若数字S 在T 的范围内,则转换为T 类型;若S 超出了T 类型的范围,则T 转换为S类型(可以参考“建议22”,会对该问题进行展开描述)。

4.若两个操作数都是直接量数字(Literal) ,则返回值类型为范围较大者。

Editor's Note

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下. ---老子<<道德经>>

快来加入群【编程乐园】(365234583)。 http://t.cn/RvGAuJr