왜 처음에 있습니까?
불안정한 코드를 메인 라인에 체크인 했습니까? 왜?
불안정한 코드는 트렁크 / 메인 / 마스터 또는 주요 트렁크 이름으로 체크인해서는 안됩니다. 이것은 위험이 높은 것으로 간주되며 대신 메인으로 체크인하기보다는 작업 한 자체 지점에서 격리되어야합니다.
Advanced SCM Branching Strategies 를 읽어 보시기 바랍니다 . 특히, 개발 역할과 고위험 개발로 간주되는 사항에 대해 설명하는 내용에주의하십시오.
일반적으로 위험이 높은 각 프로젝트마다 별도의 지점을 사용하는 것이 좋습니다. 고위험 프로젝트는 대규모, 많은 인원, 익숙하지 않은 주제, 고도의 기술 주제, 매우 긴 일정, 불확실한 납기일, 불완전하거나 변동이 심한 요구 사항 및 지리적으로 분산 된 프로젝트 팀이 특징입니다. 마찬가지로 각 릴리스에서 저 위험 개발을위한 단일 지점을 지정하는 것이 좋습니다. [WING98]을 포함한 여러 출처에서이 목적으로 메인 라인을 사용하는 것이 좋습니다. 이 조치를 취하기 전에 메인 라인에 대해 위에서 논의한 요소를 고려하십시오. 메인 라인을 통해 조정하는 제품군의 여러 구성원이 있더라도 저 위험 개발은 메인 라인과 다른 정책을 가질 수 있습니다.
사람들이 불안정하거나 사용하지 않는 코드를 메인 라인에 체크인하게하면이 코드를 유지하려는 노력에 대한 향후 개발 노력을 혼동하게됩니다. 지금부터 끝까지 모든 담당자의 복제본과 복제본에는 누군가가 "죽은 대구"라고 말하고 삭제할 때까지이를 포함합니다.
"글쎄, 지점에 있으면 잊어 버린다"는 말이 있지만 사실 일 수도 있지만 메인 라인에서 죽은 (불안정한) 코드를 잊어 버리면 향후 개발이 모두 제거 될 때까지 혼란스럽게되므로 여러 번 더 나빠집니다. 그때는 더 잊혀졌습니다. "/ fooProject / branches / WeisBigIdea"(또는 이와 동등한 것)라는 이름이 좋은 브랜치는 볼 수 있고 앞으로 작업하기가 더 쉽습니다. 특히 작동하는 경우 특히 그렇습니다.
@Deprecated
첫 번째는 @Deprecated
주석입니다. 이것은 javadoc을 넘어 컴파일러 경고를 뱉어냅니다. 다음과 같이 설명 javac
된 -deprecation
플래그를 제공합니다 .
더 이상 사용되지 않는 멤버 또는 클래스의 각 사용 또는 재정의에 대한 설명을 표시하십시오. 이 없으면 -deprecation
, javac
더 이상 사용되지 않는 멤버 또는 클래스를 사용하거나 재정의하는 소스 파일의 요약을 표시합니다. -deprecation은 축약 형입니다 -Xlint:deprecation
.
언급 한 바와 같이, 이것은 표준 컴파일러 경고 이상의 것입니다.
많은 IDE에서 더 이상 사용되지 않는 메소드와 값이 취소 선으로 표시됩니다.
foo.bar();
그리고 다음과 같은 출력을 생성합니다.
$ javac -Xlint:all Foo.java Bar.java
Bar.java:2: warning: [deprecation] Foo in unnamed package has been deprecated
interface Bar extends Foo { }
^
빌드 구조에 따라 빌드가 중단되었다는 경고가 표시 될 수 있습니다. 이 것 에만 수업 중 하나가 (이 단지에 컴파일되지 않은 경우) 사용 된 경우 빌드를 휴식.
@CustomAnnotation
이에 대한 많은 접근 방식이 있습니다. 예를 들어, 경량 javac @Warning 주석은 해당 주석이있는 것을 사용할 때 컴파일 타임에 경고를 발생시키는 주석 프로세서를 제공합니다 ( 맞춤 주석 프로세서에 대한 netbeans 자습서 이므로 장면).
오라클 은 Java 메타 데이터 최대한 활용, 2 부 : 사용자 정의 주석@Unfinished
에서 주석에 사용자 정의 주석을 사용하는 예를 설명합니다 .
AnnotationProcessor를 사용하면 컴파일 타임에 임의의 코드를 실행할 수 있습니다. 당신이 원하는 것을 결정하는 것은 당신에게 달려 있습니다. 경고, 무언가가 사용되면 빌드를 중단하십시오. 웹에는 이러한 종류의 코드를 작성하는 방법에 대한 많은 자습서가 있습니다. 컴파일 할 때 오류가 발생하는지 (이것은 성 가시고 삭제 될 수 있습니다) 또는 사용 된 경우 (조금 더 복잡합니다).
이 모든 것은 실제로 주석 프로세서를 사용하도록 빌드를 변경 함을 의미합니다.