在我工作的公司,最近有一项规定,所有“高度可见”的布尔逻辑都必须以析取范式表示。
例如(尽管这个概念与语言无关),
#if (defined(A) || defined( B )) || (defined(C) && defined(D))
Run Code Online (Sandbox Code Playgroud)
必须替换为:
#if defined(A) || (defined(C) && defined(D)) || defined(B)
Run Code Online (Sandbox Code Playgroud)
强制要求代码必须以这种方式表达的动机是什么?有什么优点?
我启动了一个Dart项目,现在我需要一些Dart API Reference中没有的功能.我被建议使用pub.dartlang.org的软件包,现在我正在浏览酒吧.
以前使用Javascript库的经验告诉我,库之间的质量和支持可能会有很大不同.因此我有点不愿意使用pub中的包.我如何知道哪个包具有良好的质量,以及在Dart发生重大变化时是否会更新包?
所以我想知道:
与此相关的一些问题:
亲切的问候,
Hendrik Jan van Meerveld
使用SOLID原则特别是SRP,我们有很多类.
我的意思是,它就像你想要构建一个数据库类
那么,你有
DatabaseHandler类来处理数据库(选择,插入,更新,删除等),
DatabaseAdapter class是一个扩展的PDO类(可以在构造中设置首选的默认模式,一个新的prepare方法直接准备语句,将它与param绑定,然后执行它,
QueryBuilder类是SelectStatementBuilder类的父,InsertStatementBuilder类, DeleteStatementBuilder类,UpdateStatementBuilder类(用于构建SQLStatement),
Expression类,用于构建WHERE子句
SQLStatement Class中所需的表达式(其行为就像普通字符串,但其接口是SQLStatementInterface,因此我们可以知道它是一个SQL语句等.
而且,我知道如果我深入挖掘并重新进行重构,将会有更多的课程.
SRP原则实施是否导致了Lasagna代码?烤宽面条的代码好吗?
php oop software-quality single-responsibility-principle solid-principles
当我们使用父私有方法的相同名称时,Sonar抱怨类中的私有方法名称。在代码质量方面,用父私有方法的相同名称定义私有方法的缺点是什么?
还是我们需要将其归类为误报
在 Python 中,许多方法使用“标准化”名称定义参数变量,例如:
def __exit__(self, type, value, traceback):
Run Code Online (Sandbox Code Playgroud)
在上面的行中,变量类型导致 pylint 警告 (W0622) 正在重新定义内置函数:Redefining built-in 'type' (redefined-builtin)。
有很多方法可以解决这个问题并使 pylint 满意(重命名变量,添加 pylint 指令(#pylint: disable=W0622)以忽略问题等)。
在这些情况下,保持良好的代码质量并使 pylint 满意的最佳/首选/建议/常规使用方法(如果有)是什么?
我想设置一个质量检查,在授权某个 github 分支上的合并之前强制执行 pylint 的特定分数。有没有办法做到这一点 ?我在 github 上看到,您可以设置“合并之前需要通过状态检查”,我猜一个状态检查可能是 pylint 上的某个分数。
感谢您的任何指导。
我理解简短的答案是通过测试,但你仍然如何进行测试?您是否修改了测试用例以将错误包含在运行的其他测试用例中,或者您只是验证错误跟踪系统中从最旧版本到最新版本的所有错误.
谢谢你的回答.看起来我的问题不明确.我知道我们需要编写错误报告,修复错误并进行修复验证测试.但是,在下一个版本发布期间,测试阶段应该在下一个版本发布期间,我们确保再次重新运行测试以确保没有新的更改重新引入该错误.它是应该进行回归测试还是应该针对该特定项目进行集成测试,还是应该从1.0版开始测试bug跟踪系统中的所有错误?
根据维基百科的说法,该术语最初是由数据库专家Joe Celko在1982年创造的,这里引用了他1997年的文章,揭示了他的意思:"标准的[结构化编程]解决方案是用嵌套的IF-THEN取代GOTO -ELSE语句和交换机分层如此之深,冗余太多,你有一个控制路径,看起来像一盘烤宽面条."
然而,相同的维基百科条目定义了不同的术语,明确指的是多层应用程序:"......不同的子系统,例如...... Web应用程序代码,业务逻辑和关系数据库." 因此,随着程序员开发新的方法和体系结构,术语的含义也随之发展.
我可以想到两个"烤宽面条代码"的现代定义:
这个词显然意味着批评(就像你可以通过称之为"意大利面条代码"来批评我的东西).但这对你意味着什么,你什么时候使用它?
我有一段计算两个平方之和的代码float
:
float a, b, c;
// assign some random float to b and c
a = b*b+c*c;
Run Code Online (Sandbox Code Playgroud)
a
两个 s 的平方和可以float
为负数吗?
原始代码片段位于函数内部,因此提出问题的另一种方式如下:
bool fun(float b, float c)
{
return b*b+c*c<0;
}
Run Code Online (Sandbox Code Playgroud)
是否有任何一对值b
和c
给出fun(b,c)==true
?
我正在使用声纳来分析一组相关的项目.我正在使用SQALE评级来证明重构的必要性
我的问题是SQALE技术债务比率映射背后的逻辑是什么?
为什么SQALE A评级是技术债务,范围从0%到5%.但不是0%到3%吗?我该如何定义SQALE评级限制?为什么5%的科技债务是好的?我可以使用任何方法吗?或者我必须自己提出这个标准?SonarQube有没有办法改变它们?