자바 개발 규범 총화코드 코드 코드 규범

9579 단어 자바 개발
규범 은 평소 인 코딩 과정 에서 주의해 야 하 며,천천히 기 르 는 좋 은 습관 이다.
1.기본 원칙
   강제 적 원칙:     1.문자열 의 조합 작업 은 StringBuilder 를 사용 해 야 합 니 다.     2.try...catch 의 용법
try{

}catch{Exception e
    e.printStackTrace();
}finally{

}//     Action     ,          ;
try{
    //    
}catch(Exception e){
    //
}//           
try{

}catch{Exception e
    throw new runtimeException(e);//        
}finally{

}

     1.포획 후 무슨 일 을 하 는 지 모 르 거나 어떻게 처리 해 야 할 지 모 르 는 경우 에는 이상 을 포착 하지 말고 외부 층 에 남 겨 포획 하여 처리한다.     2.반환 형식 은 집합 입 니 다.방법 성명 에 서 는 범 형 을 사용 해 야 합 니 다.자바 doc 에 어떤 상황 에서 null 로 돌아 가 는 지,어떤 상황 에서 빈 집합 으로 돌아 가 는 지 밝 혀 야 합 니 다.     3.방법,변수 성명 범 위 는 다음 과 같은 우선 순 위 를 사용 해 야 합 니 다.private,proctected,Public,변 수 는 다음 과 같은 우선 순 위 를 사용 해 야 합 니 다.국부 변수,인 스 턴 스 변수,클래스 변 수 를 사용 해 야 할 경우 스 레 드 보안 을 확보 해 야 합 니 다.만약 에 ThreadLocal 로 인 스 턴 스 변수 나 클래스 변 수 를 저장 할 수 있 습 니 다.     4.필요 하지 않 으 면 순환 에서 변수 나 new 대상 을 정의 하지 마 십시오.가능 한 한 필요 한 마지막 순간 에 new 대상 으로 가기;     5.필요 하지 않 으 면 순환 중 에 try..catch 를 사용 하지 마 세 요.     6.클래스 에서 비교적 복잡 한 논리 에 대해 줄 주석 방식 으로 주석 을 달 아야 합 니 다.자바 코드 에 서 는 블록 주석(/*/)으로 주석 을 달 수 없습니다.     7.자바 류 의 이름 첫 번 째 자 모 는 대문자 로 써 야 하고 여러 단어 로 구성 되 어 있 으 며 각 단어의 이니셜 은 대문자 로 써 야 한다.     8.jsp 의 파일 이름 은 모두 소문 자 여야 합 니 다.     9.Spring 의 bean 프로필 이름 은 소문 자로 작성 해 야 합 니 다.형식 은 xxx.bean.xml,xxx.bean.xml 프로필 의if (log.isDebugEnabled()) ex.printStackTrace(); else log.error("从数据库删除: [" + entity.getClass().getName() + "] 实例失败", daex); throw new PersistenceException("从数据库删除: [" + entity.getClass().getName()+ "] 实例失败", daex);
    12.코드 에 서 는 System.out.println()을 사용 하여 디 버 깅 출력 을 하 는 것 을 금지 합 니 다.디 버 깅 정 보 를 사용 하려 면 log.debug()를 사용 해 야 합 니 다.필요 한 정 보 를 log.info()로 출력 합 니 다.    13.클래스 에 쓸모없는 import 가 나타 나 지 않도록 IDE 도 구 를 사용 하여 최적화 할 수 있 습 니 다.클래스 제출 전에 코드 를 포맷 할 수 있 습 니 다.    14.업무 논리 처리 가 있 는 클래스 는 Junit 단원 테스트 클래스 를 써 야 한다.    15.국제 화 지원:ftl 템 플 릿 에 중국어 문자 가 나타 나 는 것 을 허용 하지 않 습 니 다.해당 properties 파일 에 모두 넣 어야 합 니 다.properties 파일 은 Action 류 와 같은 디 렉 터 리 에 넣 어야 합 니 다.ftl 의 인 코딩 은 모두 UTF-8 형식 을 사용 해 야 합 니 다.properties 파일 이름:중국어:Action 이름+"zh”+“_CN".properties,영어:Action name+"en”+“_US”.properties    16.하나의 프로그램 파일 은 2000 줄 을 넘 지 않 는 것 이 좋다.    17.대상 의 역할 영역 을 최대한 축소 시 키 면 대상 의 보 이 는 범위 와 생존 기간 도 가능 한 한 작 아 지고 가능 한 한 부분 변 수 를 우선 사용 합 니 다.전체 변 수 를 사용 할 방법 이 없습니다.우선 ThreadLocal 로 처리 합 니 다.    18.한 방법 으로 완 성 된 기능 은 단일 하고 서로 다른 기능 은 서로 다른 방법 으로 포장 해 야 한다.    19.가능 한 한 이상 처리 또는 이상 전환,포장 이상 만 하지 마 세 요.    20.대상 이 특정한 범위 내 에서 청소 되 어야 한다 면(쓰레기 로 회수 되 는 것 이 아니 라)finally 자구 가 있 는 try 블록 을 사용 하여 finally 자구 에서 청소 하 십시오.    21.일부 논리 와 관련 된 클래스 를 한데 묶 는 것 에 대해 하나의 클래스 의 정 의 를 다른 클래스 의 정의 에 두 는 것 을 고려 할 수 있다.이런 상황 은 내부 클래스(예 를 들 어 인터페이스 층 의 이벤트 응답 등)를 사용 하 는 것 을 추천한다.내부 류 는 모든 외곽 류 의 모든 구성원 의 방문 권 을 가지 고 있다.    22.구성원 변수 에 대한 접근 은 getter/setter 방법 을 통 해 접근 의 합 법성 과 코드 조정 을 확보 하 는 것 이 좋 습 니 다.    23.추상 류 나 구체 류 가 아 닌 인 터 페 이 스 를 우선 선택한다.만약 당신 이 어떤 것 이 기본 이 될 것 이라는 것 을 안다 면,당신 은 우선 그것들 을 인터페이스 로 설계 해 야 합 니 다.방법 정의 나 구성원 변 수 를 넣 어야 만 구체 적 이거 나 추상 적 인 유형 으로 수정 할 수 있 습 니 다.인 터 페 이 스 는 고객 이 원 하 는 동작 과 만 관련 되 고,클래스 는 세부 사항 을 실현 하 는 데 관심 을 가 지 는 경향 이 있다.    24.자바 표준 라 이브 러 리 에서 제공 하 는 용 기 를 사용 합 니 다.그들의 용법 에 정통 하면 업무 효율 을 크게 높 일 것 이다.우선 Array List 를 선택 하여 순서 구 조 를 처리 하고 HashSet 을 선택 하여 집합 을 처리 합 니 다.HashMap 을 선택 하여 관련 배열 을 처리 합 니 다.linkedList 를 선택 하여 스 택 과 대기 열 을 처리 합 니 다.순서 방문 을 최적화 시 켰 고 List 중간 에 삽입 하고 삭제 하 는 비용 은 적 지만 무 작위 방문 은 느 립 니 다.앞의 세 개 를 사용 할 때 는 그들 을 List,Set,Map 으로 전환 시 켜 야 한다.그러면 필요 할 때 다른 방식 으로 실현 할 수 있다.    25.배열 은 가장 효율 적 인 저장 과 무 작위 방문 대상 참조 시퀀스 방식 이지 만 하나의 배열 대상 을 만 들 면 배열 의 크기 가 고정 되 고 공간 이 부족 할 때 새로운 배열 을 만들어 복사 하면 Array List 보다 효율 적 입 니 다.그래서 장면 을 명 확 히 사용 해 야 합 니 다.    26.'private','proctected'키 워드 를 사용 하도록 한다.라 이브 러 리 의 특징(클래스,방법,필드 포함)을 Public 로 표시 하면 더 이상 제거 할 수 없습니다.이러한 방식 에서 실 현 된 변동 이 파생 류 에 미 치 는 영향 이 가장 적 고 다 중 스 레 드 문 제 를 처리 할 때 사유 성 을 유지 하 는 것 이 특히 중요 하 다.Private 필드 만 보 호 받 을 수 있 기 때문에 동기 화 제어 되 지 않 은 사용 에 의 해 파 괴 될 까 봐 걱정 하지 않 아 도 된다.    27.백 엔 드 업무 코드 사용 금지
try{
    something()
}catch(Exception ex)
{}
new Exception()

2.클래스 작성 규범
   클래스 의 구조 조직 은 일반적으로 다음 과 같은 순서에 따른다.     1.상수 성명     2.정적 변수 선언     3.구성원 변수 성명     4.구조 함수 부분     5.Finalize 부분     6.멤버 방법 부분     7.정적 방법 부분     8.이런 순 서 는 추천 하 는 것 으로 실제 개발 에서 일정한 척도 에 따라 수정 할 수 있 으 며 원칙 은 절차 가 더욱 읽 기 쉽다 는 것 이다.예 를 들 어 방법 에 대한 순 서 는 중요성 에 따라 배열 하거나 알파벳 순서에 따라 배열 하거나 방법 간 의 관계 에 따라 배열 한다.     9.모든 방법(구조 와 finalize 포함)은 한 단락 이다.여러 변수 성명 은 논리 에 따라 하나의 단락 을 구성 하고 단락 과 단락 사 이 를 빈 줄 로 구분한다.     10.클래스 성명 을 할 때 접근 통 제 를 지적 해 야 합 니 다.일반적으로 수정자,Public,private 가 없습니다.     11.방법 과 방법 사이 에 큰 부분 간 에 빈 줄 로 격 리 해 야 한다.     12.유 니 버 설 클래스 를 작성 할 때 표준 형식 을 준수 하 십시오.equals(),hasCode(),toString(),Clone(Cloneable 인터페이스 구현)을 정의 하고 Comparable 과 Serialiable 인 터 페 이 스 를 실현 합 니 다.     13.디자인 기간 에 계승 이 필요 없 는 유형 에 대해 서 는 final 을 사용 하도록 한다.
3.변수 작성 규범
   1.멤버 변수 에 대해 서 는 private 를 사용 합 니 다.   2.매개 변수 성명/정의 가 한 줄 을 차지 합 니 다(매개 변수 제외).예 를 들 어
int a;
int b;

        비 int a,b;읽 기 쉽 고 버그 찾기 쉽 습 니 다.
   3.부분 변 수 는 사용 하기 전에 초기 화 되 어야 합 니 다.일반적으로 설명 할 때 초기 화 됩 니 다.   4.변수의 설명 은 프로그램의 시작 위치 에 두 어야 합 니 다.
     ...와 같다
public void myMethod() {
  int int1 = 0; // beginning of method block
  if (condition) {
    int int2 = 0; // beginning of "if" block
    ...
  }
}

    하나의 예외 적 인 상황 은 for 구문 에서 정의 성명 이 한 줄 을 차지 하지 않 을 뿐만 아니 라 표현 식 내부 에서 Eclips 로 생 성 되 는 것 입 니 다.예 를 들 어:
for(int i = 0; i<100; i++)

    5.배열 의 설명 은<데이터 형식[]+변수 이름>방식 을 사용 합 니 다.
char[] buffer;

...이 아니 라
char buffer[];

4.방법 작성 규범
    1.멤버 방법 에 대해 서 는 Public 의 멤버 변 수 를 쉽게 사용 하지 마 세 요.주요 장식 부 호 는 Public,private,proctected,없 음    2.빈 방법 에서 방법 설명 과 함수 체 는 모두 한 줄 에 있 을 수 있 습 니 다.void func(){}    3.방법 과 방법 사이 에 한 줄 비우 기    4.방법의 문서 주석 은 방법의 앞 에 놓 고 한 줄 을 비 워 서 는 안 됩 니 다.    5.너무 많은 매개 변수 목록 을 피하 고 가능 한 한 5 개 이내 로 제어 합 니 다.여러 개의 매개 변 수 를 전달 해 야 할 경우 이 매개 변 수 를 수용 하 는 대상 을 사용 하여 전달 하여 프로그램의 가 독성 과 확장 성 을 향상 시 킵 니 다.    6.방법 중의 순환 스킨스쿠버 는 2 층 을 초과 해 서 는 안 된다.    7.디자인 기간 에 하위 클래스 가 필요 없 는 클래스 에 대해 서 는 final 을 사용 합 니 다.    8.모든 방법 은 가능 한 한 코드 줄 수가 100 줄 을 넘 지 않도록 합 니 다(유효 코드 줄,주석 포함 하지 않 음).그러나 논리의 완전 성 을 확보 해 야 합 니 다.    9.인터페이스 에 있 는 방법 은 기본 단 계 는 proctected 입 니 다.다른 서브 시스템 의 가방 이 자신의 서브 시스템 인터페이스 에 있 는 방법 을 호출 하 는 지 확인 할 때 만 방법 을 Public 로 노출 합 니 다.
5.언어 사용 및 쓰기 규범
   1.변수의 정의 가 이전 역할 영역의 변수 와 동명 이인 을 피 합 니 다.   2.방법 과 방법 사이 에는 빈 줄 로 분리 해 야 한다   3.부분 변 수 는 사용 시간 에 설명 하고 부분 변수/정적 변 수 는 성명 할 때 동시에 초기 화 합 니 다.   4.상수 와 비교 할 때 상 수 는 비교 식 의 앞 에 놓는다.예 를 들 어:
if(“simpleCase”.equals(obj))…
if(null == obj)….

   5.return 문장에서 복잡 한 연산 이 있어 서 는 안 된다.   6.switch 문 구 는 결 성 된 분기 가 필요 합 니 다.

좋은 웹페이지 즐겨찾기