R.Fairley 효율적인 코딩 스타일을 위한 지침
- Posted at 2007/12/07 14:25
http://www.action-scripter.com/blog/trackback/662
1. 명확하게 작성하라 (너무 똑똑한 체하지 말 것)
[잘못된 예]
int i, j;
float v[N][N];
.
for(i = 1; i <= N; i++)
for(j = 1; j <= N; j++)
v[i-1][j-1] = ( i / j )*( j / i );
[올바른 예]
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
v[i][j] = 0.0;
}
v[i][j] = 1.0;
}
2. 수식에서 의미하는 바를 간결하고 직접적으로 표현하라
[잘못된 예]
if ( x < y ) {
if ( x < z ) small = x;
if ( x > z ) small = z;
}
if ( x > y ) {
if ( y < z ) small = y;
if ( y > z ) small = z;
}
[올바른 예]
small = x;
if ( y < small ) small = y;
if ( z < small ) small = z;
3. 임시변수의 사용을 피하라
[잘못된 예]
t1 = x1 - ( x2 + x2 );
t2 = 7 - x2;
y = t1 + t1 + t2 + t2;
[올바른 예]
y = 2 * ( x2 - 2 * x2 ) + 2 * (7 - x2);
4. 혼돈을 초래하지 않을 변수명을 선택하라
[잘못된 예]
n = k;
nn = k * k;
nnn = k * k * k;
5. 문장 그룹이 명확히 구별되도록 { } 와 들여쓰기를 사용한다.
[잘못된 예]
for (i= 0; i <N; i++)
{
k = a[i];
if (k>100) a[i] =i*3;
else if (j =N)
...
}
[올바른 예]
for ( i = 0; i < N; i++ ) {
k = a[i];
if (k>100) {
a[i] = i*3;
} else if (j=N) {
...
}
6. if 다음에 if가 따라오는 구조나 null else는 피할 것
[잘못된 예]
if ( qty > 10 )
if ( qty > 200 )
if ( qty >= 500 ) bill_a += 1.00;
else bill_a += 0.50;
else;
else bill_a = 0.0;
[올바른 예]
if ( qty >= 500 ) bill_a += 1.0;
else if ( qty > 200 ) bill_a += 0.5;
else if ( qty <= 10) bill_a = 0.0;
7. 모듈화하라. 서브루틴을 사용하라
8. 수식표현의 원칙
* 명료하게 작성하라 - 효율성을 위하여 명료함을 희생해서는 안된다.
* 번거로운 일은 기계가 하도록 만들라
* 괄호를 사용하여 모호성을 제거하라
* 언어의 좋은 기능을 이용하고 불안한 기능의 사용은 피하라
9. 제어구조의 원칙
* 위에서 아래로 읽을 수 있도록 프로그램하라
* 중복구조를 최소화하라
* 맨 처음 작성한 것으로 끝나지 말 것
10. 프로그램의 원칙
* 각 모듈은 분명한 한가지 역할만 수행하도록 하라
11. 구조의 원칙
* 잘못 작성된 코드는 짜 맞추려 하지 하지 말고 다시 작성하라
* 큰 프로그램은 작은 단위로 나누어 따로 작성하고 따로 검사하라
12. 입출력의 원칙
* 자료가 한계 값을 벗어나지 않는지 항상 검사하라
* 입력형식은 사용자가 쉽게 준비할 수 있게 하고 출력형식은 그 모양이 스스로 드러나게 구성하라
* 입출력은 따로 모아서 독립된 서브루틴으로 만들라
13. 기타 원칙
* 발견된 오류만 고치지 말 것 - 전체적으로 보고 수정 가능한 모든 오류를 고친다.
* 하나 차이에 의한 오류(off-by-one) 를 주의할 것
* 프로그램을 방어적으로 작성하라
* 빠른 프로그램보다 먼저 바른 프로그램을 작성하라
* 빠른 프로그램보다 먼저 명료한 프로그램을 작성하라
* 간결함을 유지하면서 빠른 프로그램을 만들라
* 주석과 코드가 일치하는지 확인하라
* 주석을 달 때 코드를 되풀이해서는 안된다
* 잘못된 코드에는 주석을 달지 말 것 - 다시 작성한다.
* 과다하게 주석을 달지 말 것
* 덕지덕지 고쳐서 사용하려고 애쓰지 말 것 - 과감히 버리고 새로 작성한다.
[잘못된 예]
int i, j;
float v[N][N];
.
for(i = 1; i <= N; i++)
for(j = 1; j <= N; j++)
v[i-1][j-1] = ( i / j )*( j / i );
[올바른 예]
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
v[i][j] = 0.0;
}
v[i][j] = 1.0;
}
2. 수식에서 의미하는 바를 간결하고 직접적으로 표현하라
[잘못된 예]
if ( x < y ) {
if ( x < z ) small = x;
if ( x > z ) small = z;
}
if ( x > y ) {
if ( y < z ) small = y;
if ( y > z ) small = z;
}
[올바른 예]
small = x;
if ( y < small ) small = y;
if ( z < small ) small = z;
3. 임시변수의 사용을 피하라
[잘못된 예]
t1 = x1 - ( x2 + x2 );
t2 = 7 - x2;
y = t1 + t1 + t2 + t2;
[올바른 예]
y = 2 * ( x2 - 2 * x2 ) + 2 * (7 - x2);
4. 혼돈을 초래하지 않을 변수명을 선택하라
[잘못된 예]
n = k;
nn = k * k;
nnn = k * k * k;
5. 문장 그룹이 명확히 구별되도록 { } 와 들여쓰기를 사용한다.
[잘못된 예]
for (i= 0; i <N; i++)
{
k = a[i];
if (k>100) a[i] =i*3;
else if (j =N)
...
}
[올바른 예]
for ( i = 0; i < N; i++ ) {
k = a[i];
if (k>100) {
a[i] = i*3;
} else if (j=N) {
...
}
6. if 다음에 if가 따라오는 구조나 null else는 피할 것
[잘못된 예]
if ( qty > 10 )
if ( qty > 200 )
if ( qty >= 500 ) bill_a += 1.00;
else bill_a += 0.50;
else;
else bill_a = 0.0;
[올바른 예]
if ( qty >= 500 ) bill_a += 1.0;
else if ( qty > 200 ) bill_a += 0.5;
else if ( qty <= 10) bill_a = 0.0;
7. 모듈화하라. 서브루틴을 사용하라
8. 수식표현의 원칙
* 명료하게 작성하라 - 효율성을 위하여 명료함을 희생해서는 안된다.
* 번거로운 일은 기계가 하도록 만들라
* 괄호를 사용하여 모호성을 제거하라
* 언어의 좋은 기능을 이용하고 불안한 기능의 사용은 피하라
9. 제어구조의 원칙
* 위에서 아래로 읽을 수 있도록 프로그램하라
* 중복구조를 최소화하라
* 맨 처음 작성한 것으로 끝나지 말 것
10. 프로그램의 원칙
* 각 모듈은 분명한 한가지 역할만 수행하도록 하라
11. 구조의 원칙
* 잘못 작성된 코드는 짜 맞추려 하지 하지 말고 다시 작성하라
* 큰 프로그램은 작은 단위로 나누어 따로 작성하고 따로 검사하라
12. 입출력의 원칙
* 자료가 한계 값을 벗어나지 않는지 항상 검사하라
* 입력형식은 사용자가 쉽게 준비할 수 있게 하고 출력형식은 그 모양이 스스로 드러나게 구성하라
* 입출력은 따로 모아서 독립된 서브루틴으로 만들라
13. 기타 원칙
* 발견된 오류만 고치지 말 것 - 전체적으로 보고 수정 가능한 모든 오류를 고친다.
* 하나 차이에 의한 오류(off-by-one) 를 주의할 것
* 프로그램을 방어적으로 작성하라
* 빠른 프로그램보다 먼저 바른 프로그램을 작성하라
* 빠른 프로그램보다 먼저 명료한 프로그램을 작성하라
* 간결함을 유지하면서 빠른 프로그램을 만들라
* 주석과 코드가 일치하는지 확인하라
* 주석을 달 때 코드를 되풀이해서는 안된다
* 잘못된 코드에는 주석을 달지 말 것 - 다시 작성한다.
* 과다하게 주석을 달지 말 것
* 덕지덕지 고쳐서 사용하려고 애쓰지 말 것 - 과감히 버리고 새로 작성한다.
액션스크립트와 직접적인 상관은 없지만 액션스크립트도 프로그래밍 언어이기 때문에 코딩 작업할 때 도움이 될 것 같아 정리했습니다. 원문은 '카톨릭상지대학교-소프트웨어공학' 교안을 참고해서 작성했습니다.
Comments List
-
난 아무래도 액션쪽은 아닌가봐..-_-;; 멀미나...
-
그럼 어느쪽이야? 후후.. 너의 주종목을 말해줘..
-










