반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 2023 게이밍 인 구글 클라우드
- 언리얼5
- 구글 컨퍼런스
- 리팩터링
- 2023 게이밍
- 산토리 하이볼
- 2023 Gaming
- 공부
- 224일선
- 전주비빔 라이스 버거
- 작계훈련
- URP
- GenAI
- 리팩터링 4장
- 주식
- 리팩터링 3장
- 스포일러 주의
- 2023 구글 클라우드
- 언리얼 5
- 스즈메의 문단속
- 112일선
- unity
- 주식단테
- 이득우의 언리얼 프로그래밍 1
- 1일차
- shader
- JavaScript
- 상계9동
- 448일선
- 이득우의 언리얼 프로그래밍1
Archives
- Today
- Total
개발 이야기 안하는 개발자
Good Code, Bad Code (5) _ 가독성 높은 코드를 작성하라 본문
반응형
서술형 명칭쓰기
- 가능하면 주석보다는 서술형 명칭을 사용할 것.
- 명사나 함수, 클래스 등의 이름만 보고도 어떤 것인지 이해할 수 있게 명명할 것.
주석문의 적절한 활용
- 주석문으로 가독성 높은 코드를 대체할 수 없다.
- 주석문은 코드의 이유를 설명하는데 유용하다. (작업 이유, 테스크 넘버, 버전에 따른 이유 설명 등등)
string Generate(string data)
{
//data[0]은 유저의 이름이고 data[1]은 성이다.
//"{이름}.{성}"의 형태로 ID를 생성한다.
return data[0] + "." + data[1];
}
다음 코드는 주석이 있지만 이해하기 어렵다.
string Generate(string data)
{
return FirstName(data) + "." + LastName(data);
}
string FirstName(string data)
{
return data[0];
}
string LastName(string data)
{
return data[1];
}
코드자체를 보고 이해하기 쉽도록 만들어야 한다.
코드 줄 수를 고정하지 말라.
- 간결하지만 이해하기 어려운 코드는 피해라. (어려운 코드를 조각내서 메소드나 클래스로 만들어서 가독성을 높여야 한다)
일관된 코딩 스타일을 고수하라.
- 파스칼이나, 캐멀 등 하나의 스타일만 고집할 것.
- if문이나, 메소드 명명(Get, Set, Is, ...) 규칙을 일관되게 작성해야 한다.
깊이 중첩된 코드를 피하라
- if문안에 if문을 깊이로 작성하면 결국 return해주는 부분이 와닿기 어렵다.
- 중첩된 블록에 반환문이 없다면, 해당 함수는 너무 많은 일을 하고있다는 뜻으로 분리를 해야 한다.
- 중첩이 과하다면 기능을 분리하거나 더 작은 함수로 분리해야 한다.
설명되지 않은 값을 사용하지 말라.
- 함수안에 뜬금없는 907.184 같은 값을 넣어두고 주석으로 가중치 같은 걸 적어높으면 바로 눈에 들어오지않는다.
- const나 define을 사용해서 해당 값을 외부에 정의해라.
람다(익명 함수)를 적절히 사용하라.
- 간단한 로직엔 사용하기 좋다(간단한 CallBack)
- 너무 긴 로직은 가독성이 떨어질 수 있기 때문에 명명 함수를 사용하라.
언어가 제공하는 기능을 사용하라.
- 간단한 내용은 직접 작성하지말고, 언어 레벨에서 제공하는 메소드나 기능을 찾아보라.
반응형
'Book > Good Code, Bad Code' 카테고리의 다른 글
| Good Code, Bad Code (7) _ 코드를 오용하기 어렵게 만들라 (0) | 2025.09.27 |
|---|---|
| Good Code, Bad Code (6) _ 예측 가능한 코드를 작성하라 (0) | 2025.09.24 |
| Good Code, Bad Code (4) _ 오류 (0) | 2025.09.14 |
| Good Code, Bad Code (3) _ 다른 개발자와 코드 계약 (0) | 2025.09.14 |
| Good Code, Bad Code (2) _ 추상화 계층 (0) | 2025.09.04 |