code-smell相关内容

Java工具,以改善我的清洁代码开发

是否有针对Java的任何(静态分析/重构/ ...)工具专门针对 清洁代码开发(CCD) ? 我知道静态分析(PMD,Findbugs,Checkstyle),依赖注入,测试和代码覆盖的常用工具。但我正在寻找一种工具,可以提示我的代码是如何干净的(如此处所述)并且在鲍勃叔叔的清洁代码中),我怎样才能让它更干净,最好是适应我的 清除代码等级 。一个工具也可以告诉我如何随着时间的推移改进CCD。 ..
发布时间:2018-12-10 21:34:23 Java开发

在开发Grails应用程序时要遵循的最佳实践

在开发Grails应用程序时,您认为什么是“最佳实践”,为什么?我对有关最佳实践的辩论不感兴趣,但是有一个或多个声明以最佳实践何时适用和何时不适用为理由和/或说明进行备份。我不相信开发Grails应用程序有一个最好的方法,但是有很多指导方针可以带来更多可维护的应用程序,并且潜伏的bug更少。 我对Grails的经验是,它提供了如此多的功能,以至于在单个应用程序中都会使用它们,这导致了我在使用 ..
发布时间:2018-05-24 18:13:16 其他开发

OO设计:在设计对象时如何决定方法参数与实例变量之间的关系

我正在设计一个系统,在那里我得到一堆输入,这些输入被处理以产生一些持续的输出。 说我需要做一些验证请求,我应该如 选项1: 验证器validator = new Validator(); validator.validate(request); 或 选项2: p> 验证器验证器=新的验证器(请求); validator.validate ..
发布时间:2017-05-16 18:38:13 软件设计

空界面是否有臭味?

我有一个函数返回相同类型的对象(查询结果),但没有任何属性或方法。为了有一个共同的类型,我使用一个空的接口作为返回类型和“实现”两者。 当然听起来不正确。我只能控制自己,坚持希望有一天这些类将有一些共同点,我会把这个共同的逻辑移到我的空白界面。然而,我不满足于思考是否应该有两种不同的方法,有条件地接下来。那会是一个更好的办法吗? 我也被告知.NET Framework使用空接口进行标记 ..
发布时间:2017-05-14 09:40:54 C#/.NET

部分模仿是坏的,为什么呢?

场景 我有一个类称为 Model ,表示许多其他对象的复杂的复合对象不同类型。您可以将它视为 Car ,其中门[] ,轮胎[] ,引擎,驱动程序等等。这些对象又有子对象,如code>引擎有 SparkPlug ,离合器,生成器等。 我有一个 Metrics 类,它计算一些或多或少的复杂度量关于模型,本质上看起来像这样: public类别度量{ 私人最终模型模型; pub ..
发布时间:2017-05-12 19:22:02 Java开发

臭名字类名?

根据您的经验,在类或函数名称中有些“臭”关键字可能是不良面向对象设计的警告标志? 包含单词 Manager 或 Base 的类通常是可疑的。例如, FooManger 通常表示封装不良或难以重用的单例设计。 A FooBase 类通常是一个抽象的基类,从来不希望在调用者代码中直接引用。它只用于分享一些代码实现,而没有真正的 IS-A 关系。并且 Base 类名暴露了内部实现细节,并不反 ..
发布时间:2016-11-23 12:55:37 其他开发

到行代码catch语句的很好的比例

是否有拇指任何规则,以你多少catch语句每个代码源行期望在一个大的软件? 例如,一条用C#编写的软件,Visual Studio中显示了包含单词约350线“捕获”,并 CLOC 我们对160K SLOC报道,30K注释行,和15K空行。 160K / 350是每个catch语句代码大约467行。 不过,要与一粒盐,因为我们使用标准的C#与自己的线括号格式化,所以谁知道有多少行都只是单 ..
发布时间:2016-10-06 00:01:14 C#/.NET

使用替代类型的System.Type的参数的泛型类型参数。它是一个味道?

我经常看到(在许多嘲讽图书馆为例),其中一个泛型类型参数代替类型的参数的System.Type 使用的方法。我特别谈到,其中泛型类型只被在使用的typeof(T)的情况下操作(即没有类型T的实例将在任何地方使用的方法中,T是。不被用于任何返回类型或其他参数) 例如考虑下面的方法: 公共字符串GetTypeName(System.Type的类型){返回type.FullName; } ..
发布时间:2016-10-04 17:14:17 C#/.NET

时间耦合VS工作单位

所以,一直的向我指出(我完全同意),时间耦合是一个设计的气味,一般都自带形式: 接口IDoSomething { 无效初始化(); 无效DoSomethingThatOnlyWorksAfterInitialising(); } 在它的形式上面,有可能是一些你可以做些什么(用构造器注入的或者通过一个抽象工厂等)的手段。 然而,如何这是否适用于的组的工作 ..
发布时间:2016-10-01 19:58:19 C#/.NET

保存到一个int类型的引用

下面是我所试图做的。 静态无效的主要(字串[] args)$大幅度简化版本b $ b { INT测试= 0; INT测试2 = 0; 测试A =新的测试(REF试验); 测试B =新的测试(参见测试); 测试C =新的测试(参见测试2); A.write(); //写1应该写1 B.write(); //写1应该写2 C.write(); //写1应该写1 到Con ..
发布时间:2016-09-19 21:58:36 C#/.NET

IOC / DI:正在注册一个具体类型代码味道?

我一直在为此而努力对我当前的项目了一下。我已经遇到某些情况下,我有一个具体的类型不(且不需要)实现任何特定的接口。有时候我想,因为该类型与singleon生命周期注册决议通过容器发生;有时类型有是一个大的对象图的一部分,或者是自己与单身的生命周期注册的构造函数的参数。 它总是让人觉得有些奇怪,我当我输入如下代码 Container.RegisterType< MyConcret ..
发布时间:2016-09-07 12:11:36 C#/.NET

都是空的接口code味道?

我有同样的返回类型的对象(查询结果),但没有公共属性或方法的功能。为了有一个共同的I型使出使用空接口作为返回类型和“实施”,关于两者。 这听起来并不当然的权利。我只能通过抱住希望有​​一天这些类将有共同之处安慰自己,我会的常见逻辑移动到我的空接口。但我不满意和思考我是否应该有两种不同的方法,并有条件地调用next。那会是一个更好的方法吗? 我一直还告诉.NET框架使用空接口用于标记目的。 我 ..
发布时间:2016-08-29 13:10:52 C#/.NET

使用out参数时,什么是不好的做法?

有什么原则使用了参数时要记住?或者,我可以把他们看成只是一个很好的方式,让一个方法返回多个值? 做什么语言设计者心目中的时候被指定输出参数? 经过一番思考编辑: 因为我现在考虑这个问题,我会倾向于说,过度使用out参数可能是一个indicitive code-气味。如果一个方法需要返回多于1特定类型的情况下,它意味着,该方法具有超过1的关注,这是违反SRP的 解决方案 就个人而言,我 ..
发布时间:2016-08-29 13:03:56 C#/.NET