Questions tagged «coding-standards»

编码标准或编码约定是旨在管理软件项目中代码生成过程的规则或准则集。它们通常基于行业最佳实践或公认的惯例。它们包括命名约定,样式,禁止的功能等。

9
“仅返回”的概念从何而来?
我经常跟程序员谁说:“ 不要把多个return语句相同的方法。 ”当我问他们告诉我的原因,我得到的是“ 编码标准是这么说的。 ”或者“ 这是令人困惑的。 ”当他们通过单个return语句向我展示解决方案时,代码对我来说看起来更难看。例如: if (condition) return 42; else return 97; “ 这很丑,您必须使用局部变量! ” int result; if (condition) result = 42; else result = 97; return result; 50%的代码膨胀如何使程序更易于理解?我个人觉得比较困难,因为状态空间刚刚增加了另一个很容易避免的变量。 当然,通常我会写: return (condition) ? 42 : 97; 但是许多程序员避免使用条件运算符,而是喜欢长格式。 “仅返回”的概念从何而来?产生这种约定是否有历史原因?



15
使用布尔参数确定行为是否错误?
我不时看到一种“感觉”错误的做法,但是我不能很清楚地指出它的错误之处。也许这只是我的偏见。开始: 开发人员定义一个使用布尔值作为其参数之一的方法,然后该方法调用另一个,依此类推,最终使用该布尔值,仅用于确定是否要执行特定操作。例如,仅当用户具有某些权限时,或者如果我们(或不在)测试模式,批处理模式或实时模式下,或者仅当系统处于运行状态时,才可以使用此权限来执行操作一定的状态。 嗯,总有另一种方法可以做到,无论是通过查询何时该采取行动(而不是传递参数),还是通过该方法的多个版本或该类的多个实现,等等。我的问题是与其说如何改善它,不如说是真的不对(正如我怀疑的那样),如果真的对的话,那是什么问题。

14
为什么鲍勃叔叔建议如果可以避免的话,不应该写下编码标准?
当我阅读此问题时,投票得最高的答案引用了Bob叔叔的编码标准,但这个提示使我感到困惑: 如果可以避免,请不要写下来。相反,让代码成为捕获标准的方式。 这在我的大脑中反弹,但是我找不到合适的地方。如果有新成员加入团队,或者编码标准发生了变化,信息会不会混乱? 我为什么不应该写下编码标准?

17
为了清楚起见,编码标准:注释每一行代码?
我曾在一家生产至关重要的软件的商店工作过,还处理过一些注释规则,这些规则旨在保持代码的可读性并可能挽救生命。以我的经验,尽管要求变成了脑筋急转弯的工作,需要从清单中剔除,但这并不能帮助我专注于编写可理解的代码。这也分散了我的同行审阅者的注意力,使我无法就如何使代码更易于理解进行更有意义的对话。 我还对没有注释的学生代码进行了评分,并查看了为什么应将它们标记为忽略它们。 我知道使用好名,使结构简单,函数简短,并关注模块将使代码易于理解,从而可以最小化注释。 我也理解注释应该解释为什么代码会执行此操作,而不是如何执行。 鉴于所有这些,甚至有可能编写出能够抓住这一想法的良好编码标准?与同行评审有关但不会变成漫不经心的清单活动,不会产生比以下内容更有用的注释:“您忘了在第42行发表评论”。 在清单中被视为一行时,此规则可能需要的代码示例: /* Display an error message */ function display_error_message( $error_message ) { /* Display the error message */ echo $error_message; /* Exit the application */ exit(); } /* -------------------------------------------------------------------- */ /* Check if the configuration file does not exist, then display an error */ /* …

10
为什么我们大多数人都将“ i”用作循环计数器变量?
有没有人想过为什么我们中的很多人使用相同的变量名重复相同的模式? for (int i = 0; i < foo; i++) { // ... } 看来我曾经看着用途大多数代码i,j,k等为迭代变量。 我想我是从某个地方捡来的,但是我想知道为什么这在软件开发中如此普遍。是我们所有人都从C中获得的东西还是类似的东西? 我的脑后已经痒了一段时间。

19
函数可以太短吗?
每当我发现自己多次编写相同的逻辑时,我通常会将其粘贴在一个函数中,因此在我的应用程序中只有一个地方需要维护该逻辑。副作用是我有时会遇到一两个函数,例如: function conditionMet(){ return x == condition; } 要么 function runCallback(callback){ if($.isFunction(callback)) callback(); } 这是偷懒还是不好的做法?我之所以只问是因为这会导致大量的函数调用需要非常小的逻辑。

4
“长期”禁令有意义吗?
在当今的跨平台C ++(或C)世界中,我们拥有: Data model | short | int | long | long long | pointers/size_t | Sample operating systems ... LLP64/IL32P64 16 32 32 64 64 Microsoft Windows (x86-64 and IA-64) LP64/I32LP64 16 32 64 64 64 Most Unix and Unix-like systems, e.g. Solaris, Linux, BSD, and OS X; z/OS …



16
不使用匈牙利表示法的好处是什么?
我苦苦挣扎的事情之一就是不使用匈牙利符号。我不想仅去查看变量类型是什么,就不必去定义变量。当一个项目扩展时,能够查看以'bool'为前缀的变量并知道它正在寻找true / false而不是0/1值,这是一个很好的选择。 我还在SQL Server中做了很多工作。我在存储过程中添加了“ sp”前缀,在表中添加了“ tbl”前缀,更不用说数据库中的所有变量了。 我到处都看到没有人真正想要使用匈牙利符号,以至于避免使用匈牙利符号。我的问题是,不使用匈牙利符号的好处是什么?为什么大多数开发人员都像瘟疫一样避免使用匈牙利符号?

14
我如何才能避免总是觉得自己完全从头开始重建程序,会做得更好呢?[关闭]
我已经学到了大量的编码,但是,它始终处于科学环境(不是计算机科学)中,完全是自学成才,没有任何人可以指导我正确的方向。因此,我的编码之旅一直很……混乱。我现在已经注意到,无论何时构建某种类型的程序,最终我都知道如何能够更加优雅,高效,灵活,易于管理地完成它。在某些情况下,我实际上回过头来重新构建了东西,但是通常这实际上是不可行的。尽管到目前为止我的大多数程序都相对较小,但是每次创建东西时都完全重写大型程序似乎很笨拙。 我只是想知道,这是正常的经历吗?如果没有,您如何防止这种情况发生?我已经尝试过预先计划一些事情,但是直到开始编写一些代码之前,我似乎无法真正预见到一切。

20
减少代码中的行数有多重要?
我是从事J2SE(核心Java)的软件开发人员。 通常在我们的代码审查期间,我们被要求减少代码中的行数。 这并不是删除多余的代码,而是遵循一种专注于用更少的代码行来完成相同事情的样式,而我相信即使要增加行数,代码也要清晰。 您认为正确的做事方式是什么? 如果LOC(代码行)很小,它将如何影响代码?如果LOC是一个较大的数字,它将如何影响代码? 网站上的示例:“ javaranch”- public static void happyBirthday(int age) { if ((age == 16) || (age == 21) || ((age > 21) && (((age % 10) == 0) || ((age % 25) == 0)))) { System.out.println("Super special party, this year!"); } else { System.out.println("One year older. Again."); …

6
单引号与双引号[关闭]
我刚从Java背景开始从事Python的工作,并且注意到其他开发人员倾向于使用单引号('')而不是双引号("")来引用字符串。例如: line1 = 'This is how strings typically look.' line2 = "Not like this." 除了个人喜好之外,还有其他特殊原因吗?这是引用字符串的正确方法吗?具体来说,我想知道的是,是否存在某种类型的标准或公认的最佳实践来推动这种编码方式。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.