Tag: 编码风格

Pylint无效的常量名称

我收到一个关于我的常量MIN_SOIL_PARTICLE_DENS错误: MIN_SOIL_PARTICLE_DENS (无效名称)。 任何想法为什么这个常数是错的? 这是我的全部function: def bulk_density(clay, sand, organic_matter): MIN_SOIL_PARTICLE_DENS = 2.65 x1 = (0.078 + 0.278 * sand + 0.034 * clay + 0.022 * organic_matter – 0.018 * sand * organic_matter – 0.027 * clay * organic_matter – 0.584 * sand * clay) x2 = -0.107 + 1.636 * x1 field_capacity = vol_water_content_33_j_kg(clay, […]

链式方法在Python中调用缩进样式

从阅读PEP-8,我知道你应该把右括号放在函数调用的最后一个参数的同一行: ShortName.objects.distinct().filter( product__photo__stockitem__isnull=False) 或许,长时间的表情最好是完全避免。 但是,如果这是不可取的, 你将如何去多个链式方法调用? 是否应该closures一个新的线? ShortName.objects.distinct().filter( product__photo__stockitem__isnull=False ).values_list('value', flat=True) 那么没有参数的方法呢? 如何在不用引用中间返回值的情况下将它们写入多行? ShortName.objects.distinct( ).filter().values() # looks ugly 更新 :有一个重复的问题, 如何打破Python中的链式方法的一行? 。 接受的答案表明从jQuery风格开始,每个新行都带有一个点。 作者没有提供任何理由或权威的参考,所以我想获得这种风格或其他select的确认。

显式比较布尔常量是不好的,例如,Java中的if(b == false)?

写这个不好吗? if (b == false) //… while (b != true) //… 反而总是写得更好: if (!b) //… while (!b) //… (大概是这样吗?),但是你怎么衡量两者之间的明确性,简洁性,清晰性和可读性等? 更新 为了限制主观性,我还要感谢来自权威编码风格指南的任何引用,这些引用总是比较好用的,或者在何时使用。 注意 :variables名称b仅用作示例,ala foo和bar 。

什么是最优雅的方式来限制一个数字段?

比方说x , a和b是数字。 我需要将x限制在段[a, b] 。 我可以写Math.max(a, Math.min(x, b)) ,但是我不觉得它很容易阅读。 有没有人有一个聪明的方式来写这个更可读的方式?

closures斜线之前的空间?

我经常在XML和HTML标签中的斜杠之前看到一个空格。 XHTML换行符可能是典型的例子: <br /> 代替: <br/> 空间似乎是多余的。 其实我觉得这是多余的。 写这个空间的原因是什么? 我读过这个空间解决了一些“向后兼容性问题”。 哪个向后兼容性问题? 这些问题仍然是相关的,还是我们仍然增加额外的空间,为了IE3的兼容性? 是否存在一些关于这个问题的明确答案? 如果不是向后兼容,那么这是一个可读性的问题? 类似于大开放的大括号辩论? void it_goes_up_here() { int no_you_fool_it_goes_down_there() { 我当然可以尊重不同的文体观点,所以我很高兴知道写这个空间只是一个品味问题。

在Intellij中,如何在驼峰大小写和下划线之间切换?

在我的公司,我们有两个不同的风格指南为java vs sql。 在java中,我有一个名为historyOfPresentIllness的字段,当我编写SQL时,我想将其命名为history_of_present_illness 。 是否有一个键盘快捷方式从一个切换到另一个时,我有短语突出显示? 或者也许是一个可以做到这一点的插件? 当我问到的时候,我不妨问一下,是否有办法将history-of-present-illness转化为history-of-present-illness 。 这是从Java到clojure风格。

在C ++不好的做法中使用assert()?

我倾向于为我的C ++代码添加大量断言,以便在不影响发布版本性能的情况下进行debugging。 现在, assert是一个纯粹的Cmacros,没有考虑C ++机制。 另一方面,C ++定义了std::logic_error ,它是在程序逻辑(因此名称)出现错误的情况下抛出的。 抛出一个实例可能只是完美的,更多的C ++ ish替代assert 。 问题是, assert和abort都立即终止程序而不调用析构函数,因此跳过清理,而手动抛出exception增加了不必要的运行成本。 解决这个问题的一个办法是创build一个自己的断言macrosSAFE_ASSERT ,它的作用就像C对应的一样,但是在失败的时候抛出一个exception。 我可以想到关于这个问题的三点意见: 坚持C的断言。 由于程序立即终止,修改是否正确展开并不重要。 另外,在C ++中使用#define也是一样糟糕。 抛出一个exception,并在main()中捕获它 。 允许代码在程序的任何状态下跳过析构函数都是不好的做法,必须不惜一切代价来避免,所以调用terminate()。 如果抛出exception,则必须被捕获。 抛出一个exception,让它终止程序。 终止程序的exception是可以的,并且由于NDEBUG ,这在发布版本中不会发生。 捕捉是不必要的,并将内部代码的实现细节公开给main() 。 这个问题有一个明确的答案吗? 任何专业的参考? 编辑:跳过析构函数当然是没有不确定的行为。

Intellij(Android studio)成员variables前缀

如何configurationAndroid Studio(或一般Intellij)正确地为具有前缀的成员variables生成getter和setter? 如果我有一堂课 public class Foo{ int mBar; } 我想创buildgetBar()而不是getMBar当我做Refactor->Encapsulate或Generate 编辑 我find了每个项目的方法:你只需要File->Settings->Project Settings->Code Style 但它在我的项目目录中的某处创build了一个设置文件。 我想要一个解决scheme,让我为所有项目,现在和将来做一次。

如何在Webstorm中处理大量未解决的variables警告

好的,我有一个从ajax获取数据的函数: function getData(data){ console.log(data.some_unres_var); } Webstorm说some_unres_var – 是未解决的variables。 我不知道如何处理这样的警告。 我看到几个选项: 压制警告; 添加一个带有字段的json源文件(更多细节 ); 使用类似数组的语法: data['some_unres_var'] (但jslint警告我不要这样做); ??? Webstorm也为我提供了为“数据”创build命名空间的function(添加类似/** @namespace data.some_unres_var*/的注释),创build这个字段或者重命名它。

Java命名约定的静态最终variables

有一个规则说: 表示常量(最终variables)的名称必须全部使用下划线来区分单词(取自http://geosoft.no/development/javastyle.html ) 对于像int或者string这样的原始types来说工作正常: private static final int MAX_COUNT = 10; 但是非基元types呢? 在大多数情况下,我看到以下几点: private static final Logger log = Logger.getLogger(MyClass.class); 或者在单例中,实例variables不是大写。 问题是什么是正确的方式来声明这些types的variables(如日志和实例)?