2014-11-24 4 views
2

나는 잠시 동안 JavaScript로 작업 해 왔으며 Plato으로 코드를 분석하기 시작했습니다. 유지 보수 가능성을 계산하는 방법을 모르지만 코드 벨로우즈는 유지 관리 가능성 점수 69.3을 반환합니다. 나는 무엇을 놓치고 있습니까? 댓글을 추가하려고했지만 변경되지 않았습니다.자바 스크립트 코드 분석 - Plato의 유지 보수성 평가

/*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 애니메이션을 사용하고 규칙이나 일부 앱 수준의 프레임 워크로 클래스를 추가하는 것은 다른 것입니다. 일부 백본 구성 요소, 각도 지시문 또는 웹 구성 요소가 비어 있거나 다른 방식으로 자체 상태를 관리합니다. 이러한 개별 구현은 점수 유지와 마찬가지로 유지 관리가 가능할 수도 있지만 범위와 잠재적 크리프가 중요합니다.

파일이 변경되지 않고 작성된 후에도 이해할 필요가없는 경우 유지 관리 기능과 관련이 없습니다. 파일이 많은 변화를 겪거나 미래의 모든 코드를 처리하기 위해 완전히 이해되어야 할 필요가 있다면 유지 관리 가능성이 우선시됩니다.