我已经使用JavaScript一段时间了,刚刚开始使用Plato分析我的代码。我不确定它如何计算可维护性,但下面的代码返回 69.3 的可维护性分数。我错过了什么?尝试添加评论,但没有改变。
/*globals jQuery*/
var App = App|| {};
App.AnimateSearch = (function ($) {
'use strict';
var searchContainer = $('[search-container]'),
emptySearchMessage = $('.empty-search-message');
function animateEmptyMessage() {
emptySearchMessage.css({
'opacity': 0,
'transform': 'scale(0.5)',
'-webkit-transform': 'scale(0.5)',
'-moz-transform': 'scale(0.5)'
});
emptySearchMessage.fadeIn().animate({
'opacity': 1,
'transform': 'scale(1)',
'-webkit-transform': 'scale(1)',
'-moz-transform': 'scale(1)'
}, 300);
}
function animateSearch(customClass) {
searchContainer = typeof customClass === 'undefined' ? searchContainer : $(customClass);
searchContainer.css({ 'margin-top': '100px', 'opacity': 0 });
setTimeout(function () {
searchContainer.stop().animate({ 'margin-top': '0', 'opacity': 1 }, 300);
}, 500);
}
return {
animateEmptyMessage: animateEmptyMessage,
animateSearch: animateSearch
};
}(jQuery));
感谢您的帮助/建议!
可维护性是许多不同参数的函数。70 左右的可维护性通常是完全可以接受的。~70+ 表示良好,30-70 处于警告区域,低于 30 通常是个问题。如果你想提高你的分数,试着把其中一些css属性移到带有动画的css类中。
您还可以依靠jquery简单地在init中进行选择并在搜索中选择自定义容器。初始选择可以作为参数传入,对自定义类的支持似乎有点黑客,可能是在事后添加以支持某些东西(为什么?因为函数名称animateSearch
然后支持任何可能与搜索无关的任意类)。
这两个变化都会提高"可维护性",但同样,~70 不一定是问题。分数只有在与应用程序中的其他代码和开发人员的舒适度相关时才重要。
也就是说,此代码很简单,但随着一次性解决方案的添加,很容易失控。通用动画解决方案将是一个抽象。使用 css 动画并简单地按约定或某些应用程序级框架添加类将是另一回事;例如,一些骨干组件,角度指令或Web组件,它们基于空性或其他方式管理自己的状态。这些单独的实现也很可能在分数方面同样"可维护",但它限制了范围和潜在的未来蔓延,这很重要。
如果文件在写入后永远不会更改并且永远不需要理解,那么可维护性就无关紧要。如果一个文件将经历许多更改或需要完全理解以处理所有未来的代码,那么可维护性是优先考虑的。