2014-11-24 28 views
2

我一直在使用JavaScript一段時間,剛開始用Plato分析我的代碼。我不確定它是如何計算可維護性的,但代碼如下返回可維護性得分69.3。我錯過了什麼?試圖添加評論,並沒有改變。JavaScript代碼分析 - 柏拉圖的可維護性評級

/*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)); 

感謝您的幫助/建議!

回答

3

可維護性是許多不同參數的函數。 70左右的可維護性通常是完全可以接受的。 〜70+是好的,30-70在警告區域,30以下通常是個問題。如果你想提高你的分數,嘗試將一些CSS屬性移動到帶有動畫的CSS類中。

你還依賴於jquery只需在init中做選擇並在搜索中選擇一個自定義容器。最初的選擇可以作爲參數傳遞,並且對自定義類的支持看起來像是一種破解,可能是爲了在事實之後支持某些東西(爲什麼?因爲函數名稱animateSearch,然後支持任何可能或可能不會與搜索有關的任意類)。

這兩個變化都會提高「可維護性」,但是再次,〜70並不一定是個問題。這些分數只有在與應用程序中的其他代碼以及開發人員的舒適程度相關時才十分重要。

也就是說,這段代碼很簡單,但隨着一個解決方案的添加,可能很容易失控。通用動畫解決方案將是一種抽象。使用CSS動畫,並簡單地按照慣例或某些應用程序級框架添加類將是另一個;例如某些骨幹組件,角度指令或Web組件,它們基於空虛或其他方式管理其自己的狀態。這些單獨的實現也很可能就像「可維護」一樣,但是它限制了範圍和潛在的未來蠕變,這很重要。

如果一個文件永遠不會改變,寫入後永遠不需要理解,那麼可維護性就無關緊要。如果一個文件會經歷許多變化或者需要被完全理解以便解決所有未來的代碼,那麼可維護性是一個優先事項。