빈 공간 ( White Space )
■ 한 줄 띄우기
1. 메서드들 사이에 사용
2. 메서드 안에서의 지역 변수와 그 메서드의 첫 번째 문장 사이에서 사용
3. 블록 주석 또는 한 줄 주석 이전에 사용
4. 가독성을 향상시키기 위한 메서드 내부의 논리적인 섹션들 사이에 사용
■ 두줄 띄우기 : 소스 파일의 섹션들 사이에서 , 클래스와 인터페이스의 정의 사이에서 사용
■ 공백 : 괄호와 함게 나타나는 키워드 , 모든 이항연산자, 단항연산자는 공백 (X)
1. 메서드 이름과 메서드의 여는 괄호 사이에 공백이 사용되어서는 안 됨
2. 공백은 인자(argument)리스트에서 콤마 이후에 삽입함
3. for문 내의 세 개의 식(epression)은 공백으로 구분: for (expr1; expr2; expr3; )
4. 변수의 타입을 변환하는 캐스트(cast)의 경우에는 공백으로 구분
myMethod((byte) aNum, (Object) x );
명명 ( Naming ) 규칙
■ 패키지 ( Package )
1. 패키지 이름의 초상위 레벨은 항상 ASCII 문자에 포함되어 있는 소문자로 쓰고, 가장 높은 레벨의 도메인 이름 중 하나이어야 한다.
2. 현재는 com, edu, gov, mil, net, org 또는 1981sus ISO Standard 316에 명시된 영어 두 문자로 표현되는 나라 구별 코드가 사용된다.
3. 패키지 이름의 나머지 부분은 조직 내부의 명명 규칙을 따르면 된다. 이러한 규칙을 따라 만들어진 이름은 디렉토리 구조에서 디렉토리 이름으로도 사용된다.
4. 예를 들면 부서명, 팀명, 프로젝트명, 컴퓨터 이름, 또는 로그인 이름 등 이다.
ex ) com.sun.eng com.apple.mac
■ 클래스 ( Classes )
1. 클래스 이름은 명사이어야 하며, 복합 단어일 경우 각 단어의 첫 글자는 대문자이어야 한다.
2. 클래스 이름은 간단하고 명시적으로 작성해야한다.
3. 완전한 단어를 사용하고 두 문자어와 약어는 피해야 한다. (만약 약어가 url이나 html과 같이 더 많이, 더 넓게 사용되고 있다면 약어를 사용하는 것은 허용이 된다.)
■ 인터페이스 ( Interface ) : 인터페이스 이름도 클래스 이름과 같은 대문자 사용 규칙을 적용해야 한다.
interface RasterDelegate;
■ 메서드 ( Methods ) : 메서드의 이름은 동사이어야 하며, 복합 단어일 경우 첫 단어는 소문자로 시작하고 그 이후에 나오는 단어의 첫 문자는 대문자로 사용해야 한다.
run (); runFast(); getBackground();
■ 변수 ( Variables )
1. 변수 이름의 첫 번째 문자는 소문자로 시작하고, 각각의 내부 단어의 첫 번째 문자는 대문자로 시작해야 한다.
2. 변수 이름이 언더바 ( _ ) 또는 달러 표시 문자로 시작하는 것이 허용되기는 하지만, 이 문자들로 시작하지 않도록 주의해야한다.
3. 이름은 짧지만 의미가 부여되어 있어야 한다.
4. 이름의 선택은 그 변수의 사용 의도를 알아낼 수 있도록 의미적이어야 한다.
5. 한 문자로만 이루어진 변수 이름은 암시적으로만 사용하고 버릴 변수일 경우를 제외하고는 피해야 한다.
6. 보통의 임시 변수들의 이름은 integer일 경우에는 i, j, k, m, n을 사용하고, character일 경우에는 c, d, e를 사용한다.
int i; char c; float f;
■ 상수 ( Constants )
1. 클래스 상수로 선언된 변수들과 ANSI 상수들의 이름은 모두 대문자로 쓰고 각각의 단어는 언더바("_")로 분리해야 한다.
2. 디버깅이 용이하도록 ANSI 상수들의 사용은 자제하도록 해야 한다.
static final int MIN_WIDTH = 4;
■ 좋은 프로그래밍 습관
1. 인스턴스 변수와 클래스 변수를 외부에 노출하지 말고 대신 접글은 제공한다.
-> public 회피
2. 클래스 변수와 클래스 메서드는 클래스 이름을 사용하여 호출한다.
-> 객체사용 회피
3. 숫자는 바로 사용하지 않는다. ( hard-coding 금지 )
-> 선언해서 변수 이름으로 접근
4. 변수에 값을 할당 시 주의해야 할 점
1. 동일 값을 여러 변수에 할당을 금지한다. fooBar.fChar = barFoo.Ichar = 'c'; ( X )
2. 비교연산자 == 와 할당연산자 = 구분 : if ( c++ = d++ ) ( X ), if ( ( c++ d++ ) != 0 ) ( O )
3. 할당문안에 할당문 삽입 금지 : d = (a = b + c) + r; ( X )
5. 괄호
if ( a == b && c == d ) ( X ) -> if ( ( a == b ) && ( c == d ) ) ( O )
6. 반환값은 프로그램 구조와 일치한다.
return ( condition ? x : y ); ( O ), if ( condition ) return x else ... ; ( X )
7. 삼항 연산자 이전에 이항 연산자가 있는 경우는 괄호 사용
-> ( x >= 0 ) ? x : -x;
'Programming > Program' 카테고리의 다른 글
Java Coding Concentions - Oracle 2 (0) | 2020.08.06 |
---|---|
Java Coding Concentions - Oracle 1 (0) | 2020.07.29 |
Google C++ Coding Style (0) | 2020.07.28 |