% y; p2 a: A6 V3 l) _- E2 C: \9 c . @- k# m9 \* G6 z' a5 Z3 g! Z* K; ~4 ?" l+ x3 {
1. 满足基本需求。再优秀的代码也是为项目服务的,首先就是满足需求,针对需求编写符合需求的代码,满足功能、性能、时间等客户需求,这样才能称得上是合格代码。 * Y* ?/ ^, u8 W1 I5 d+ x" s * B' A) u& `1 Z4 H2. 易读性。遵循命名规范,针对变量、函数、类等友好易懂的命名规则。+ n! x5 u( V! A" m5 ]- ^0 B5 _
6 w6 C' N* u* U6 \8 M* ^0 f
代码命名规范: 5 T+ T: _ A+ U4 |$ b+ E' X7 \+ z `0 L
1)、 package包名全部由小写的ASCII字母组成,用“.”分隔。在此项目中,所有的包均以“com.abc.ticket”开头。 ! D' K+ {' Y5 d; [5 d7 s o9 W s; l: ^+ `' Q" e) K
2)、 class 类名应当是名词,每个内部单词的头一个字母大写。应当使你的类名简单和具有说明性。用完整的英语单词或约定俗成的简写命名类名。 . ~, Y! ]$ B7 H" V7 A+ b【示例】public class UserManager! @8 f' `- q7 r; w5 z+ T, B
, B3 U+ S N, Q' D3)、 interface接口名应当是名词,每个内部单词的头一个字母大写。应当使你的接口名简单和具有说明性。用完整的英语单词或约定俗成的简写命名接口名。 q6 E7 O1 Q+ |; _' x/ e
【示例】interface TicketManagement ]7 M) A4 G: `: q" P 7 V) `) j% e0 R4)、 Class 成员属性及变量的命名 (*) 变量名全部由字母组成,头一个字母小写,以后每个内部单词的头一个字母大写。变量名应该短而有意义。变量名的选择应该易于记忆。一个字符的变量名应避免,除非用于临时变量。通常临时变量名的命名规则为:i,j,k,m,n用于整数;c,d,e用于字符。/ J# S- u. c" t
$ }: f- @3 {. V$ M8 P. X
5)、常量的命名,Java 里的常量,是用static final 修饰的,应该用全大写加下划线命名,并且尽量指出完整含义。2 E V8 H. e7 a, _
【示例】static final String SMTH_BBS="bbs.tsinghua.edu.cn";0 E0 q, C5 z3 E9 g; Q" f- R: O
! Y: N" Y# E0 j$ a: _8 l* K6)、数组的命名,数组应该总是用下面的形式来命名:byte[] buffer; . Q0 U& c' _! u6 r. Q5 F+ \/ o6 J, p4 U/ i6 e
7)、方法的参数和变量的命名规范一致,且应使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字。 + Z& z' t, n' @& \7 @! Z【示例】setCounter(int size){ this.size = size; } 0 z* C% m$ g- ?$ i t ^+ J9 M2 A: s7 [* G+ b9 _& P* r3 t; A, u8)、 方法命名(*)方法的命名应当使用动词,头一个字母小写,以后每个内部单词的头一个字母大写。在方法名的选择上应意义明确便于记忆。对于属性的存取方法,应使用getXXX()和setXXX()名称,以isXXX(),hasXXX()来命名返回值为boolean 类型的方法。 $ b3 F7 y: J% M! N j' s _* z% k2 A9 G以上几条如果符合就算是好代码了吗?当然不是,这只是代码中最基本的命名规范而已,就算不符合最多就是代码不好看,没什么其他影响。. G$ L! ]/ n' M8 }( O" }- i- `) v) d
], O) h# J1 F, @ 关于其他方面的说明定义:, g8 P. ^9 d6 }1 m, b
3 j6 D1 g4 w5 O3 Y1 z- U h 'Good code' is code that works, is bug free, and is readable and maintainable. Some organizations have coding 'standards' that all developers are supposed to adhere to, but everyone has different ideas about what's best, or what is too many or too few rules. There are also various theories and metrics, such as McCabe Complexity metrics. It should be kept in mind that excessive use of standards and rules can stifle productivity and creativity. 'Peer reviews', 'buddy checks' code analysis tools, etc. can be used to check for problems and enforce standards.0 b* ?/ h& H( P3 e( o: D6 {
# M! P9 B9 i, S2 N4 S
另外,来自 MSDN END BRACKET 栏目的作者 Paul DiLascia ,也列出了优秀代码应有的物质:不管你用什么语言进行开发,所有的优秀代码都会展示出共有的经典品质:简练,易于理解,模块化,层次性,设计良好,高效,优雅,并且清晰。 8 N' c7 E+ @& Y* Q& u' P--------------------- / n9 w4 n" P3 x
作者:美丽海洋 % _( z: u8 W0 C2 ?/ w
来源:CSDN 2 Z' n9 J3 n* }6 g$ e0 u, i: V6 u
0 ^) t% f2 `, e' J6 j9 E1 i # y$ ]3 I3 f g( A' b! v0 o# A( z 1 h3 o/ R. w2 X) H$ \0 C7 N+ _+ a