标题: 什么是优秀代码之我见 [打印本页] 作者: 杨利霞 时间: 2019-3-23 15:58 标题: 什么是优秀代码之我见 什么是优秀代码之我见 9 `% M9 a& |; X# o' ?" t一个偶然机会自己参加一个面试,问到什么是优秀代码?针对这个问题我的回答给出两条:可读性和可继承性。不知道当时面试官是怎么考虑我的回答的,可能对我的回答嗤之以鼻,工作十年之久连什么是优秀代码都不知道。自己回来之后反复琢磨和查找网上资料。我琢磨后给出的答案还是1. 可读性;2可继承性;3高内聚低耦合。但是通过我反复查找资料可以总结如下,优秀代码需要具备如下特征:1 j2 z4 Z0 g+ k, v* B U. q
% L* W6 K5 o/ ^2 G n 2 `$ V4 f! t( Q1 g. v+ U; T* w 0 a9 ~, K' ?: y7 r; q0 O1. 满足基本需求。再优秀的代码也是为项目服务的,首先就是满足需求,针对需求编写符合需求的代码,满足功能、性能、时间等客户需求,这样才能称得上是合格代码。- j6 P1 C. X2 N5 d
* L! v) [9 c2 T" r% v% c2. 易读性。遵循命名规范,针对变量、函数、类等友好易懂的命名规则。' I5 U1 |* h$ ?2 [; Z
- [# W/ l9 T i7 @1 C7 b
代码命名规范: ' a2 I7 {: f" K" X# q1 L) p/ _1 C$ L: h* ~3 z% Z' }
1)、 package包名全部由小写的ASCII字母组成,用“.”分隔。在此项目中,所有的包均以“com.abc.ticket”开头。2 y8 H$ d F" T4 i5 B- W' h. n( ^: T
3 w2 _ h' @; P* p* t
2)、 class 类名应当是名词,每个内部单词的头一个字母大写。应当使你的类名简单和具有说明性。用完整的英语单词或约定俗成的简写命名类名。+ j" f6 i# x( ]2 `
【示例】public class UserManager3 W" w2 I, J' H3 M
8 n) i9 F$ u& S' H; V8 J
3)、 interface接口名应当是名词,每个内部单词的头一个字母大写。应当使你的接口名简单和具有说明性。用完整的英语单词或约定俗成的简写命名接口名。* a; t1 w4 o1 C7 \( n8 t, c: P* Z
【示例】interface TicketManagement9 P |% m* l5 g6 |
* F: q9 {, C* f5 Z7 v* t, c( ?
4)、 Class 成员属性及变量的命名 (*) 变量名全部由字母组成,头一个字母小写,以后每个内部单词的头一个字母大写。变量名应该短而有意义。变量名的选择应该易于记忆。一个字符的变量名应避免,除非用于临时变量。通常临时变量名的命名规则为:i,j,k,m,n用于整数;c,d,e用于字符。+ ]+ S0 o% N/ \& _
3 P* k8 W4 I6 x+ k* r+ C
5)、常量的命名,Java 里的常量,是用static final 修饰的,应该用全大写加下划线命名,并且尽量指出完整含义。# H/ E( y% o0 e" e- \
【示例】static final String SMTH_BBS="bbs.tsinghua.edu.cn";7 ]# o$ H4 L" F5 {
0 n# `& h8 l, _$ e6)、数组的命名,数组应该总是用下面的形式来命名:byte[] buffer;7 c/ H0 m, I/ m( M( R) p
! s* B+ F. {4 f3. 可继承性。代码重用性,根据新的功能不用修改目前代码或是很少修改吧所需要的功能添加上去。 6 a5 O4 K# C6 r7 k* K 5 ?* Y. Q( x! J6 `7 r4. 可测性、可配置性和已修复bug。把所设计的代码根据功能进行,尽量少的bug。项目模块化,根据模块的配置进行项目的组装,成为新的项目。 , m* z& [3 i- R# X' l* | % V9 a6 [7 I* r+ q% C: }6 L. r" A: t# Y0 ~ u A' L
" Y5 S& L8 f$ v. z3 z; C2 h
关于其他方面的说明定义:3 m- C- Q L$ H( f7 C7 ~7 z0 {1 s
$ \% H/ V- _. u* y, L2 v
'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. {" o" g5 U0 B, E! k
' H8 d5 n6 b1 z$ [+ y; M
另外,来自 MSDN END BRACKET 栏目的作者 Paul DiLascia ,也列出了优秀代码应有的物质:不管你用什么语言进行开发,所有的优秀代码都会展示出共有的经典品质:简练,易于理解,模块化,层次性,设计良好,高效,优雅,并且清晰。 ) z7 |) {8 O5 k& S. x--------------------- 0 y1 u$ k" ^) U4 L+ i. K( B
作者:美丽海洋 9 I6 ^1 J8 S# j7 }4 `: i来源:CSDN 5 u( Z# u- `+ U" |3 l; L4 h& ^) {/ v
' H' ~, X+ s# f0 c' w
% q" }& A5 j5 ^' R7 O7 \
- y) c# o* y9 z/ S% r! d/ v Q