Questions tagged «coding-style»

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

8
如何在Python中打破一系列链接方法?
我有以下代码行(不要怪罪命名约定,它们不是我的): subkeyword = Session.query( Subkeyword.subkeyword_id, Subkeyword.subkeyword_word ).filter_by( subkeyword_company_id=self.e_company_id ).filter_by( subkeyword_word=subkeyword_word ).filter_by( subkeyword_active=True ).one() 我不喜欢它的外观(不太可读),但是在这种情况下,我没有更好的主意将行数限制为79个字符。有没有更好的方法来破解它(最好没有反斜杠)?

10
<STYLE>是否必须在HTML文档的<HEAD>中?
严格来说,style标记是否需要head位于HTML文档的内部?4.01标准暗示了这一点,但未明确说明: STYLE元素允许作者将样式表规则放在文档的开头。HTML允许在文档的HEAD部分中使用任意数量的STYLE元素。 我说“严格来说”是因为我有一个将样式元素放入体内的应用程序,而我测试过的所有浏览器似乎都使用了样式元素。我只是想知道那是否合法。


7
Node.js应用程序的编码样式指南?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 3年前关闭。 改善这个问题 是否有一个(或多个)node.js编码样式指南?如果没有,那么顶级开源节点项目将使用哪些新兴样​​式? 我正在按照PEP 8(Python的标准编码样式指南)的要求寻找指南(或数本指南)。我看过很多不值得在这里链接的JavaScript指南(大多是旧的,并且针对客户端JavaScript)。我找到了一个有趣的node.js 样式指南。 编码样式指南或编码约定应包括(但不限于): 代码布局:缩进(2个空格,4个空格,制表符等),换行符,换行符等。 空格,例如“ function(arg)”与“ function(arg)” 分号或无分号,var声明,... 命名,例如do_this()与doThis(),var_name与varName,... node.js和JavaScript惯用语,例如== vs. ===,回调的第一个arg是错误对象,... 意见和文件 附带的工具,例如棉绒检查器,单元测试框架,... 这个话题显然是高度主观的,但是我认为这是社区发展成熟过程中建立通用且被广泛接受的编码风格的重要一步。另外,它不仅仅与味道有关。特别是,诸如“使用===而非==“之类的规则对代码质量有直接影响。

24
函数何时过长?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 35线,55线,100线,300线?什么时候应该开始分解?我之所以问是因为我有一个包含60行(包括注释)的函数,并且正在考虑将其拆分。 long_function(){ ... } 变成: small_function_1(){...} small_function_2(){...} small_function_3(){...} 这些函数将不会在long_function之外使用,使较小的函数意味着更多的函数调用,等等。 什么时候将功能分解为较小的功能?为什么? 方法应该只做一件合乎逻辑的事情(考虑功能性) 您应该可以在一个句子中解释该方法 它应该适合您显示器的高度 避免不必要的开销(指出明显的注释...) 对于小型逻辑功能,单元测试更容易 检查功能的一部分是否可以被其他类或方法重用 避免过度的类间耦合 避免深层嵌套的控制结构 谢谢大家的回答,编辑列表并为正确的答案投票,我将选择一个;) 我现在正在考虑这些想法:)

15
使用不带花括号的if语句是不好的做法吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 改善这个问题 我看过这样的代码: if(statement) do this; else do this; 但是,我认为这更具可读性: if(statement){ do this; }else{ do this; } 既然这两种方法都起作用,那么这仅仅是使用偏好还是会推荐一种方法而不是另一种方法?

7
Haskell函数组成(。)和函数应用程序($)的成语:正确使用
我一直在阅读Real World Haskell,并且快要结束了,但是风格问题一直困扰着我与(.)and ($)运算符。 当您编写一个由其他功能组成的函数时,可以这样写: f = g . h 但是,当您在这些函数的末尾应用某些内容时,我会这样写: k = a $ b $ c $ value 但是这本书会这样写: k = a . b . c $ value 现在,在我看来,它们在功能上是等效的,它们在我眼中的作用完全相同。但是,我看的越多,人们见到的书就越多,就像书中写的那样:(.)首先编写,然后最后才使用($)附加值来评估手数(没人会用很多美元组成) 。 是否有理由比使用所有($)符号更好地使用书籍方式?还是我没有得到一些最佳实践?还是它是多余的,我根本不必担心它?

17
是否有充分的理由对SQL关键字使用大写?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 改善这个问题 默认值似乎是大写的,但是否真的有任何理由要对关键字使用大写?我开始使用大写字母,因为每当我尝试创建新存储过程(例如新存储过程)时,我都试图匹配SQL Server给我的内容。但是后来,我对我的第5根婴儿的手指感到不舒服,这总是需要按住Shift按钮,因此我停止使用大写字母。我为什么要回到大写字母? 编辑:谢谢你们的答案。在COBOL为王的时候,我还没有编程,所以我没有意识到这一点。从现在开始,我将坚持使用小写字母。



26
布尔作为方法参数是不可接受的吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 改善这个问题 我的一位同事说,布尔值作为方法参数是不可接受的。它们应由枚举代替。起初我没有看到任何好处,但是他给了我一个例子。 什么更容易理解? file.writeData( data, true ); 要么 enum WriteMode { Append, Overwrite }; file.writeData( data, Append ); 现在我懂了!;-) 这绝对是一个示例,其中枚举作为第二个参数使代码更具可读性。 那么,您对此主题有何看法?

12
Switch语句掉线…应该允许吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 只要我记得我就避免使用switch语句掉线。实际上,我不记得它曾经作为一种可能的方式进入我的意识,因为它早在我的脑海中就被深深钻研了,它只不过是switch语句中的一个错误。但是,今天我遇到了一些设计上使用它的代码,这让我立即想知道社区中的每个人对switch语句失败的看法。 是某种编程语言应该明确不允许的(就像C#一样,尽管它提供了一种解决方法),或者它是任何一种功能强大的语言的功能,都足以让程序员掌握? 编辑: 我对落空的含义还不够具体。我经常使用这种类型: switch(m_loadAnimSubCt){ case 0: case 1: // Do something break; case 2: case 3: case 4: // Do something break; } 但是,我担心这样的事情。 switch(m_loadAnimSubCt){ case 0: case 1: // Do something, but fall through to the other cases // after doing it. case 2: case 3: …

6
在Python中,什么时候应该使用函数而不是方法?
Python的Zen指出,只有一种方法可以做事情-但我经常遇到决定何时使用函数以及何时使用方法的问题。 让我们举一个简单的例子-ChessBoard对象。假设我们需要某种方式使董事会上所有合法的King举动均可用。我们是否编写ChessBoard.get_king_moves()或get_king_moves(chess_board)? 这是我看过的一些相关问题: 为什么python使用“魔术方法”? Python字符串没有字符串长度方法是有原因的吗? 我得到的答案基本上没有定论: 为什么Python使用方法来实现某些功能(例如list.index()),却使用其他方法(例如len(list))呢? 主要原因是历史。函数用于那些对一组类型通用的操作,即使对于根本没有方法的对象(例如元组),这些操作也可以使用。使用Python的功能特性(map(),apply()等)时,具有可以轻松应用于对象的不定形集合的函数也很方便。 实际上,将len(),max(),min()实现为内置函数实际上比将它们实现为每种类型的方法要少。人们可能会质疑个别情况,但这是Python的一部分,现在进行这样的基本更改为时已晚。必须保留功能以避免大量代码损坏。 尽管很有趣,但是上面并没有真正说明采用哪种策略。 这是原因之一-使用自定义方法,开发人员可以自由选择其他方法名称,例如getLength(),length(),getlength()或其他名称。Python强制执行严格的命名,以便可以使用通用函数len()。 稍微有趣一点。我认为函数在某种意义上是接口的Pythonic版本。 最后,来自Guido本人: 谈论能力/接口使我想到了一些“流氓”特殊方法名称。在《语言参考》中,它说:“类可以通过定义具有特殊名称的方法来实现某些由特殊语法调用的操作(例如算术运算或下标和切片)。” 但是,所有这些带有特殊名称的方法(例如__len__或)__unicode__似乎都是为内置函数的利益提供的,而不是为了支持语法。大概在基于接口的Python中,这些方法将在ABC上变成常规命名的方法,因此 __len__将成为 class container: ... def len(self): raise NotImplemented 虽然,再想一想,我不明白为什么所有的句法运算都不会仅仅在特定的ABC上调用适当的通常命名的方法。“ &lt;”举例来说,大概会调用“ object.lessthan”(或者是“ comparable.lessthan“)。因此,另一个好处是能够使Python摆脱这种乱七八糟的名字,对我而言这似乎是HCI的改进。 嗯 我不确定我是否同意(图:-)。 我首先要解释“ Python基本原理”的两个方面。 首先,出于HCI的原因,我选择了len(x)而不是x.len()(def __len__()后来出现了)。实际上,两个HCI相互交织在一起: (a)对于某些运算,前缀表示法比后缀读得更好-前缀(和infix!)操作在数学中具有悠久的传统,喜欢在视觉上帮助数学家思考问题的表示法。比较与我们改写像公式简单x*(a+b)到x*a + x*b使用原始OO符号做同样的事情的笨拙。 (b)当我读到说的代码时,len(x)我知道那是在问某物的长度。这告诉我两件事:结果是整数,参数是某种容器。相反,当我阅读本文时x.len(),我必须已经知道这x是一种实现接口或从具有standard的类继承的容器len()。当未实现映射的类具有get()或keys() 方法,或者不是文件的某些具有方法时,我们有时会感到困惑write()。 用另一种方式说同样的事情,我将'len'视为内置 操作。我不想失去那个。我不能肯定地说出您是否是那样的意思,但是“ def len(self):...”当然听起来像您想将其降级为普通方法。我对此坚决为-1。 我答应解释的Python基本原理的第二点是为什么我选择了特殊的外观__special__而不是仅仅 选择外观的原因special。我期待类可能要覆盖的许多操作,一些标准(例如__add__或__getitem__),某些不是那么标准(例如,泡菜__reduce__很长一段时间都不支持C代码)。我不希望这些特殊操作使用普通的方法名称,因为那样的话,预先存在的类或用户没有为所有特殊方法存储百科全书的用户编写的类可能会意外地定义它们并非要实现的操作,可能会造成灾难性的后果。伊万·科斯蒂奇(IvanKrstić)在他的信息中对此进行了更为简洁的解释,在我将所有这些内容写完之后,这些信息才得以体现。 ---Guido van Rossum(主页:http ://www.python.org/~guido/ ) 我对此的理解是,在某些情况下,前缀表示法更有意义(即,从语言的角度来看,Duck.quack比quack(Duck)更有意义。)而且,该函数还允许使用“接口”。 …

8
Python编码标准/最佳实践
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 在python中,您通常使用PEP 8-Python代码样式指南作为您的编码标准/准则吗?您还有其他更喜欢的正式标准吗?

8
命名“ class”和“ id” HTML属性-破折号与下划线[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 改善这个问题 &lt;div id="example-value"&gt;还是&lt;div id="example_value"&gt;? 本网站和Twitter使用第一种样式。Facebook和Vimeo-第二个。 您使用哪一个?为什么?

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.