Tag: 编码风格的

清晰或不清楚:C#多个三元运算符+抛出如果不匹配

你觉得下面的C#代码是可读的吗? private bool CanExecuteAdd(string parameter) { return this.Script == null ? false : parameter == "Step" ? true : parameter == "Element" ? this.ElementSelectedInLibrary != null && this.SelectedStep != null : parameter == "Choice" ? this.SelectedElement != null : parameter == "Jump" ? this.SelectedStep != null : parameter == "Conditional jump" ? false : false.Throw("Unknown […]

函数/过程/方法应该有多less行代码?

可能重复: 什么时候function太长? 我最近被赋予了一个不值得羡慕的任务,那就是审查另一个开发人员编写的糟糕的代码,并logging不好的做法。 (这当然是为了退出开发者的工作而不是为了任何利他的理由!) 审查的代码有几个程序是很多代码行 – 最长的是近600行。 我想到的一些问题是可维护性和可读性。 诀窍是,我需要向一个非专业人士辩解,为什么这是一个不好的做法,如果可能的话,还要备份一本备受好评的现行参考书。 类比也不错。 有任何想法吗? 重复: 什么时候function太长? 重复: 最大规则function的最佳规则?

为什么自PHP 5.4起永久启用“echo”短标签?

即使是官方文档告诉我们PHP“短标签”( <? /*…*/ ?> )是“坏”的 。 但是, 从PHP 5.4起,无论short_open_tag设置如何,都会永久启用echotypes<?= /*…*/ ?> 。 什么改变了? 即使他们之前仅仅因为在共享主机平台上是否启用了short_open_tag而具有不可预知的性质,当然这个参数不会因为一些主机子集将运行PHP 5.4而消失。 可以说,语言的这种改变本身并不意味着build议的改变,我们应该避免使用“短标签”,但是如果他们遇到了麻烦,PHP开发者似乎不再“讨厌”许多。 对? 我现在可以得出的唯一合乎逻辑的结论是,在PHP 5.4中引入这个变化必定有一些客观的基本原理。 它是什么?

如何将Emacs标签设置为每个新文件中的空格?

我想有一个.emacs设置,以便选项卡总是由连续的空格组成。 优选在每种可能的模式中。 在其他编辑器中,它从来不是一个问题,但在.emacs中,我有点卡住了恐惧的标签。

在Python中,使用列表parsing还是for-each循环更好?

以下哪个更好用,为什么? 方法1: for k, v in os.environ.items(): print "%s=%s" % (k, v) 方法2: print "\n".join(["%s=%s" % (k, v) for k,v in os.environ.items()]) 我倾向于把第一个理解为更容易理解,但这可能只是因为我是Python新手,列表理解对我来说还是有些陌生的。 第二种方式认为是更多Pythonic? 我假设没有性能差异,但我可能是错的。 这两种技术的优点和缺点是什么? (代码取自潜入Python )

你如何为PEP 8命名一个名字是缩写的类?

我试图坚持Python代码的风格指南(也称为PEP 8 )。 因此,命名类的首选方法是使用CamelCase: 几乎没有例外,类名称使用CapWords约定。 内部使用的类别还有一个主要的下划线。 如果我的class级名称是由两个缩略词组成的,那么我应该如何与PEP 8保持一致? 例如,如果我的class级名称是“NASA JPL”,你会怎么说呢? class NASAJPL(): # 1 class NASA_JPL(): # 2 class NasaJpl(): # 3 我正在使用#1,但看起来很奇怪。 #3看起来也很奇怪,#2似乎违反了PEP 8。

新的线上的JavaScript括号?

在工作中,我们把括号放在下一行,但是在家里,我做的是相反的。 你更倾向哪个? (K&R vs OTBS) function something() { // … } function something() { // … } 很多JavaScript库似乎都使用OTBS(一种真正的支撑风格)。 我想跟随他们的其他JavaScript项目的一致性,但不K&R的风格看起来更可读? 注意:我们知道在JavaScript中返回和括号的问题,这将永远是一个例外。 但是,这只是一个例子。

在开关箱中使用花括号时,'break'声明

我在C / Objective-C / C ++中使用大括号括住了所有的switch case语句 直到不久之前,我还没有考虑是否包括break; 大括号内的说法是好的或不好的做法。 我怀疑这没关系,但我认为这仍然值得一提。 switch (foo) { case 1: { // stuff break; } default: { break; } } VS switch (foo) { case 1: { // stuff } break; default: { // stuff } break; }

在哪里放内部课程?

有些人可能会认为,这是所有时代最不重要的问题的候选人。 然而,代码风格对我来说是一个非常重要的话题,我想确保我以可读的方式编写代码 – 对于我和大多数开发人员。 这就是为什么我想知道你们在哪里宣布你的内部类。 我遵循以下方法sortingscheme,因为它是相当普遍的: public void foo() { usedByFoo(); } private void usedByFoo() { } public void bar() { } 我从上到下排列它们,每一种方法都与使用的地方相近。 现在我可以用内部类来做同样的事情,像这样: class Outer { private Inner inner; private class Inner {}; public Outer() { } … } 我认为这是我遵循的最一致的风格,但我也经常看到人们在文件的顶部或底部声明所有的内部类。 鉴于我的订购方法,我应该遵循哪种风格? 什么是最常见的方式来做到这一点?

为什么空行中的缩进不好?

我所知道的每个自由/开放源码软件项目都有规则来防止代码中的尾随空格。 但是我认为继续当前的缩进是非常自然的: int main() { ….int a = 42; …. ….return a; } 但是git反正会抛出警告。 所以我的问题是:为什么当前缩进内的那些标签不好? 我不是在寻找像“总是这样做”的答案。 让我们假设在整个项目中缩进是一致的。