일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 언리얼5
- 이득우의 언리얼 프로그래밍1
- 스포일러 주의
- 2023 게이밍
- shader
- 산토리 하이볼
- 112일선
- URP
- 2023 Gaming
- GenAI
- 2023 구글 클라우드
- 작계훈련
- 리팩터링 3장
- unity
- 주식
- 리팩터링
- 리팩터링 4장
- 주식단테
- 스즈메의 문단속
- 상계9동
- JavaScript
- 224일선
- 언리얼 5
- 이득우의 언리얼 프로그래밍 1
- 구글 컨퍼런스
- 448일선
- 공부
- 전주비빔 라이스 버거
- 2023 게이밍 인 구글 클라우드
- 1일차
- Today
- Total
개발 이야기 안하는 개발자
Good Code, Bad Code (1) _ 코드 품질 본문
예전에 샀던 책인데.
사실 리펙터링 책 사면서 같이 산건데,
리펙터링 읽고나서 코딩 개고수가 된 느낌 받아서 안읽었던 책이다.
에휴
퇴근하고 와서 쓸 거라 목차가 한 12개 쯤 되는데 하루에 하나씩 한다 치면
2주 걸리겠지?
책에서 말한 고품질 코드란
- 신뢰할 수 있다
- 유지 보수가 쉽다
- 버그가 적은 소프트웨어를 생상한다
본 책의 주 내용 6가지
1. 코드는 읽기 쉬워야 한다.
2. 코드는 예측 가능해야 한다.
3. 코드를 오용하기 어렵게 만들라.
4. 코드를 모듈화 하라.
5. 코드를 재사용 가능하고 일반화할 수 있게 작성하라.
6. 테스트가 용이한 코드를 작성하고, 제대로 테스트 해라.
1. 코드는 읽기 쉬워야 한다.
책을 읽으면 엄청 가독성 떨어지는 장문의 글을 예시로 든다.
문제는 내가 이걸 읽으면서 이게 뭐가 문제지 라는 생각이 든다는 것.
나 왜 이거 이해가 되는거지. 불편한지도 잘 못느끼겠다.
그래서 내가 코드를 어렵게 쓰나 보다.
내가 보기엔 불편한걸 못느껴서.
하지만 코드에 대해서 이야기를 하다보면 내 코드가 어렵게 느껴졌구나 라는걸 느끼곤 한다.
이번에는 이 책을 읽고 고치도록 노력해본다.
2. 코드는 예측 가능해야 한다.
본 내용을 인지하고 있음.
그래서 메소드나 변수명이 길어진다.
이게 변수명이나 메소드명을 읽으면 어떤 기능인지 예측 가능하게 하려고 하다보니
가독성이 떨어지는 아이러니가 있다.
나는 그런 상황이다.
이것도 책에 나오겠지
3. 코드를 오용하기 어렵게 만들라.
C++ 을 사용하면서 public / private 구분 확실하게 하려고 노력하는 중이다.
솔직히 본인 업무 하기도 바쁠탠데 다른 사람 코드 읽으면서 이건 이거구나 하고 이해하는 사람이 얼마나 될까 싶다.
나는 내 코드는, 다른사람들이 헤더만 보고 어떤 기능인지 대충 파악하고 가져다 썼으면 한다.
public에 최소한으로 이거 왠지 쓸거같은데 하는 글들만 넣으려고 노력하는데.
이게 맞는지 책을 읽어보겠다.
4. 코드를 모듈화 하라.
이것도 리펙터링 책을 읽으면서 인지는 하고있다.
너무 많이 쪼개놓아서 가독성 떨어지나 싶은 걱정되긴 한다.
이것도 책에서 읽어 보겠노라.
5. 코드를 재사용 가능하고 일반화할 수 있게 작성하라.
한번 만든 코드가 정상작동하는 걸 알고있기 때문에 최대한 있는 코드를 사용하려고 노력한다.
물론 정상작동 안할수도 있지만.
6. 테스트가 용이한 코드를 작성하고, 제대로 테스트 해라.
게임 클라이언트 개발자로서 테스트가 쉽지 않은게 사실이다.
QA라는 팀이 따로 있기 때문에 깊이가 있는 테스트는 사실 잡아내기 어려운게 게임 클라이언트쪽이라고 생각한다.
언리얼 테스트 기능이 따로 있나?
책 보면서 적용 가능한 건 시도해봐야겠다.
'Book > Good Code, Bad Code' 카테고리의 다른 글
Good Code, Bad Code (5) _ 가독성 높은 코드를 작성하라 (0) | 2025.09.16 |
---|---|
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 |