출처: http://qiita.com/ryotanatsume/items/018cae5c5be8faba367a



KISS

Keep It Simple, Stupid

간단하게 해 어리석은 놈아


코드를 쓸 때 "단순성"이나 "간결성"을 최대 중요 항목으로 한다.


코드는 자연에 맡겨 수정해 가면 무 질서하게 되고 복잡해진다. 

그 결과, 읽기 어렵고 수정하기 어려워진다.

코드를 간단하게 유지하는 것으로 수정하기 쉬워 진다.


구체적으로는 프로그래밍할 때 "동작하기 위해서 가장 단순한 것은 무엇인가"라고 자주 물어보는 것이 필요하다.



DRY

Don't Repeat Yourself.

되풀이하지 마라.


같은 코드를 중복해서 쓰지 말라는 것.


왜냐하면, 코드의 개선이 어려워지기 때문이다.

우선 같은 코드가 여럿 있는 것으로 양적으로 "더 많은" 질적으로 "보다 복잡한 "이 되기 때문에 코드를 읽는 작업이 어려워진다.

또 수정할 때도 하나 고칠 때도 중복해서 쓴 코드에 대해서도 빠짐없이 고쳐야 하니 큰일이다.


구체적으로는 처리의 모음은 "함수화" "모듈화"를 하고 데이터는 이름 있는 정수를 정의하는 것이 중요하다.



YAGNI

You Aren't Going to Need it.

그것은 꼭 필요하게 되지 않는다


코드를 필요 최저한으로 한다.


미리 여러가지 사태에 대비하여 코드를 써도 결국은 이용되지 않는 것이 많다.

그리고 그것에 의해서 코드에 "쓸데없는" 복잡성을 담아 버리게 되는, KISS에 사상에도 역행한다.

즉, 예상이 빗나간 경우 시간이 헛되게 사용하는 것에 더해 방해도 되는 것이다.

그리고 단순 코드가, 범용성이 높다.

구체적으로는 보편성보다는 단순성을 생각하는 것이 중요. 

코드는 "지금" 필요한 것만 하기.



PIE

Program Intently and Expressively

의도를 표현하는 프로그래밍을 해라


코드는 의도를 분명히 표현하게 써야 한다는 것이다.


코드가 "사람"이 읽기 위한 것이며 코드만이 소프트웨어의 동작을 "정확히" "완전히" 알기 위한 단서이다.

따라서 소프트웨어의 동작을 파악하는 데는 쉬운 코드를 쓰고 코드에서 의도를 전하는 수밖에 없다.


구체적으로는 코드를 쓸 때는 "쓰기 쉬움" 보다 "읽기 쉬움"을 중시하는 것.

코드는 "쓰는 것" 보다 "읽는 것"이 더 많은 것이기 때문이다.



SLAP

Single Level of Abstraction Principle

추상화 수준의 통일


코드를 쓸 때 높은 수준의 추상화 개념과 낮은 수준의 추상화 개념을 분리하도록 할 것.


왜냐하면, 코드가 수준에 어울리는 함수로 분할됨으로써 "요약성" "열람성"을 동시에 충족시킬 수 있다.

같은 곳에는 같은 추상도의 처리와 같이 코드가 통일됨으로써 코드는 거침 없이 흐르고 이해하기 쉽다.


구체적으로는 함수를 구조화하는 것이 중요하다.

하나의 함수에서 어느 부분에서는 데이터베이스 접속은 저 수준의 처리를 하고 다른 부분에서는 비즈니스 로직의 실행이라는 높은 수준 처리를 하도록 하지 않는 것이 중요하다.



저작자 표시
신고
by 흥배 2016.11.07 08:00

Linus Torvalds씨가 Linux 커널의 네트워크 스택에서 사용되는 주석 스타일에 대해서 "뇌가 손상된 바보 같은 주석"이라고 수정을 요구하고 있다(메일링 리스트에서 코멘트 Register).

 

Torvalds씨는 균형 잡힌 대칭적인 주석 스타일로 통일해야 한다고 생각하는 듯.

아래의 (a)~(c)를 좋은 주석 스타일이라고 밝혔다. Linux 커널 스타일은 아니다고 하면서 허용 가능한 주석 스타일로서 (d)를 꼽고 있다.

 

(a)

/*This is a comment*/

 

 

(b)

/*

*This is also a comment, but it can now be cleanly

*split over multiple lines

*/

 

 

 

(c)

//This can be a single line.Or many.Your choice.

 

 

(d)

/*This is an alternate multi-line format

that isn't horrible, but not kernel style*/

 

 

한편 균형 잡히지 못한 최악인 주석 스타일로 하고 있는 것은 아래의 2.

(no)

/*This is disgusting drug-induced

*crap, and should die

*/

 

(no-no-no)

/*This is also very nasty

*and visually unbalanced*/

 

 

, 주석 박스화를 선호하는 사람의 이야기를 시작할 생각은 없다면서 박스화한 주석은 LSD를 맞았다면 정말 훌륭한 것이라고 생각할 수 있지만, * 오른쪽을 갖추고 있는 것에 신경을 쓰는 것 이상으로 좋은 것은 없다고 말했다.

 

 

저작자 표시
신고
by 흥배 2016.08.10 08:00
| 1 |