Questions tagged «coding-standards»

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

7
如何在团队中处理不同的编程风格?
我们有一个小的开发团队(只有3个开发人员),最近我们有了一个新的团队成员。虽然他是一个聪明的编码器,但是他的编码风格与我们完全不同。我们现有的代码库主要包含可读,干净和可维护的代码,但是新团队成员正在迅速更改许多文件,引入难看的hack和快捷方式,在各处使用定义,在错误的位置添加功能等。 我的问题是,其他人以前是否经历过这种情况,以及是否有人有与他交谈的技巧。

4
自引用方法链接有任何实际缺点吗?
我最近建议为某个项目中的某个类实施链接方法,以便可以提高代码的可读性。我得到了一个“流畅的接口,不应该只是为了方便而实现,而是为了语义”,并拒绝了我的建议。我回答我不是在建议使用流畅的界面,而是将方法自身链接(可以相互混淆,请在底部阅读)以提高可读性和编码舒适度,但该建议再次遭到拒绝。 无论如何,这让我想到也许总是以不应该返回任何内容的方法(例如,setter)返回“ this”,这可能会导致一种不好的做法。 我的问题是:可以将先前的惯例视为不良做法或滥用吗?为什么?我认为没有任何性能缺陷,还是存在?

16
定义两个点的矩形背后的想法是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 并不是说这没有道理,而是在99%的时间内效果都不好。 通常,在2D图形中,矩形是作为一对点进行初始化,存储和操作的。没有特别的语言, class Rect: p1, p2: point 将矩形定义为两个x值和两个y值更有意义,如下所示: class Rect xleft, xright: int ytop, ybottom: int 有两点,如果您想在源代码中的某个地方使用顶部的y值,则必须说rect.p1.y(hmmm,停下来想一想,是p1还是p2),但是使用四个值作为纯数据成员,就很清楚直接了:rect.ytop(无需思考!)使用两点意味着在处理垂直方向时,您必须纠结水平方向;独立元素之间存在无关紧要的关系。 两点想法是如何产生的,为什么会持续下去?它相对于裸露的x和y坐标有好处吗? 补充说明:此问题是在XY对齐矩形的背景下,例如在Windows管理器和GUI工具包中,而不是在绘图应用程序中的任意形状的背景下。


4
是否鼓励使用单字母变量?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 Java是否鼓励使用单字母变量?在代码段或教程中,您经常会看到它们。我无法想象使用它们会受到鼓励,因为它使代码相对难以阅读,而且我从未见过将它们用于其他编程语言!

8
是否甚至需要编码标准?
我知道已经证明编码标准可以提供极大的帮助。但是,有许多不同的工具和IDE可以格式化为程序员喜欢的任何标准。只要代码整洁/评论(而不是意大利面条混乱),我就看不到需要编码标准。 是否有关于开发编码标准的争论(我们没有一个,但我一直在考虑创建一个)?

7
C ++中是否存在通用的大写约定?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我在Python和Java上做了很多工作,并且这两种语言都有关于标识符中如何使用大写字母的相当通用(尽管不是通用的)约定:都PascalCase用于类名和ALL_CAPS“全局”常量,但用于其他标识符很多Java代码使用,mixedCase而很多Python代码使用underscore_delimiters。我知道没有语言或库会强制使用任何特定的大写字母,但是我发现当我坚持使用的语言的标准约定时,我的代码似乎更具可读性。 现在,我正在用C ++启动一个项目,并且我想应用相同的想法。我应该了解任何最常见的大写约定吗?

10
在修改/添加到模块时重新格式化其他开发人员代码是否可以?
在团体氛围中开发并在某些代码库中添加或修改功能时。重新格式化以前的开发人员代码以使其达到当前的编码标准是否被认为具有冒犯性或不礼貌?我了解标准已经更改,并且可能会继续更改,但是如果有人通过并更改了代码格式,你们中的任何人都会生气吗? 明确地说,我不是在谈论更改任何逻辑,只是在混乱制表符和空格等。 编辑:我不仅为了代码标准而这样做,它还帮助我通读了他们的代码并更新了代码,因此在我开始修改关键应用程序之前,我可以完全理解已经实现的逻辑。

8
命名约定准则值得关注吗?
我使用.Net约定来命名变量: camelCase用于变量和字段(我倾向于将_camelCase用于类中的私有字段) PascalCase用于方法,属性和类 我唯一偏离的地方是我实际上更喜欢Java SCREAMING_CAPS样式的常量和枚举。 我公司的代码库散布着来自VB6和VBScript的伪匈牙利表示法样式,如果不是成熟的匈牙利语,即 s或str表示字符串 我或诠释为诠释 d代表小数(有时是双精度) o或obj(任何类型的对象) 每当我看到别人的代码中使用了这种代码样式(即使是在未开发的代码中,而不仅仅是旧版代码)时,我都会感到畏缩,而我拒绝自己使用这种样式。过去,我提起过.Net命名约定的标准化,但是它被忽略了-用匈牙利符号书写的人们继续这样做,而我们中不喜欢我的人们继续使用我们自己的风格;我有点担心,如果我们进行标准化(我一直在努力,但似乎没人在乎),它将采用匈牙利符号,而不是推荐的方式,然后我将被迫编写这样的代码。 在这方面,我是不是从暴风雪中爬了出来?我是否应该不在乎代码中是否有多余的标识符,而不是描述性的名称,而是继续使用自己的方式并促使其成为标准?

5
如果老板希望您使用全局变量,该对老板说些什么
我目前有4个月的实习期,在查看我的代码时,我的老板不喜欢我在一个程序集中几个单独的类中的多个方法中保留了一个特定的对象。他不喜欢每次都创建一个新对象,而是告诉我创建一个可以从任何地方访问的对象。因此,我不得不将其创建为静态类中的静态对象,并从此处引用它以使用它! 我只从事4个月的专业编程,您将如何处理呢?

6
垂直对齐:是或否?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 例如,非垂直对齐: Name: Hamt Version: 0.1.0 Cabal-Version: >= 1.2 License: BSD3 Author: Jason Baker 或垂直对齐: Name: Hamt Version: 0.1.0 Cabal-Version: >= 1.2 License: BSD3 Author: Jason Baker 你更偏向于哪个,为什么?

2
如何实现错误处理
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 即使我已经在专业水平上编程了几年,但我仍然不完全理解错误处理。尽管我的应用程序运行良好,但错误处理并未在专业级别上实现,而是多种技术的结合与匹配。 我的错误处理没有任何结构。我想学习和理解它是如何在专业水平上实现的。这是我缺乏知识的领域。 什么时候应该使用异常,什么时候应该返回成功状态,以在逻辑流程中进行检查?可以混合异常并返回状态吗? 我主要使用C#编写代码。


3
非可选指针与C ++中的非常量引用
在其他C ++功能,参考参数的的谷歌C ++风格指南,我读的非const引用,不得使用。 通过引用传递的所有参数都必须标记为const。 很明显,对于C程序员来说,使用引用作为参数的函数调用绝对令人困惑,但是C和C ++现在是不同的语言。如果输出参数需要,使用指针为所需的输出参数,可能对被跳过整个功能体,这使得更复杂的功能(正式增加的实施圈复杂和深度的函数的)。 我想使C ++代码尽可能容易理解/维护,因此我通常对阅读编码风格指南感兴趣。但是,为了适应团队中的最佳实践,我认为理解样式指导元素背后的原理是一个重要因素。 非常量引用真的那么糟糕吗?是只禁止Google禁止使用它们还是被普遍接受的规则?是什么证明了将输出参数实现为指针所付出的额外努力?

6
JavaScript命名约定
我来自Java,对JavaScript还是陌生的。我注意到许多使用单个字符参数名称的JavaScript方法,例如以下示例。 doSomething(a,b,c) 我不喜欢它,但是一位JavaScript开发人员说服我这样做是为了减小文件大小,并指出必须将JavaScript文件传输到浏览器。 然后我发现自己正在与另一位开发人员交谈。他向我展示了Firefox将截断变量名以更快地加载页面的方式。这是Web浏览器的标准做法吗? 使用JavaScript编程时应遵循的最佳实践命名转换是什么?标识符长度重要吗?如果有,程度如何?

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.