Tag: 编码风格

私人vs保护 – 可见性良好的实践关注

我一直在寻找,我知道理论上的差异。 public – 任何类/函数都可以访问方法/属性。 保护 – 只有这个类和任何子类可以访问方法/属性。 私人 – 只有这个类可以访问方法/属性。 它甚至不会被inheritance。 这一切都很好,问题是,他们之间的实际区别是什么? 什么时候你会使用private ,什么时候使用protected ? 有没有一个标准的或可接受的良好的做法,这一个? 到目前为止,为了保留inheritance和多态的概念,我使用public来从外部访问(比如构造函数和主类的function),并为内部方法(逻辑,辅助方法等)提供保护。 我在正确的轨道上? (请注意,这个问题对我来说,也是为了将来的参考,因为我没有看到像这样的问题)。

有多less构造函数参数太多?

假设您有一个名为Customer的类,其中包含以下字段: 用户名 电子邮件 名字 姓 我们还要说,根据您的业务逻辑,所有Customer对象都必须定义这四个属性。 现在,我们可以通过强制构造函数指定每个属性来轻松完成此操作。 但是当你被迫向Customer对象添加更多必需的字段时,很容易看出这会如何失控。 我已经看到有20多个参数被引入构造函数的类,使用它们只是一个痛苦。 但是,或者,如果您不需要这些字段,那么如果您依赖调用代码来指定这些属性,则可能会遇到未定义信息的风险,或者更糟糕的是,会导致对象引用错误。 有没有其他的select,或者你只是要决定X的构造函数参数太多,你可以住?

pythonic的方式做了N次没有索引variables?

我每天都爱python,越来越多。 今天,我正在写一些代码,如: for i in xrange(N): do_something() 我不得不做了N次。 但是每次都不依赖于i的值(索引variables)。 我意识到,我正在创build一个我从来没有使用过的variables( i ),而且我认为“在没有这个无用的索引variables的情况下,确实有更多的pythonic方法。 所以…问题是:你是否知道如何以更多(pythonic)美丽的方式来完成这个简单的任务?

什么时候function太长?

35线,55线,100线,300线? 当你应该开始分裂? 我问,因为我有一个60行(包括评论)的function,正在考虑打破它。 long_function(){ … } 成: small_function_1(){…} small_function_2(){…} small_function_3(){…} 这些函数不会在long_function之外使用,使得更小的函数意味着更多的函数调用等等。 你什么时候将一个function拆分成更小的? 为什么? 方法应该只做一件合乎逻辑的事情(考虑function) 你应该能够用一句话来解释这个方法 它应该适合你的显示器的高度 避免不必要的开销(评论指出明显…) 对于小逻辑函数,unit testing更容易 检查一部分函数是否可以被其他类或方法重用 避免过度的类间耦合 避免深度嵌套的控制结构 感谢大家的答案 ,编辑列表并投票正确的答案,我会select一个;) 我正在重新考虑这些想法:)

Python编码标准/最佳实践

在Python中,你是否一般使用PEP 8 – Python代码风格指南作为你的编码标准/指南? 还有其他的正式标准吗?

为什么我应该使用var而不是一个types?

可能重复: ReSharper和var 在我安装了ReSharper后,它要求(通过警告),例如,我尽可能使用var UnhandledExceptionEventArgs ue = (UnhandledExceptionEventArgs) t; ReSharper想把它变成 var ue = (UnhandledExceptionEventArgs) t; 我喜欢第一个版本更好,是否有任何理由更喜欢var ? 更好的性能? 什么? 还是只是一种代码风格?

Python风格 – 续行string?

在试图服从python样式规则时,我将编辑器设置为最多79列。 在PEP中,它build议在括号,括号和大括号中使用python隐含的继续。 但是,当我碰到string限制时处理string,会变得有点奇怪。 例如,试图使用多行 mystr = """Why, hello there wonderful stackoverflow people!""" 将返回 "Why, hello there\nwonderful stackoverflow people!" 这工作: mystr = "Why, hello there \ wonderful stackoverflow people!" 既然它返回这个: "Why, hello there wonderful stackoverflow people!" 但是,当语句缩进几个块时,这看起来很奇怪: do stuff: and more stuff: and even some more stuff: mystr = "Why, hello there \ wonderful stackoverflow people!" […]

有效的C ++仍然有效?

从我在这篇文章中看到的,我决定开始阅读有效的C ++的书。 但是现在由于C ++ 11有许多新function,并且有一些好的做法改变了,所以我不确定这是否是一个好主意。 C ++ 11的出现是否反对Effective C ++中包含的任何build议? 如果是的话,我应该避免哪些话题?

编码风格指南node.js应用程序?

是否有一个(或几个)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的成语,例如,==对===,callback的第一个arg是一个错误对象,… 评论和文件 附带的工具,如皮棉检查器,unit testing框架,… 这个主题显然是非常主观的,但我认为在成熟过程中build立一个共同的,被广泛接受的编码风格是社区的重要一步。 而且,这不仅仅是品味。 特别是像“使用===而不是==”这样的规则对代码质量有直接的影响。

python字典和默认值

假设connectionDetails是一个Python字典,那么重构代码的最好,最优雅,最“pythonic”的方式是这样的: if "host" in connectionDetails: host = connectionDetails["host"] else: host = someDefaultValue