问题标签 [coding-style]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何在 Java 的递归算法中保持“完成的事情”计数?
我有一个递归算法,它逐个字符地遍历字符串,并对其进行解析以创建树状结构。我希望能够跟踪解析器当前所在的字符索引(对于错误消息以及其他任何内容),但我并不热衷于实现像元组这样的东西来处理多个返回的类型。
我尝试使用 Integer 类型,在方法外部声明并传递给递归方法,但因为它是最终的,递归调用增量在我返回时被“遗忘”。(因为Integer值的递增使得传值对象引用指向一个新对象)
有没有办法获得类似于不会污染我的代码的工作?
language-agnostic - 一个函数应该只有一个返回语句吗?
是否有充分的理由说明在函数中只有一个 return 语句是一种更好的做法?
或者只要在逻辑上正确就可以从函数返回,这意味着函数中可能有许多返回语句?
parameters - 多少个构造函数参数太多了?
假设您有一个名为 Customer 的类,其中包含以下字段:
- 用户名
- 电子邮件
- 名
- 姓
还假设根据您的业务逻辑,所有 Customer 对象都必须定义这四个属性。
现在,我们可以通过强制构造函数指定这些属性中的每一个来轻松地做到这一点。但是,当您被迫向 Customer 对象添加更多必填字段时,很容易看出这会如何失控。
我见过在构造函数中包含 20 多个参数的类,使用它们很痛苦。但是,或者,如果您不需要这些字段,则可能会遇到未定义信息的风险,或者更糟糕的是,如果您依赖调用代码来指定这些属性,则会出现对象引用错误。
是否有任何替代方案,或者您是否只需要决定 X 数量的构造函数参数是否太多而无法忍受?
standards - 什么时候应该使用项目引用而不是二进制引用?
我公司有一个通用代码库,其中包含许多类库项目以及支持测试项目。每个类库项目都输出一个二进制文件,例如 Company.Common.Serialization.dll。由于我们拥有已编译、经过测试的二进制文件以及源代码,因此对于我们的消费应用程序是否应该使用二进制文件或项目引用存在争议。
支持项目引用的一些论据:
- 项目引用将允许用户调试和查看所有解决方案代码,而无需加载其他项目/解决方案的开销。
- 项目参考将有助于跟上提交给源代码控制系统的常见组件更改,因为如果没有活动的解决方案,更改将很容易识别。
一些支持二进制引用的论点:
- 二进制引用将简化解决方案并缩短解决方案加载时间。
- 二进制引用将允许开发人员专注于新代码,而不是可能被已经烘焙并证明稳定的代码分散注意力。
- 二进制引用将迫使我们适当地对我们的东西进行狗粮,就像我们将使用公共库一样,就像我们组织外部的人需要做的那样。
- 由于无法调试(单步执行)二进制引用,因此将被迫通过扩展现有测试项目来复制和修复问题,而不是仅在使用应用程序的上下文中进行测试和修复。
- 二进制引用将确保类库项目的并发开发不会对消费应用程序产生影响,因为将引用二进制的稳定版本而不是流入版本。如有必要,是否合并组件的更新版本将由项目负责人决定。
在使用项目或二进制引用时,您的政策/偏好是什么?
coding-style - 标准文件
我正在为一个由大约 15 名开发人员组成的团队编写一份编码标准文档,每年的项目负载在 10 到 15 个之间。在其他部分(我可能会在这里发布)中,我正在写一个关于代码格式的部分。因此,首先,我认为无论出于何种原因,我们建立一些基本的、一致的代码格式/命名标准是明智的。
我查看了这个团队在过去 3 年中编写的大约 10 个项目,很明显,我发现了相当广泛的风格。承包商有时进进出出,有时甚至使团队规模扩大一倍。
我正在寻找一些关于代码格式和命名标准的建议,这些建议确实得到了回报……但这也确实是合理的。我认为一致性和共享模式在使代码更易于维护方面大有帮助……但是,在定义上述标准时我还应该考虑其他事情吗?
你如何排列括号?在处理类、方法、try catch 块、switch 语句、if else 块等时,您是否遵循相同的括号准则?
您是否在列上排列字段?你用下划线标注/前缀私有变量吗?您是否遵循任何命名约定以更容易在文件中找到详细信息?你如何命令你的班级成员?
关于命名空间、打包或源代码文件夹/组织标准的建议呢?我倾向于从以下内容开始:
我很想知道是否还有其他比我习惯的更被接受的做法——在我冒险决定这些标准之前。与已经在线发布的标准的链接也很棒——尽管我已经做了一些。
perl - 在 Perl 中应用编码标准是否有任何好的自动化框架?
我知道的一个是Perl::Critic
到目前为止,我的谷歌搜索多次尝试都没有结果。:-(
有人在这里有什么建议吗?
任何根据我们的编码标准配置 Perl::Critic 并在代码库上运行它的资源将不胜感激。
language-agnostic - 'foo' 的真正含义是什么?
我希望这是一个编程问题,就像在任何编程教程中一样,您最终会在代码示例中遇到“foo”。(是的,对吧?)
'foo' 的真正含义是什么?
如果它意味着什么都没有,那么它是什么时候开始使用的?
python - Python 中的单引号与双引号
根据文档,它们几乎可以互换。是否有文体上的理由使用一个而不是另一个?
.net - 我应该为一个独立的 ASP.NET Web 应用程序使用多个程序集吗?
来自企业 IT 环境的标准总是为每一层、业务逻辑、数据访问创建一个类库项目,有时还为特定类型创建更大的隔离。
现在我正在开发自己的 Web 应用程序项目,我认为没有必要以这种方式隔离我的代码。
我没有多个应用程序需要共享此逻辑或服务启用它。我也没有看到部署方案有任何优势。
我倾向于将所有工件放在一个 Web 应用程序中,并在逻辑上由项目文件夹分隔。
我想知道社区的想法。
让我添加更多信息...
我正在使用 MVC 预览版 5 编写此应用程序,因此框架中继承的关注点分离将支持单元测试。我喜欢对一切进行测试!