코드리뷰시 자주 등장하는 코딩 용어(약어) : DRY, KISS, YAGNI
1.DRY(Don’t Repeat Yourself)
특정한 지식,의도,로직 등이 다양한 곳에서 다양한 형태로 계속 반복되게 하지마라
시스탬 내에서 특정한 지식과 로직은 단 한 곳에서 명확하고 신뢰할 수 있도록 존재해야함
코드(code), 기능(functionality), 로직(logic) 등이 반복적으로 나타나는 경우 반복을 피하라
↔ WET(Write Everything Twice, Waste Everyone’s Time)
why?
수정해야할 시, 반복되는 코드 전부를 하나씩 다 찾아서 수정해야하고 실수해서 한군데 빠뜨린다면 유지보수는 헬일 것
DRY
WET
2.KISS(Keep It Simple, Stupid)
대부분의 시스템은 복잡하기보다는 심플하게 만들어졌을 때, 최고로 잘 작동한다
시스템 디자인 시, 심플함이 주 목표이 되어야하고 불필요한 복잡성은 피해야한다
별도의 주석 없이도 함수명, 매개변수, 구현된 코드를 읽었을 때 한번에 이해할 수 있도록 1가지의 기능을 수행하는 함수를 심플하게 작동하는게 좋다
ex)10줄 코드를 1줄 코드로 바꾸기 위해, 화려한 테크닉을 이용하여 가독성을 떨어뜨리기 보다는 누구나 이해할 수 있게 심플하고 간결하게 작성하는게 좋다
- 1가지의 책임만 담당하는 클래스 작성이 좋다
- UI를 담당하는 컴포넌트에는 별도의 비지니스 로직을 포함하지 않고, 최대한 심플하게 UI 관련 로직만 담당해야함
- 서비스를 만들 때도, 여러가지 기능을 복잡적으로 담당하는 하나의 큰 서비스를 만들기 보다 단 하나의 기능을 담당하는 개별적인 심플한 서비스를 만드는 것이 좋다
- 위의 것들을 통해서 전체적인 시스템을 KISS하게 심플하게 제작가능
3.YAGNI(You Ain’t Gonna Need It)
필요없는 기능을 작성하지마라
필요한 기능만 초점을 두고 코드를 디자인해야함
- 필요하지 않은 기능 x
- 사용하지 않는 기능 x
- 지나지체 미래지향적 x
앞으로 필요할 것 같은 것을 지나치게 만들거나 염두해두는 코드들은 필요x
시스템에 불필요한 ‘복잡성’을 더 하지 않는 선에서 코드 디자인하라는 의미
※ 필요 없어진 코드는 주석처리보다 Git으로 브랜치를 나눠서 기능별로 버젼관리로 저장해두는 것을 추천
자료 출처 : https://www.youtube.com/watch?v=jafa3cqoAVM&t=286s
'프로그래밍 지식' 카테고리의 다른 글
[Programming] 쓰레기값(garbage value) (feat.stack & heap) (0) | 2022.07.30 |
---|---|
[프로그래밍 용어] 캐멀 케이스(Camel Case) 스네이크 케이스(Snake Case) (0) | 2022.02.04 |
[프로그래밍 용어] 플래그(flag) 변수 (0) | 2022.01.15 |
프로그래밍 기초 용어 : 빌드(build), 배포 (0) | 2022.01.13 |
[프로그래밍 용어] 환경변수, 라이브러리 & 프레임워크 (0) | 2022.01.13 |