小智 15
好吧,如果你想要外行的话:
我建议人们写出最有效的可读程序.
关于如何格式化代码,命名变量,设计类和单独的职责,还有很多规则.但是你不应该忘记所有这些规则只是为了确保你的代码很容易检查错误,并确保它可以由原作者以外的其他人维护.如果记住上面的推荐,你的程序就是这样.
首先,"代码"不是正确的用词.代码是另一种东西的表示,通常是数字.正确的单词是"源代码",源代码的复数是源代码.
-
编写好的源代码:
计算机编程有很多时尚.他们的支持者认为那些没有追随时尚的人并没有那么开心,也没有非常随意.目前的主流时尚似乎是"测试驱动开发"和"敏捷".20世纪90年代的时尚是"面向对象编程".了解周围的想法的有用核心部分,但不要教条,并记住最好的计划是完成它需要做的工作.
从我的头脑中过度浓缩代码的非常简单的例子
for(int i=0,j=i; i<10 && j!=100;i++){
if i==j return i*j;
else j*=2;
}}
Run Code Online (Sandbox Code Playgroud)
虽然这更具可读性:
int j = 0;
for(int i = 0; i < 10; i++)
{
if i == j
{
return i * j;
}
else
{
j *= 2;
if(j == 100)
{
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
第二个例子具有清晰可见的退出循环的逻辑; 第一个例子的逻辑与控制流程纠缠在一起.请注意,这两个程序完全相同.我的编程风格占用了大量的代码,但我从来没有遇到过关于风格很难理解的抱怨,而我发现更简洁的方法令人沮丧.
经验丰富的程序员可以并且将会同时阅读 - 上述内容可能会使他们暂停一下并考虑发生了什么.强迫读者坐下来盯着代码并不是一个好主意.代码需要显而易见.每个问题都具有表达其解决方案的内在复杂性.如果可能的话,代码不应该比解决方案的复杂性更复杂.
这是另一张海报试图传达的内容 - 不要让程序比需要更长.更长时间有两个含义:更多的代码行(即,将行括号放在自己的行上),更复杂.使程序比需要更复杂并不好.使其更具可读性是好的.