Questions tagged «coding-standards»

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

14
在处理遗留代码时,如何克服自己的编码偏见?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 作为程序员,我们经常以我们的技能感到无比自豪,并对什么是“好”代码和“坏”代码持有非常强烈的意见。 在职业生涯中的任何时候,我们可能都会遗留下一些遗留系统,并以为“我的天哪,这段代码很烂!” 因为尽管它可能是功能完善,可维护的代码,但它不符合我们对好的代码的看法。 当您试图掌握其他程序员的工作时,如何做好心理准备?

6
科学代码是一个足以忽略普通编码标准的领域吗?
最近,我一直在努力思考以下事实。 一方面,对于所谓的“健康”,“干净”,“编写良好”等代码,有大量的编码准则和标准。参见似乎也在此处广泛讨论的“清洁代码”。规则示例:7行长方法和1或2级缩进。不遵循的代码将因可维护性差而死亡。 另一方面,我可以使用OpenCV,OpenCascade,VTK等。这是科学代码。他们有2页长的方法(我自己说),OpenCascade的方法或类分为10个文件(这里没有笑话),VTK有时也很混乱。然而,这些项目繁荣起来,得到了维护和广泛使用! 哪里有收获?我们是否被允许以一种可以正常工作的方式编写科学的,繁重的代码,并且我们可以对其进行维护?您是否为此类项目制定了一套单独的标准? 也许这是一个幼稚的问题,但是我似乎在一个编程空白中试图建立一套规则,该如何做和不做某事,这就是我在高中时被教导要工作的方式。自从我毕业以来,我对所要做的事情(主要是编程)几乎没有指导性的支持-没人会教。

11
应该始终使用编码最佳实践吗?
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 在对软件进行编码时,对于正在构建的应用程序,体系结构应该始终是最佳实践还是实践? 如果我要构建一个两页的Web应用程序,该应用程序可能会使用5年,并且在那5年中有2项改进,那么我应该编写依赖注入,设计模式,带有视图模型的model-view-controller等代码吗?



8
C#-为什么不鼓励在字段上使用前缀?
过去,我们使用匈牙利符号。现在将其视为passé,并且在大多数情况下,我不再使用它,但是我仍然发现该m_前缀用于表示成员字段。 对我来说,如果我正在阅读别人的代码,就会看到以下内容: count = 3; 我假设这count是该函数的局部变量,并且我正在做将在该函数的其他地方使用的操作。如果我看到这个: m_count = 3; 我立即意识到我正在更新对象的状态。 Microsoft风格指南说这是做事的错误方法。我应该像在函数中定义的临时变量一样命名我的非公共字段。不m_,甚至没有简单的下划线。 是的,我们可以定义自己的编码样式,但是接下来我必须努力使用各种静态代码分析工具,以使他们相信我们的处事方式还可以。 我很高兴能够更改为Microsoft风格,但是我想知道为什么事情是这样。 为什么现在不能分辨一个变量是函数本地变量还是成员变量,这为什么认为很糟糕? PS这非常类似于c#领域和方法前面关于“ this”关键字的当前最佳实践是什么?,但我问的m_不是this. PPS另请参见Microsoft为什么使参数,局部变量和私有字段具有相同的名称命名约定?

3
为小型开源Java项目选择什么软件包名称?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我想用Java发布一个小的开源库。我想知道应该选择哪个软件包名称?我不是公司,我没有一个可根据命名约定命名软件包的基础的域。我还是想以某种方式遵循命名约定,以防止意外冲突并使事情保持标准。

9
强制代码重新格式化的优缺点
我目前在一个可能正在强迫开发人员在版本控制签入中使用自动代码格式化程序的地方工作。我正在寻找开发人员关于这样做的优缺点的意见……您认为这对开发人员有何帮助或阻碍。我的具体案例涉及Java / JSP,但我认为该问题可能适用于任何语言。

11
推荐的.NET / C#编码标准?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 您认为什么编码标准对.NET / C#项目很重要?可以这样处理花括号,间距和装饰。或者可能是一些更基本的问题,例如应避免在.NET Framework中使用哪些命名空间,配置文件的最佳做法等。 尽量避免创建简单的推论。例如,有一篇文章集中在花括号上会很好。我们不需要两种就可以支持一种样式。这个想法不是投票支持您的宠物标准,而是充实制定标准时应考虑的内容。

15
我讨厌我们的一种编码标准,这使我发疯,如何处理它?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 免责声明:标题没有夸张,但仍然让我感到不舒服。我只是要诚实地表达,所以要加一点盐。只是假装我谈论的是编码标准,你不喜欢的工作。 编辑:我不喜欢它的事实,并不意味着我不使用它或不执行它。 我决定本着如何超越您不喜欢的标准的精神来问这个问题,而不是寻求有关如何更好地争论如何进行更改的帮助(尽管对最后一部分的任何评论都值得赞赏)。此外,我在一家大公司工作,这种改变已经存在了很长时间,而且影响很小的事情是不可能的。 该标准是专用线路上的开口弯括号标准: somefunction() { //... } 代替*明显优越*(注意开玩笑/沮丧的语气): somefunction() { //... } 我个人反对该标准: 它使代码膨胀:多余的多余行 很难键入:尽管这可能只是我在标准方面的苦苦挣扎,但我知道额外的一次击键并没有那么糟糕。 不容易阅读:我开始阅读函数声明,if语句或任何其他范围堆叠语句,而我不必寻找左括号。嵌套块与此标准只是出于某种原因使我生气。 由具有Microsoft IDE背景的人使用:我认为标准背后应该有一个有争议的理由(或更多理由),而不仅仅是范式。 他们的论点(以及我内部反驳他们的方式): 易于阅读,因为您可以立即看到块的开始和结束位置:我不明白这一点,如果您不知道块的所有权,那么块有什么用,所以您必须向后阅读。 我在Microsoft IDE中使用它,然后我喜欢它:呃...好吗? 在标准中:*压脚* 我是唯一一个对特定标准持固执己见的人吗?您如何克服这些标准?您对此特殊标准应该是什么持保留意见(只是为了好玩)?

5
有众所周知的PowerShell编码约定吗?
在PowerShell中编程时是否有任何定义明确的约定? 例如,在要长期维护的脚本中,我们是否需要: 使用真实的cmdlet名称还是别名? 完整或部分指定cmdlet参数名称(dir -Recurse与相对dir -r) 在为cmdlet指定字符串参数时,是否将它们括在引号(New-Object 'System.Int32'与New-Object System.Int32 在编写函数和过滤器时,是否指定参数的类型? 您是否在(正式)正确的情况下编写cmdlet? 对于像BEGIN...PROCESS...END这样的关键字,您仅将它们写为大写吗? 似乎MSDN缺少用于PowerShell的编码约定文档,而对于C#,则存在这样的文档。

8
Microsoft为什么要使参数,局部变量和私有字段具有相同的名称命名约定?
我很早以前问过这个问题:如何在C#中命名私有变量? 在一个答案中,我被指向Microsoft的MSDN页面,该页面显示私有变量/字段应按以下方式命名: private int myInteger; 但是参数将是: void SomeMethod(int myInteger) 局部变量是这样的: int myInteger; 所以当你这样引用它们时 myInteger = 10; 您无法知道您在谈论哪个。 我现在开始一个新项目,我的一位同事问我为什么我们不做点什么来区别其中至少一些。 我在想同样的事情。微软的标准为什么没有使这些保持不同?

9
开发人员如何在自己的工作站上工作的标准
我们只是遇到了一种情况,这种情况有时会在开发人员在项目进行中几天病倒的情况下出现。 关于他是否提交了最新版本的代码还是我们应该关注的本地计算机上是否存在一些最新问题,我们存在一些疑问,我们已经交付给客户,因此我们迫不及待他返回。 其他开发人员中的一个以他的身份登录并发现了一个混乱的工作空间,其中许多貌似是同一项目,但带有时间戳,使得不清楚哪个是“当前”(他正在对项目版本的一些原型进行原型设计,而不是他的“核心”之一)。 显然这是一个痛苦的瓶颈,但是替代方案(这似乎是每个开发人员如何在自己的计算机上工作以确保其他任何开发人员都可以用最少的精力来捡拾东西的严格标准)可能会破坏很多开发人员的个人工作流程,并导致个人效率低下。 我不是在谈论签入代码的标准,甚至不是通用的开发标准,而是在谈论开发人员在本地的工作方式,根据我的经验,这个领域通常被认为几乎完全在开发人员自己的控制之下。 那么如何处理这种情况呢?这是发生的事情之一,您必须处理,让开发人员付出的代价能够以最适合他们的方式工作? 还是您要求开发人员遵守这方面的标准-使用特定目录,命名标准,Wiki上的注释或其他内容?如果是的话,您的标准涵盖了哪些内容,它们的严格程度如何,您如何监管它们等等? 还是我还缺少其他解决方案? [[为了争辩,假设无法与开发人员联系以讨论他在这里所做的事情-即使他能够知道并描述内存中哪个工作区也不会变得简单无瑕,有时人们真的可以我们无法与您联系,希望提供一种解决所有可能情况的解决方案。] 编辑:我知道通过某人的工作站是不好的形式(尽管这是一个有趣的问题,而且可能是主题外的问题,确切说明为什么如此),而且我当然不是在寻找无限的访问权限。按照标准的思路进行更多思考,在该标准中,将其代码目录设置为只读共享-无法更改,看不到其他内容,依此类推。

8
Systems Hungarian的吸引力是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 在什么命名规则,你跟着?,作者说: 另外,我更喜欢使用Charles Simonyi的匈牙利符号进行编码。 我碰到过一些仍然喜欢使用匈牙利语的程序员,大多数都是Petzold / Systems匈牙利语风格的。想想dwLength = strlen(lpszName)。 我已经阅读了使代码看起来错误的代码,并且了解Apps Hungarian的基本原理,其中变量名中包含域类型信息。但是我不理解将编译器类型附加到名称中的价值。 为什么程序员仍然坚持使用这种样式?只是惯性吗?有什么好处可以弥补可读性下降的困扰吗?人们在阅读代码时是否只是学会忽略装饰器,如果是的话,他们如何继续增加价值? 编辑:很多答案都在解释历史,或者为什么它不再相关,在我引用的文章中都涵盖了这两个问题。 我真的很想听听仍然使用它的任何人。为什么使用它?是否符合您的标准?如果不需要,您会使用吗?您会在新项目上使用它吗?您认为优势何在?

9
代码格式准则有多重要?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 编码标准在任何软件开发组织中都很常见,但是遵循这些标准有多重要?我可以理解需要一些一致性,但是当处理简单的事情(例如花括号的位置,行长等)时,我不确定过于严格的标准会对软件开发做出很大的贡献。 您的代码可读性不是更重要,不符合预先定义的标准吗?无论如何,它们似乎更像是……准则。

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.