Questions tagged «coding-standards»

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

3
我的源代码应该使用UTF-8吗?
我觉得通常您并不真正选择代码的格式。我的意思是,过去我的大多数工具都为我决定了。或者我甚至都没有真正考虑过。前几天我在Windows上使用TextPad,并且在保存文件时,它提示我有关ASCII,UTF-8 / 16,Unicode等的信息。 我假设几乎所有编写的代码都是ASCII,但是为什么要使用ASCII?我们现在是否应该使用UTF-8文件作为源代码,为什么?我想这可能对多语言团队有用。是否有与多语言团队如何命名变量/函数/等相关的标准?

8
那所有这些编码规则呢?
我一直支持为公司或特定项目的开发人员制定编码规则的想法。特别是如果公司的规模大于10。公司越大,需求越大。我知道很多人会不同意,但是我看到没有这些项目的项目,并且代码看起来像是彻底的灾难。 由此产生的真正问题是,如何使那些不喜欢在if语句中使用方括号,不喜欢在代码中到处使用相同的连接字符串的人,或者不使用编码规则而又不反对的人这个主意?

3
如何处理具有相同名称的类(不同的包)
我和我的研发团队维护着庞大的代码库。我们已经将业务逻辑分为多个包。其中一些具有相同名称的类。 如您所料,当在同一Java文件中引用两个类时,名称冲突。 例如: com.myapp.model (package) - Device (class) - ... com.myapp.data (package) - Device (class) - ... 我们就治疗这些病例的最佳实践进行了辩论,并提出了以下选择: 第一种选择 重命名类,添加前缀 ModelDevice DataDevice 第二选择 同时引用包和类的完整名称 com.myapp.model.Device com.myapp.data.Device 在代码管理和可伸缩性方面,更正确的是什么? 我们目前正在混合使用这两种方法,并开始出现不一致之处

2
我们需要验证整个模块的使用情况还是仅验证公共方法的参数?
我听说建议您验证公共方法的参数: 如果他不期望为空,是否应该检查为空? 方法是否应验证其参数? MSDN-CA1062:验证公共方法的参数(我具有.NET背景,但问题不是特定于C#的) 动机是可以理解的。如果将以错误的方式使用模块,则我们希望立即引发异常,而不是任何不可预测的行为。 令我困扰的是,错误的参数并不是使用模块时唯一的错误。这是一些错误情况,如果我们遵循建议并且不希望错误升级,则需要添加检查逻辑: 来电-意外参数 来电-模块处于错误状态 外部通话-返回意外结果 外部调用-意外的副作用(两次进入调用模块,破坏了其他依赖状态) 我试图考虑所有这些情况,并用一种​​方法(对不起,不是C#的人)编写一个简单的模块: public sealed class Room { private readonly IDoorFactory _doorFactory; private bool _entered; private IDoor _door; public Room(IDoorFactory doorFactory) { if (doorFactory == null) throw new ArgumentNullException("doorFactory"); _doorFactory = doorFactory; } public void Open() { if (_door != null) throw …

5
当if else构造可以在更好的时间内完成工作时,为什么要在函数中使用HashMap确定要返回哪个值(对于键)?
当我最近在一家大公司工作时,我注意到那里的程序员遵循这种编码风格: 假设我有一个函数,如果输入为A,则返回12;如果输入为B,则返回21;如果输入为C,则返回45。 所以我可以将函数签名写为: int foo(String s){ if(s.equals("A")) return 12; else if(s.equals("B")) return 21; else if(s.equals("C")) return 45; else throw new RuntimeException("Invalid input to function foo"); } 但是在代码审查中,我被要求将功能更改为以下内容: int foo(String s){ HashMap<String, Integer> map = new HashMap<String, Integer>(); map.put("A", 12); map.put("B", 21); map.put("C", 45); return map.get(s); } 我不能说服自己为什么第二个代码比第一个更好。第二个代码肯定会花费更多的时间来运行。 使用第二个代码的唯一原因可能是它提供了更好的可读性。但是,如果该函数被多次调用,那么第二个函数会不会减慢该实用程序调用它的运行时间? 你怎么看待这件事?

6
我的团队是否应该使用一些公认的通用编码标准作为自己的基础?
我所在的研发团队已决定采用编码标准。我们只是最近才成立的,我们自己的代码和通用编码时间太少,无法将我们的标准/惯例文档建立在我们团队有机发展的基础上,也无法借鉴我们自己的代码中的良好示例等。 现在,我们每个人都有一些过去工作场所的经验-尽管我们每个人都没有处于这样一种状态:“让我们在这里采用这份全面的文件,我发现它适合我们在这里从事的工作”(*)。另外,我们中的某些人(包括我本人)只有没有官方编码标准的地方的经验,或者在不同的环境中用不同的语言编写(高压每周发布的生产环境,而不是更加注重研究的开发工作) 因此,我一直在考虑的一种选择是获取一个相对知名且备受关注的文档,剪掉我们不在乎/关心的内容,并根据我们的偏好进行一些修改。 这是常见的做法吗?您认为这是个好主意吗?如果是这样,那将是一个合理的“基准”编码标准(不要告诉我哪个是最好的,我不想在这里引发宗教冲突;只需指出可以在其基础上进行全面或“中立”的内容) ) 笔记: 我们希望可以使用C,C ++,OpenCL,CUDA,Python。 我们是一个由4人+经理组成的团队,预计在一年左右的时间内增长到大约5-6。 在我们公司中,团队几乎完全是自治的,通常根本不互动(甚至不使用彼此的代码-工作是在完全不同的项目上);所以-没有公司范围内的考虑。 关于工具,目前我们知道我们将使用Eclipse,因此它的代码格式化程序至少将成为一种工具。Ctrl + Shift + F很久以来就是我的朋友 在编写Java时,我采用了尽可能严格遵循Bloch的Effective Java的做法。现在,这还不是一个编码标准,但是您可以将一些砖,水泥和砂浆称为编码标准。我当时正在考虑将类似的内容作为“混合”的一部分(注意我们不使用Java)。 我指的是更广泛意义上的编码标准,例如采用对P.SE问题的回答中提出的建议。 我找到了大量的C ++编码标准文档 ; 也许我应该挖掘我们的基线。 (*)并非完全正确,但我不想使这个问题复杂化。

4
“ TODO自动生成的方法存根”是什么意思?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 6年前关闭。 我正在使用eclipse进行android编程,到处到处我都看到“ TODO自动生成的方法存根”语句。 我知道这些方法是在创建类和其他触发器活动时由eclipse自动生成的,但是我不了解在所有地方都提到它的必要性。 有什么地方需要反复提到它?

1
相关类和接口的命名
我创建了一个ObjectParser类,该类使用IObjectParserDataSource用作数据源将数据解析为强类型对象(数据可以是Excel文件,文本文件,数组,查询字符串等)。 我的实现示例IObjectParserDataSource包括: TextFileObjectParserDataSource ExcelFileObjectParserDataSource 这些类名对我来说真的很长且令人困惑。 我可以给他们起个名字: TextFileDataSource ExcelFileDataSource 但这带来了一定程度的模糊性,IObjectParserDataSource乍一看它们之间并没有那么明显地相关。这一点很重要,因为定义这些数据源将在客户端代码中进行,并且我希望将潜在的混乱和不确定性降至最低。 在这种情况下,您将如何命名这些类?


3
我应该如何准备好代码以进行OpenSourcing并将其放置在GitHub上?
几周后,我的项目将结束,我想开始准备好代码供其他人使用。 我将把所有内容发布到GitHub,以便人们可以对其进行调整,并希望使其更好。 我想我要问的是,确保我的代码被充分记录并措辞正确以供他人使用的最佳方法是什么? 我知道您应该始终注释所有内容,并且我将为每种方法添加@params功能,但是一般是否还有其他提示?

6
我应该在URL中使用标题大小写吗?
我们目前正在确定具有多个Web应用程序的网站上的一致命名约定。从历史上看,我一直倡导“小写所有字母!” 创建网址时: http://example.com/mysystem/account/view/1551 但是,在过去的一两年中,特别是自从我开始使用ASP.NET MVC并开始处理基于REST的URL以来,我一直喜欢将URL中每个节/单词的首字母大写更容易阅读(恕我直言)。 http://example.com/MySystem/Account/View/1551 我们不会处于人们需要阅读或能够理解URL的情况,因此这本身不是驱动程序。我们追求的主要目标是一种合理且有意义的一致方法。 是否有任何标准声明一种方法或另一种方法是好的,或者我们可能会遇到(至少现实地是现代的)设置会优先选择另一种设置的问题?目前对此辩论的普遍共识是什么?

5
如何避免类与本机类之间的名称相似?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我刚遇到一个“有趣的问题”,我想请您就以下问题提出意见: 我正在开发一个系统,由于多种原因(含义:抽象,技术独立性等),我们创建了自己的信息交换类型。 例如:如果有一个称为SendEmail的方法并由业务逻辑调用,则该方法具有类型OurCompany.EMailMessage的参数,该参数是完全与技术无关的对象,并且仅包含“与业务相关的数据”(对于例如,除了头编码之外,没有其他信息)。 在SendEmail函数内部,我们从EMailMEssage对象获取此信息,并创建一个MailMessage对象(该对象是特定于技术的),以便可以通过网络发送它。 您已经注意到,我们的类与“本地”语言类的名称非常相似。问题是:这正是电子邮件的含义,因此很难为它们找到另一个有意义的名称。 您经常遇到这个问题吗?您如何管理? 编辑:@mgkrebbs刚刚评论了使用完全限定的名称。这是我们目前的方法,但是恕我直言有点太冗长了。如果可能的话,我想要更清洁的东西。

3
谁能推荐TSQL的编码标准?
长期以来,我们已经为.Net代码制定了编码标准,并且随着时间的流逝,似乎有一些声誉卓著的来源来提出如何应用它们的想法。 我希望能够为我们的产品编写用于编写的SQL的一些标准,但是对于确定良好编写的SQL的共识,似乎没有任何资源。

1
当您被迫在糟糕的编码(设计)标准下进行编码时该怎么办
这与典型的命名约定,在何处放置注释,是否应该使用区域等无关,这与编码标准有关,该标准讨论了程序员应如何设计其应用程序的细节。 像这样的东西:(在.NET应用程序上,而不是确切的用词) 尽可能少上课 课堂应尽其所能做到 修改比扩展好 每个类别一个DLL(一个用于电子邮件功能的库,一个用于文件相关功能的库) 每个人都有过糟糕的代码和可能糟糕的设计经验,但是如果您被安排在一个团队中,而他们的设计标准却感觉不对,那该怎么办?当我被要求以这种方式编码时,我不确定自己快要死了时,我不确定如何做出专业回应。
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.