程序员如何写出漂亮的代码?

在我眼中的漂亮代码=效率高 + 精简 + 易懂

我认为写出漂亮的代码是一位优秀的程序员的毕生追求。

漂亮的代码就犹如:

书法家的一笔漂亮的字
歌唱家的一副好的嗓子
模特们的一段好的身材

有漂亮的代码,再努力一点,就可以媲美:

篮球界的乔丹
足球界的贝克汉姆
舞蹈界的迈克尔杰克逊

各位(已经是、即将是、想要成为)程序员界的xxx们,

分享一下你们在写代码过程中的一些经验、技巧亦或是方法

让更多想让代码变得漂亮的程序员们指一条明路吧!!

以后我要是能写出漂亮的代码就放到github上去,让老外Watch && Fork 去吧!!

回答要求:

  1. 贴一段你认为到目前为止写得最好的一段代码(注明所用语言)
  2. 文字描述简洁、易懂
  3. 排版美观(使用规范markdown来排版)

规则:

在满足以上条件下,得票最多者获胜,如有得票相同的情况,最先回答者获胜。

PS:本人入门语言java,学过一点点算法,现在工作中用ruby(rails)、javascript(coffeescript)、需要的时候还得写几句SQL。

BTW:提问需要一种态度,回答亦是如此,一两句话作为评论就好了

4 个回答

关键要看程序人自己的境界,要够疯狂,够执着,够挑剔,够银浪!

with hold(u'妹纸').into(bed):

while not too_tired:
yield u'元旦快乐!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!'

note:python语言
from:知乎

漂亮是一个偏艺术的词。不同阶段的人理解不一样。
对于大多数人来说,简洁直观、扩展无污染的代码算是上乘的漂亮代码。
对于大牛来说,高效、高内聚、算法高雅、代码极少,才是漂亮。
一般高手也归普通吧。

我喜欢C 语言中的KMP算法等经典算法,还有很多开源的项目,代码也很精美。
js的代码,jQuery类库写的很漂亮。
VB、C#等包括微软的类库,没有看到几段漂亮的代码。

简单的正则表达式 C语言

001 #include
002

003 /*
004 * 已实现元字符:
005 * . 匹配任意单个字符
006 * * 匹配前一个字符任意个出现
007 * ^ 匹配输入字符串的开始
008 * $ 匹配输入字符串的结尾
009 *
010 /
011

012 int matchstar(int c, char *regexp, char *text);
013 int matchhere(char *regexp, char *text);
014 int match(char *regexp, char *text);
015

016

017 /

018 * 尝试匹配重复的文本字符c
019 * 参数:c 单个输入字符,regexp 正则表达式,text 文本字符串
020 * 返回值:如果找到了一个匹配的正则表达式则返回1,否则返回0。
021 /
022 /

023 * 首先去掉文本中字符c的最大重复序列。
024 然后调用 matchhere 来匹配正则表达式和文本的剩余部分。
025 每次匹配失败都会在文本剩余部分的头部中增加一个字符c,然后再次开始尝试。
026 /
027 int matchstar2(int c, char *regexp, char *text)
028 {
029 char *t = text;
030

031 while(t[0] != '\0' && (t[0] == c || c == '.'))
032 {
033 t++;
034 }
035

036 do
037 {
038 if(matchhere(regexp, t))
039 {
040 return 1;
041 }
042 }
043 while(t-- > text);
044

045 return 0;
046 }
047 /

048 * 识别最左边的以及最长的匹配
049 从头开始匹配,如果失败则去掉文本中的第一字符c,再继续匹配,直到匹配完全部文本。
050 /
051 int matchstar1(int c, char *regexp, char *text)
052 {
053 do
054 {
055 if(matchhere(regexp, text))
056 {
057 return 1;
058 }
059 }
060 while (text[0] != '\0' && (
text++ == c || c == '.'));
061

062 return 0;
063 }
064

065 int matchstar(int c, char regexp, char *text)
066 {
067 return matchstar2(c, regexp, text);
068 }
069

070 /

071 * 判断正则表达式与文本的开头部分是否匹配
072 * 参数:regexp 正则表达式,text 文本字符串
073 * 返回值:如果找到了一个匹配的正则表达式则返回1,否则返回0。
074 * 细节:把正则表达式的第一个字符与文本的第一个字符进行匹配,
075 如果成功,则推进到正则表达式的下一个字符和文本的下一个字符继续进行匹配,
076 当正则表达式推进到末尾时,即前面的判断都成功,则正则表达式与文本匹配。
077 如果在正则表达式的末尾包含了一个$,那么仅当文本此时位于末尾时匹配成功。
078 如果正则表达式是一个字符后面跟一个,则调用matchstar来判断闭包是否匹配。
079 */
080 int matchhere(char *regexp, char *text)
081 {
082 if(regexp[0] == '\0')
083 {
084 return 1;
085 }
086 if(regexp[0] == '$' && regexp[1] == '\0')
087 {
088 return text[0] == '\0';
089 }
090 if(regexp[1] == '
')
091 {
092 return matchstar(regexp[0], regexp+2, text);
093 }
094 if((regexp[0] == '.' || regexp[0] == text[0]) && (text[0] != '\0'))
095 {
096 return matchhere(regexp+1, text+1);
097 }
098 return 0;
099 }
100

101 /*
102 * 判断文本中是否出现正则表达式
103 * 参数:regexp 正则表达式,text 文本字符串
104 * 返回值:如果找到了一个匹配的正则表达式则返回1,否则返回0。
105 * 如果有多个匹配的,则将找到文本中最左边的并且最短的那个。
106 * 细节:如果正则表达式中的第一个字符是^,那么匹配就一定要出现在字符串的开头,
107 即把正则表达式的剩余部分与文本的起始位置而不是其他地方进行匹配来判断。
108 如果第一个字符不是^,那么就可以在字符串中的任意位置上进行匹配,
109 即把正则表达式依次与文本中的每个字符位置进行匹配来判断。
110 /
111 int match(char *regexp, char *text)
112 {
113 if(regexp[0] == '^')
114 {
115 return matchhere(regexp+1, text);
116 }
117 do
118 {
119 if(matchhere(regexp, text))
120 {
121 return 1;
122 }
123 }
124 while(
text++ != '\0');
125

126 return 0;
127 }
128

129 int main()
130 {
131 char regexp[] = "^1.*$";
132 char text[] = "123";
133

134 if(match(regexp, text))
135 {
136 puts("ok");
137 }
138 else
139 {
140 puts("no");
141 }
142 return 0;
143 }

你的回答