Hello GH

코딩가이드 예제 본문

개발공통/Java

코딩가이드 예제

회색인간 2016. 5. 9. 21:09

자바 코딩가이드 예제

With 회색인간
1) 명명(Naming) 규칙
이름을 정하는 규칙은 프로그램을 더 읽기 쉽게 만들어 줌으로써 더 이해하기 쉽게 만들어 준다.
식별자(identifier)를 통해서 기능에 대한 정보도 얻을 수 있으며, 코드를 이해하는데 큰 도움이 된다.

식별자
타입
명명 규칙예제
Packages

- 패키지 이름의 최상위 레벨은 항상 ASCII 문자에 포함되어 있는 소문자
- 가장 높은 레벨의 도메인 이름 중 하나
- 현재는 com, edu, gov, mil, net, org, 또는 1981년 ISO Standard 316에 명시된 영어 두 문자로 표현되는 나라 구별 코드가 사용
- 패키지 이름의 나머지 부분은 조직 내부의 명명 규칙을 따르면 된다.
- 이러한 규칙을 따라 만들어진 이름은 디렉토리 이름으로도 사용된다. 
 ex) 부서명, 팀명, 프로젝트명, 컴퓨터 이름, 로그인 이름 등이다.

com.sun.eng
com.apple.quicktime.v2
edu.cmu.cs.bovik.cheese
Classes

- 클래스 이름은 명사
- 복합 단어일 경우 각 단어의 첫 글자는 대문자(CamelCase 방식)
- 클래스 이름은 간단하고 명시적이 되도록 작성
- 완전한 단어를 사용하고 두 문자어와 약어는 피하도록 하자.
 (만약, 약어가 URL이나 HTML과 같이 더 많이, 더 넓게 사용되고 있다면 약어를 사용하는 것도 괜찮다)

class Raster;
class ImageSprite;
Interfaces

- 인터페이스 이름도 클래스 이름과 같은 대문자 사용 규칙을 적용.

interface RasterDelegate;
interface Storing;
Methods

- 메서드의 이름은 동사

- 복합 단어일 경우 첫 단어는 소문자로 시작하며, 그 이후에 나오는 단어의 첫 문자는 대문자로 사용(CamelCase 방식)

run();
runFast();
getBackground();
Variables

- 변수 이름의 첫 번째 문자는 소문자로 시작

- 각각의 내부 단어의 첫 번째 문자는 대문자로 시작

- 변수 이름이 언더바(_) 또는 달러 표시 문자로 시작하지 않도록 주의

- 변수 이름은 짧지만 의미 있어야 한다. 

- 변수 이름의 선택은 그 변수의 사용 의도를 알아낼 수 있도록 의미적

- 한 문자로만 이루어진 변수 이름은 임시적으로만 사용하고 버릴 변수일 경우를 제외하고는 피해야 한다.
- 보통의 임시 변수들의 이름은 integer일 경우에는 i, j, k, m, n을 사용하고, character일 경우에는 c, d, e를 사용한다.

Int i;
char c;
float myWidth;
Constants

- 클래스 상수로 선언된 변수들과 ANSI 상수들의 이름은 모두 대문자로
- 각각의 단어는 언더바(“_”)로 분리
(디버깅을 쉽게 하기 위해서 ANSI 상수들의 사용은 자제하도록 하자.).

static final int MIN_WIDTH = 4;
static final int MAX_WIDTH = 999;
static final int GET_THE_CPU = 1;
2) 코딩예제
(1) 자바 소스 파일 예제
- 하나의 public class를 가지는 자바 소스 파일을 어떻게 구성하는지 보여주는 예제
/*
 * 클래스 이름, 버전정보, 날짜
 * @(#)Exercise.java        1.00 2016/5/09, 
 *
 * [저작권 및 라이센스 관련 정보를 여기에 작성한다.]
 * Copyright (c) 2015 GrayHuman.
 * ComputerPrograming, ProgrammingLanguage, Java, Seoul, KOREA
 * All rights reserved.
 */
 
package com.grayhuman.exercise;
 
import grayhuman.*;
 
/**
 * 클래스에 대한 설명을 여기에 작성한다.
 *
 * @version          1.00 2016년 5월 9일
 * @author           회색인간
 */
public class Exercise extends GrayHuman {
    /* 클래스의 구현 주석을 여기에 작성한다. */
 
    /** 클래스 변수 classVar1에 대한 설명을 여기에 작성한다. (문서 주석) */
    public static int classVar1;
 
    /** 
     * 클래스 변수 classVar2에 대한 설명이 (문서 주석이)
     * 한 줄 이상일 경우 이렇게 작성한다.(접근 제어자가 private일 경우 나오지는 않음.)
     */
    private static Object classVar2;
 
    /** 인스턴스 변수 instanceVar1에 대한 설명을 여기에 작성한다.(문서 주석) */
    public Object instanceVar1;
 
    /** 인스턴스 변수 instanceVar2에 대한 설명을 여기에 작성한다.(문서 주석) */
    protected int instanceVar2;
 
    /** 인스턴스 변수 instanceVar3에 대한 설명을 여기에 작성한다.(문서 주석) 접근 제어자가 private일 경우 나오지는 않음. */
    private Object[] instanceVar3;
 
    /** 
     * ... 생성자 Exercise()에 대한 설명을 여기에 작성한다.(문서 주석) ...
     */
    public Exercise() {
        // ... 여기에 실제 코드를 작성한다. ...
    }
 
    /**
     * ... 메서드 doSomething()에 대한 설명을 여기에 작성한다.(문서 주석) ...
     */
    public void doSomething() {
        // ... 여기에 실제 코드를 작성한다. ... 
    }
 
    /**
     * ... 메서드 doSomethingElse()에 대한 설명을 여기에 작성한다.(문서 주석) ...
     * @param someParam 파라미터에 대한 설명
     * @return String 리턴값에 대한 설명
     * @exception exception 예외사항에 대한 설명
     */
    public String doSomethingElse(Object someParam) {
        // ... 여기에 실제 코드를 작성한다. ... 
    }
}
3) 참고문헌
[국내. 저자 있음] Kwangshin(2015). "자바 코딩 규칙", http://kwangshin.pe.kr/blog/java-code-conventions-%EC%9E%90%EB%B0%94-%EC%BD%94%EB%94%A9-%EA%B7%9C%EC%B9%99/?ckattempt=3#5.2.%20문서화(Documentation) 주석. (2016-05-09 방문)

'개발공통 > Java' 카테고리의 다른 글

Google Java Coding Guide  (0) 2016.05.09
Comments