Questions tagged «coding-style»

**不使用!该标签指的是完全有思想的主题,因此不再是主题。**遵循编码风格和约定的问题。

5
关系表命名约定
我正在开始一个新项目,并希望从一开始就获取我的表名和列名。例如,我一直在表名中使用复数形式,但是最近学习到的单数形式是正确的。 因此,如果我得到一个表“ user”,然后得到只有该用户拥有的产品,该表应该命名为“ user_product”还是“ product”?这是一对多的关系。 进一步,如果我(出于某种原因)对每个产品有几个产品描述,是“ user_product_description”还是“ product_description”还是“ description”?当然,要设置正确的外键。仅将描述命名是有问题的,因为我也可以具有用户描述或帐户描述等。 如果我想要一个只有两列的纯关系表(很多),该怎么办?“ user_stuff”还是“ rel_user_stuff”之类的?如果是第一个,那么这与“ user_product”有什么区别? 我们非常感谢您提供的任何帮助,如果有人建议您使用某种命名约定标准,请随时进行链接。 谢谢

10
检查字符串是否包含列表中的元素(字符串)
对于以下代码块: For I = 0 To listOfStrings.Count - 1 If myString.Contains(lstOfStrings.Item(I)) Then Return True End If Next Return False 输出为: 情况1: myString: C:\Files\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: True 情况2: myString: C:\Files3\myfile.doc listOfString: C:\Files\, C:\Files2\ Result: False 该列表(listOfStrings)可能包含多个项目(最少20个),并且必须对照数千个字符串(例如myString)进行检查。 有没有更好(更有效)的方法来编写此代码?


14
do..end vs括号中的大括号
我有一个同事正在积极尝试说服我不要使用do..end,而应使用花括号在Ruby中定义多行块。 我坚决只使用短括号来代替大括号,而对其他所有东西都做完。但是我认为我会与更广泛的社区联系以获得一些解决方案。 那是什么,为什么?(一些Shoulda代码示例) context do setup { do_some_setup() } should "do somthing" do # some more code... end end 要么 context { setup { do_some_setup() } should("do somthing") { # some more code... } } 就个人而言,仅看上述内容就可以为我解答问题,但我想向更大的社区开放。

14
在C / C ++中检查NULL指针[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 改善这个问题 在最近的代码审查中,贡献者试图强制NULL以下列方式执行对指针的所有检查: int * some_ptr; // ... if (some_ptr == NULL) { // Handle null-pointer error } else { // Proceed } 代替 int * some_ptr; // ... if (some_ptr) { // Proceed } else { // Handle null-pointer error } 我同意他的方法在某种意义上更为清晰,因为它明确地说“确保此指针不为NULL”,但我要反驳这一点,说的是从事此代码工作的任何人都将理解在指针中使用指针变量。if语句隐式检查NULL。我也觉得第二种方法引入类似漏洞的可能性较小: if (some_ptr = NULL) 这只是查找和调试的绝对痛苦。 …


12
一个免费的工具,可以根据一组编码标准检查C / C ++源代码吗?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 6年前关闭。 改善这个问题 在Java中找到这样一种工具(Checkstyle,JCSC)看起来很容易,但是我似乎找不到C / C ++的工具。我不是在寻找像皮棉一样的静态代码分析器,我只想检查诸如变量命名,大写,间距,标识,括号位置等编码标准。
151 c++  c  coding-style 

29
为什么在C ++类中的成员变量上使用前缀
许多C ++代码使用语法约定来标记成员变量。常见的例子包括 公共成员的m_ memberName(完全使用公共成员) _ 私人成员或所有成员的memberName 其他人试图在使用成员变量时强制使用this-> 成员。 以我的经验,大多数较大的代码库都无法始终如一地应用这些规则。 在其他语言中,这些约定的使用范围远远不够。我只偶尔在Java或C#代码中看到它。我想我从未在Ruby或Python代码中看到过它。因此,似乎有一种趋势是使用更现代的语言,不对成员变量使用特殊标记。 这个约定是今天在C ++中还是有用的还是仅仅是过时的。特别是因为跨库使用不一致。其他语言没有表明没有成员前缀也可以做到吗?

12
如果仅功能B需要功能A,是否应在B内部定义A?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5个月前关闭。 改善这个问题 简单的例子。两种方法,一种从另一种调用: def method_a(arg): some_data = method_b(arg) def method_b(arg): return some_data 在Python中,我们可以def在另一个内部声明def。因此,如果method_b只需要从中调用method_a,我应该method_b在内部声明method_a吗?像这样 : def method_a(arg): def method_b(arg): return some_data some_data = method_b(arg) 还是应该避免这样做?

6
私人与受保护-可见性良好做法关注
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 改善这个问题 我一直在寻找,我知道理论上的区别。 public-任何类/函数都可以访问该方法/属性。 protected-仅此类和任何子类可以访问该方法/属性。 私有 -只有此类可以访问方法/属性。它甚至不会被继承。 很好,问题是,它们之间的实际区别是什么?什么private时候使用protected?什么时候使用?在这方面是否有标准或可接受的良好实践? 到目前为止,为了保留继承和多态的概念,我使用public应从外部访问的所有内容(例如构造函数和主类功能),以及protected内部方法(逻辑,辅助方法等)。我在正确的轨道上吗? (请注意,这个问题是给我的,但也供将来参考,因为我还没有看到像这样的问题)。

11
如何命名工厂之类的方法?
我猜想大多数类似工厂的方法都是以开头的create。但是为什么将它们称为“ 创建 ”?为什么不“ 制作 ”,“ 产生 ”,“ 建立 ”,“ 产生 ”或其他?只是口味问题吗?约定?还是“创建”中有特殊含义? createURI(...) makeURI(...) produceURI(...) buildURI(...) generateURI(...) 您一般会选择哪一个,为什么?

4
在C ++ 11中,按值传递是否是合理的默认值?
在传统的C ++中,将值传递给函数和方法对于大型对象而言比较慢,并且通常对此不屑一顾。取而代之的是,C ++程序员倾向于传递引用,这虽然更快,但是却引入了与所有权有关的各种复杂问题,尤其是与内存管理有关的问题(在对象是堆分配的情况下) 现在,在C ++ 11中,我们有了Rvalue引用和move构造函数,这意味着可以实现大对象(例如std::vector),而该对象很容易通过值传入和传出函数。 因此,这是否意味着默认值应为诸如std::vector和类型的实例按值传递std::string?定制对象呢?最新的最佳做法是什么?
142 c++  coding-style  c++11 

11
使用“ for”循环遍历C ++ Vector
我是C ++语言的新手。我已经开始使用向量,并且注意到在我看到的所有代码中都通过索引迭代向量,for循环的第一个参数始终是基于向量的。在Java中,我可以使用ArrayList做类似的事情: for(int i=0; i < vector.size(); i++){ vector[i].doSomething(); } 有没有我在C ++中看不到的原因?这是不好的做法吗?

6
我应该使用`import os.path`还是`import os`?
根据官方文档,os.path是一个模块。因此,导入它的首选方式是什么? # Should I always import it explicitly? import os.path 要么... # Is importing os enough? import os 请不要回答“ os为我导入作品”。我知道,它现在也对我有效(自python 2.6起)。我想知道的是有关此问题的任何官方建议。因此,如果您回答这个问题,请发表您的参考资料。

3
有效的C ++仍然有效吗?
从我在这篇文章中看到的内容,我决定开始阅读《有效的C ++》一书。 但是,由于C ++ 11带来了许多新功能,并且一些良好实践发生了变化,所以我不确定这是否是一个好主意。C ++ 11的出现是否已淘汰有效C ++中包含的任何建议?如果是这样,我应该避免哪些主题?

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.