Jan 01, 1970
20 个短情节视频,各个短情节视频有 5 种编号臭味,各个短情节视频就是 100 种编号臭味,对吧?
你不拥有对象。
TL;DR:不要使用my作为名称前缀。
MainWindow myWindow = Application.Current.MainWindow as MainWindow;
MainWindow salesWindow = Application.Current.MainWindow as MainWindow; /* Since window is instanciated, we are currently working with a specialized window playing a special role */
避免使用我的.对象根据使用上下文而变化。
想一下我重设源代碼的历程,显示我花在仔细阅读写作现今源代碼上的精力间隔比我写新源代碼的精力间隔要多得多。于是,比如估计叫我的源代碼便宜一些,我因该让它易仔细阅读写作。
肯特贝克
我们应该特别注意用户(和我们自己)的错误描述。
TL;DR:使用的无功用的描叙并提倡较正政策。
alert("Cancel the appointment?", "Yes", "No"); // No consequences // Options not clear
alert("Cancel the appointment? \n" + "You will lose all the history", "Cancel Appointment", "Keep Editing"); // Consequences are clear // Choice options have context
也许系统员从来不顶嘴误都是个大家应该都知道的实际上,但在在系统的重中之重点检修报错来取悦微信用户一样都是个好特别注意。
罗伯特·D·施耐德
拼写和可读性对人类来说非常重要,而对机器来说并不重要。
TL;DR:兼顾好你的英文名。
这篇文章的标题中有一个错字作为上下文的证明,也是一个点击诱饵😀
comboFeededBySupplyer = supplyer.providers();
comboFedBySupplier = supplier.providers();
任其中是一个文笔好的大子程序流程里都有其中是一个文笔好的小子程序流程。
汽车霍尔
我们看到多少次惰性参数名称?
TL;DR:据脚色而是偶然间位置上被命名你的论点
class Calculator: def subtract(self, first, second): return first - second class CalculatorTest def test_multiply(): assert equals(first, second)
class Calculator: def subtract(self, minuend, subtrahend): return minuend - subtrahend class CalculatorTest def test_multiply(): assert equals(expectedValue, realValue)
决定的源码是实际的游戏设计制作。
杰克·里维斯
GOTO 在 50 年前被认为是有害的
TL;DR:永远永远最好不要实用 GoTo。
for x < 0 { if x > -1e-09 { goto small } z = z / x x = x + 1 } for x < 2 { if x < 1e-09 { goto small } z = z / x x = x + 1 } if x == 2 { return z } x = x - 2 p = (((((x*_gamP[0]+_gamP[1])*x+_gamP[2])*x+_gamP[3])*x+_gamP[4])*x+_gamP[5])*x + _gamP[6] q = ((((((x*_gamQ[0]+_gamQ[1])*x+_gamQ[2])*x+_gamQ[3])*x+_gamQ[4])*x+_gamQ[5])*x+_gamQ[6])*x + _gamQ[7] return z * p / q small: if x == 0 { return Inf(1) } return z / ((1 + Euler*x) * x) }
for x < 0 { if x > -1e-09 { return small(x, z) } z = z / x x = x + 1 } for x < 2 { if x < 1e-09 { return small(x, z) } z = z / x x = x + 1 } if x == 2 { return z } x = x - 2 p = (((((x*_gamP[0]+_gamP[1])*x+_gamP[2])*x+_gamP[3])*x+_gamP[4])*x+_gamP[5])*x + _gamP[6] q = ((((((x*_gamQ[0]+_gamQ[1])*x+_gamQ[2])*x+_gamQ[3])*x+_gamQ[4])*x+_gamQ[5])*x+_gamQ[6])*x + _gamQ[7] return z * p / q small(x, z) { if x == 0 { return Inf(1) } return z / ((1 + Euler*x) * x) } }
在支持GOTO的语言中,我们的 linter 可以警告我们不要使用它。
大多数程序员幸运地避免了 GOTO 语句。下一个目标是考虑有害的null 使用。
礼貌
向时候接觸过 BASIC 的学员客座教授好的代码编程具体上是也没有可能会的:为内在的的系统软件工程师,你在精神抖擞上被残破不全,也没有粉碎的还望。
埃兹格·迪克斯特拉