Questions tagged «coding-style»

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

6
将Python代码转换为符合PEP8的工具
我知道有一些工具可以验证您的Python代码是否符合PEP8,例如,既有在线服务又有python模块。 但是,我找不到可以将我的Python文件转换为自包含的PEP8有效Python文件的服务或模块。有人知道是否有吗? 我认为这是可行的,因为PEP8完全是关于代码的外观,对吧?

5
使用do块与花括号{}
红宝石的新手,戴上新手手套。 以下两个摘要之间是否有任何区别(晦涩或实际)? my_array = [:uno, :dos, :tres] my_array.each { |item| puts item } my_array = [:uno, :dos, :tres] my_array.each do |item| puts item end 我意识到大括号语法可以让您将代码块放在一行上 my_array.each { |item| puts item } 但是除此之外,还有什么令人信服的理由使用一种语法而不是另一种?
112 ruby  coding-style 

19
#ifdef vs #if-作为启用/禁用特定代码段编译的方法,哪种方法更好/更安全?
这可能是风格问题,但我们的开发团队存在一些分歧,我想知道是否还有其他人对此有任何想法... 基本上,我们有一些调试打印语句,这些语句在正常开发过程中会关闭。我个人更喜欢执行以下操作: //---- SomeSourceFile.cpp ---- #define DEBUG_ENABLED (0) ... SomeFunction() { int someVariable = 5; #if(DEBUG_ENABLED) printf("Debugging: someVariable == %d", someVariable); #endif } 但是,有些团队更喜欢以下内容: // #define DEBUG_ENABLED ... SomeFunction() { int someVariable = 5; #ifdef DEBUG_ENABLED printf("Debugging: someVariable == %d", someVariable); #endif } ...哪种方法对您听起来更好,为什么呢?我的感觉是第一个比较安全,因为总会定义一些东西,并且没有危险可以破坏其他地方的其他定义。

11
在Python中强制命名参数
在Python中,您可能有一个函数定义: def info(object, spacing=10, collapse=1) 可以通过以下任何一种方式调用: info(odbchelper) info(odbchelper, 12) info(odbchelper, collapse=0) info(spacing=15, object=odbchelper) 多亏了Python允许任意顺序的参数(只要它们被命名)。 我们遇到的问题是,随着一些更大的函数的增长,人们可能会在spacing和之间添加参数collapse,这意味着错误的值可能会传递给未命名的参数。此外,有时不清楚需要输入什么。我们正在寻找一种方法来强迫人们命名某些参数-不仅是编码标准,还是理想的标志或pydev插件? 因此,在上述4个示例中,由于所有参数均已命名,因此只有最后一个示例可以通过检查。 奇怪的是,我们只会为某些功能打开它,但是有关如何实现此功能的任何建议-甚至可能的话,我们将不胜感激。

9
在R中命名变量的首选样式是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 改善这个问题 您喜欢在R代码中使用哪些命名变量和函数的约定? 据我所知,有几种不同的约定,所有这些约定共鸣共存: 1.使用句点分隔符,例如 stock.prices <- c(12.01, 10.12) col.names <- c('symbol','price') 优点: 在R社区中具有历史悠久的先例,在R核心中普遍存在,并且受到Google的R风格指南的推荐。 缺点: 充斥着面向对象的含义,并且使R新手感到困惑 2.下划线的使用 stock_prices <- c(12.01, 10.12) col_names <- c('symbol','price') 优点: 许多编程语言中的通用约定;已被Hadley Wickham的样式指南青睐,并用于ggplot2和plyr软件包。 缺点: R程序员从不使用过;在Emacs-Speaks-Statistics中恼人地映射到'<-'运算符(可通过'ess-toggle-underscore'更改)。 3.混合使用大写字母(camelCase) stockPrices <- c(12.01, 10.12) colNames <- c('symbol','price') 优点:在几种语言社区中似乎已被广泛采用。 缺点:有最新的先例,但历史上未使用(在R base或其文档中)。 最后,好像还不够令人困惑,我应该指出,《 Google风格指南》主张变量应使用点号,而函数应采用大小写混合。 R包之间缺乏一致的样式在几个层面上都是有问题的。从开发人员的角度来看,这使得维护和扩展他人的代码变得困难(尤其是其样式与您自己的代码不一致)。从R用户的角度来看,不一致的语法通过乘以表示概念的方式(例如,日期强制转换函数asDate(),as.date()或as_date()?)来加深R的学习曲线。日期())。

6
如何在Webstorm中应对大量未解决的变量警告?
我有一个从服务器获取数据的函数: function getData(data){ console.log(data.someVar); } Webstorm说someVar-是一个未解决的变量。我该如何消除此类警告? 我看到几个选择: 在ide设置中禁止显示警告; 添加带有字段(详细信息)的json源文件; 使用数组的语法:data['some_unres_var']; 此外,Webstorm还为我提供了为“数据”创建名称空间的功能(添加,如/** @namespace data.some_unres_var*/),创建此类字段,或对其进行重命名。

5
在Intellij中,如何在驼峰大小写和下划线之间切换?
在我公司,我们有两种针对Java和SQL的样式指南。在Java中,我有一个名为的字段historyOfPresentIllness,当我编写sql时,我想为其命名history_of_present_illness。当我突出显示短语时,是否有键盘快捷键可以从一个切换到另一个?还是可以做到这一点的插件? 当我问,我也不妨问,如果有办法把historyOfPresentIllness到history-of-present-illness。从Java到clojure风格。

18
方便地在enum和int / String之间映射
当使用只能接受有限数量值的变量/参数时,我尝试始终使用Java的enum,如 public enum BonusType { MONTHLY, YEARLY, ONE_OFF } 只要我留在代码中,就可以正常工作。但是,我经常需要与出于相同目的使用纯int(或String)值的其他代码进行交互,或者我需要从数据库中读取/写入数据,在数据库中数据以数字或字符串的形式存储。 在那种情况下,我想有一个方便的方法将每个枚举值与一个整数相关联,这样我就可以同时转换两种方式(换句话说,我需要一个“可逆枚举”)。 从枚举到整数很容易: public enum BonusType { public final int id; BonusType(int id) { this.id = id; } MONTHLY(1), YEARLY(2), ONE_OFF(3); } 然后,我可以访问int值BonusType x = MONTHLY; int id = x.id;。 但是,我看不到相反的好方法,即从int到enum。理想情况下, BonusType bt = BonusType.getById(2); 我唯一能想到的解决方案是: 将查找方法放入枚举,该方法BonusType.values()用于填充映射“ int->枚举”,然后对其进行缓存并将其用于查找。可以,但是我必须将此方法相同地复制到我使用的每个枚举中:-(。 将查找方法放入静态实用程序类。然后,我只需要一个“查找”方法,但我不得不摆弄反射以使其适用于任意枚举。 对于这样一个简单的(?)问题,这两种方法都显得很尴尬。 还有其他想法/见解吗?
108 java  enums  coding-style 

8
在.cpp文件中定义C ++名称空间方法的正确方法
可能是重复的,但搜索起来并不容易... 给定标题,例如: namespace ns1 { class MyClass { void method(); }; } 我已经method()在.cpp文件中以几种方式看到了定义: 版本1: namespace ns1 { void MyClass::method() { ... } } 版本2: using namespace ns1; void MyClass::method() { ... } 版本3: void ns1::MyClass::method() { ... } 是否有“正确”的方式来做到这一点?这些“错误”之处是否在于所有含义都不相同?

8
有人还在C#中使用[goto]吗?为什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 我想知道是否有人在C#中仍使用“ goto”关键字语法,以及这样做的可能原因是什么? 我倾向于将任何导致读者无视代码的语句视为不良做法,但想知道是否存在使用这种语法的可靠方案? 转到关键字定义
104 c#  .net  coding-style  goto 

6
PEP 8,为什么关键字参数或默认参数值的'='周围没有空格?
为什么PEP 8建议不要=在关键字参数或默认参数值中使用空格? 这是否与=在Python代码中建议在每出现的其他地方推荐空格不一致? 怎么: func(1, 2, very_long_variable_name=another_very_long_variable_name) 优于: func(1, 2, very_long_variable_name = another_very_long_variable_name) Python的BDFL与讨论/解释的任何链接将不胜感激。 请注意,这个问题更多的是关于kwargs而不是默认值,我只是使用了PEP 8中的措词。 我不是在征求意见。我要问这个决定背后的原因。这更像是在问我为什么要在C程序中{与if语句使用同一行,而不是是否应该使用它。



7
在C ++中,从函数返回向量仍然是不好的做法吗?
简短版本:通常以许多编程语言返回大对象(例如向量/数组)。如果该类具有move构造函数,那么C ++ 0x现在可以接受这种样式吗,还是C ++程序员认为它是怪异的/丑陋的/讨厌的? 长版:在C ++ 0x中,仍然认为这是错误的形式吗? std::vector<std::string> BuildLargeVector(); ... std::vector<std::string> v = BuildLargeVector(); 传统版本如下所示: void BuildLargeVector(std::vector<std::string>& result); ... std::vector<std::string> v; BuildLargeVector(v); 在较新的版本中,从返回的值BuildLargeVector是一个右值,因此将使用std::vector(N)RVO不发生的move构造函数构造v 。 甚至在C ++ 0x之前,由于(N)RVO,第一种形式通常也很“高效”。但是,(N)RVO由编译器决定。现在我们有了右值引用,可以保证不会进行深层复制。 编辑:问题实际上不是关于优化。所示的两种形式在现实程序中的性能几乎相同。过去,第一种形式的性能可能会降低几个数量级。结果,很长一段时间以来,第一种形式是C ++编程中的主要代码味道。我希望不再了吗?

12
提交消息应该使用现在时还是过去时?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 改善这个问题 那么,您认为哪个更好,更直观? Fixed the XXX bug in YYY Fix the XXX bug in YYY Fixes the XXX bug in YYY Fixing the XXX bug in YYY 请提供您的理由。请注意,我是从您的总体观点出发,这意味着您不应尝试将其与首选的svn / cvs工具或编程语言相关联,而应将其视为应该/可以应用于任何工具和编程语言的事物。

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.