명명 규칙


1. [필수] 코드의 이름은 밑줄 또는 달러 기호 로 시작할 수 없으며 밑줄 또는 달러 기호 으로 끝날 수 없습니다.

카운터 예: _name / __name / $Object / name_ / name$ / Object$

2 [필수] 코드 내 명명에 병음과 영어를 혼합하여 사용하는 것을 엄격히 금지하며, 중국어를 직접 사용하는 것도 금지합니다.

설명: 영어 철자와 문법을 수정하면 독자가 쉽게 이해하고 모호함을 피할 수 있습니다. 순수 병음 명명 방법 도 피해야 합니다.

카운터 예: DaZhePromotion [할인] / getPingfenByName() [등급] / int 변수 = 3#🎜 🎜 #

긍정적인 예: alibaba / taobao / youku / hangzhou 외 기타 국제 명칭은 영어와 동일하다고 볼 수 있습니다.

3. [필수] 클래스 이름은 UpperCamelCase 스타일을 사용해야 하며 다음 예외를 제외하고는 카멜 표기법을 따라야 합니다. (도메인 모델 관련 명명

) DO / BO / DTO / VO 등 .

긍정적인 예: MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion

카운터 예: #🎜 🎜 # MacroPolo / UserDo / XMLService / TCPUDDPeal / TAPromotion4. [필수] 메소드 이름, 매개변수 이름, 멤버 변수 및 로컬 변수는 모두 lowerCamelCase 스타일을 사용하며

Camel Case 형식을 따라야 합니다. .

긍정적인 예:

localValue / getHttpMessage() / inputUserId5 [필수] 상수 이름은 모두 대문자여야 합니다. 문자, 단어 사이는 밑줄로 구분하고, 긴 이름에 불만을 갖지 마세요.

긍정적인 예:

MAX _ STOCK _ COUNT

카운터 예:

MAX _ COUNT # 🎜🎜#6. [필수] 추상 클래스의 이름은 Abstract 또는 Base로 시작하고, 예외 클래스의 이름은 Exception으로 끝납니다. 은 해당 클래스의 이름으로 시작합니다. 테스트하고 테스트로 끝납니다.

7. [필수] 대괄호는 배열 유형의 일부입니다. String[]

args;

카운터 예:

정의하는 데 String args[]를 사용하지 마세요.

8. [필수] POJO 클래스의 부울 유형 변수에 is를 추가하지 마십시오. 그렇지 않으면 부분 프레임워크 구문 분석으로 인해 직렬화 오류가 발생합니다.

Counter 예: 은 기본 데이터 유형 boolean isSuccess의 속성으로 정의됩니다. 해당 메서드도 isSuccess()입니다. RPC프레임워크가 역분석할 때 "for"는 해당합니다. 속성 이름이 성공이므로 속성이 획득되지 않고

예외가 발생합니다.

9. [필수] 패키지 이름에는 소문자를 사용하고 점 구분 기호 사이에는 자연스러운 의미를 지닌 영어 단어 하나만 사용합니다. 패키지 이름은 항상 단수형 을 사용하지만, 클래스 이름이 복수형 의미를 갖는 경우 클래스 이름은 복수형을 사용할 수 있습니다.

긍정적인 예: 애플리케이션 도구 클래스 패키지 이름은 com alibaba util 이며 클래스 이름은 을 참조하세요. spring for this rule) 프레임 구조)

10. [필수] 텍스트의 의미를 혼동하지 않도록 완전히 비표준 약어를 사용하지 마세요.

카운터 예: AbstractClass의 "약어"는 AbsClass로 명명됩니다. 이러한 임의의 약어는 가독성을 심각하게 감소시킵니다. 코드의.

11. [추천] 디자인 패턴을 사용하는 경우 해당 패턴을 클래스 이름에 반영하는 것이 좋습니다.

설명: 은 이름에 디자인 패턴을 반영하므로 독자가 건축 디자인 아이디어를 빠르게 이해하는 데 도움이 됩니다.

긍정적인 예: public class OrderFactory;

public class LoginProxy;

public class ResourceObserver;#🎜🎜 #

12. [권장 사항] 인터페이스 클래스의 메서드 및 속성에 수정 기호를 추가하지 말고(공용 추가하지 않음), 코드를 간결하게 유지하고

유효한 Javadoc 주석을 추가하세요. 인터페이스에서 변수를 정의하지 마십시오. 변수를 정의해야 하는 경우 해당 변수는 인터페이스 메소드와 관련된 이어야 하며 전체 애플리케이션의 기본 상수여야 합니다.

긍정적인 예: 인터페이스 메서드 서명: void f();

인터페이스 기본 상수 표현: String COMPANY = " alibaba " " #

참고:

JDK 8의 인터페이스는 기본 구현을 허용하므로 이 기본 메서드는 모든 구현 클래스에 대한 귀중한

기본 구현입니다. 13 인터페이스 및 구현 클래스 이름 지정에는 두 가지 규칙 세트가 있습니다.
1) [필수] 개념을 기반으로 하는 서비스 및 DAO 클래스의 경우 of SOA, 노출 나오는 서비스는 인터페이스여야 하며,

의 내부 구현 클래스는 Impl이라는 접미사로 인터페이스와 구별됩니다.

긍정적인 예: CacheServiceImpl은 CacheService 인터페이스를 구현합니다.

2) [권장] 기능을 설명하는 인터페이스 이름인 경우 해당 형용사를 인터페이스 이름으로 사용합니다(보통 –able 형식).

긍정적인 예: AbstractTranslator는 Translatable을 구현합니다.

14. [참고] 열거형 클래스 이름에는 Enum 접미사를 추가하는 것이 좋습니다.

설명: 열거형은 실제로 특수 상수 클래스이며 생성자는 기본적으로 비공개로 설정됩니다.

긍정적인 예: 열거 이름: DealStatusEnum, 멤버 이름: SUCCESS / UNKOWN _ REASON.

15. [참고] 레이어별 명명 규칙:

A) 서비스/DAO 레이어 메서드 명명 규칙

1) 단일 개체 접두사로 get을 사용합니다.

2) 여러 객체를 얻는 방법에는 list라는 접두어가 붙습니다.

3) 통계값을 구하는 방법 앞에는 count가 붙습니다.

4) 삽입 방법 앞에는 save(권장) 또는 insert가 붙습니다.

5) 삭제 방법 앞에는 제거(권장) 또는 삭제가 붙습니다.

6) 수정 방법 앞에는 update가 붙습니다.

B) 도메인 모델 명명 규칙

1) 데이터 개체: xxxDO, xxx는 데이터 테이블의 이름입니다.

2) 데이터 전송 객체 : xxxDTO, xxx는 사업 분야와 관련된 이름입니다.

3) 표시 개체: xxxVO, xxx는 일반적으로 웹페이지의 이름입니다.

4) POJO는 DO/DTO/BO/VO의 총칭이며, xxxPOJO로 명명하는 것은 금지되어 있습니다.