코드프레소 Java 웹 개발 체험단 활동 중
코드프레소 이러닝 강의 수강 - 실무자가 알려주는 Git 활용한 프로젝트 관리
코드프레소 URL: https://www.codepresso.kr/
Clean Code에 대한 서로 다른 시각
- 코드의 품질은 매우 주관적일 수 있는 주제이기 때문에, 개인마다 Clean Code의 기준이 다를 수 있다
- 개개인마다 좋은 코드에 대한 서로 다른 정의와 수준을 갖고 있으며, 갖고 있지 않기도 하다
- SW는 다수의 개발자들이 협업하여 만들기 때문에 코드 품질, SW 품질에 대한 서로 다른 시각은 품질 향상의 걸림돌이 된다.
바라보는 시각이 다르기 때문에 표준이나 엄격한 정의는 없지만, 대가들의 아이디어에서 힌트를 얻을 수 있다.
왜 Clean Name이 중요할까?
- 우리는 개발의 약 75%의 시간을 코드를 읽고 이해하는데 사용한다
- 변수, 상수, 함수, 클래스, 파일 등 SW의 주요 요소는 이름을 갖고 있다
- 좋은 이름은 내부를 들여다보지 않아도 동작과 목적을 쉽게 이해할 수 있다
- 좋은 이름을 사용하면 코드를 읽는 사람의 인지적 부하를 최소화할 수 있다
Clean Naming 원칙
이해하기 쉬운 좋은 이름은 읽는 사람의 인지적 부하를 최소화시킨다
- Function, Class 역할이 명확하면 Naming도 명확해진다
- 불필요한 정보/반복은 제거해야 한다
- 줄임말(약어)를 사용하지 않는다
- 규칙과 일관성은 중요하다
- 동료와 상의해라
Clean Class Naming 원칙
- 구체적이고 명확한 이름을 사용하라
- Convention을 준수하는 일관성 있는 이름을 사용하라
- 보편 언어를 활용하라
번외로 소프트웨어 엔지니어는 복잡한 현실의 문제 (도메인)을 잘 파악한 후 설계와 코드에 반영해야 하는데, 현실은 그렇지 못하다. 따라서 도메인 전문가와 커뮤니케이션을 통해 서로 간에 이해한 개념을 코드에 녹여내는 도메인 주도 개발 방법도 있다.
Clean Method
- Method/Function은 SW에서 가장 기본이 되는 모듈이다
- Method를 호출하는 사람이 사용하기 용이해야 한다
- Method를 유지보수하는 사람이 이해하고, 변경하기 용이해야 한다
- Method를 유지보수하는 사람이 테스트하기 용이해야 한다
하나의 Method는 동일한 추상화의 수준만 가져야 한다
- 추상화의 수준(Level of Abstraction)이란?
- 가장 높은 레벨은 비즈니스 적 측면에서의 기능을 얘기한다
- 가장 낮은 레벨은 디테일한 HOW를 제공해주는 코드를 얘기한다
- 그 사이에는 수많은 레벨이 존재하지만, 반드시 동일한 레벨 또한 존재한다
추상화의 수준
Higher Level vs Lower Level
하나의 Method는 동일한 추상화의 수준만 가져야 한다
Method의 이름이 책임지는 범위의 일만 해야 한다
이름의 책임을 벗어나는 Bad Smell
'코드프레소 체험단' 카테고리의 다른 글
계층형 아키텍처와 컨트롤러 (0) | 2022.02.03 |
---|---|
처음 시작하는 SQL 프로그래밍 (0) | 2022.02.03 |
[Java 프로그래밍 초급] 객체지향 기본 개념 (0) | 2022.01.21 |
[실무자가 알려주는 Git 활용한 프로젝트 관리] Git 브랜치의 이해와 활용 (0) | 2022.01.17 |
[코드프레소 체험단] 처음 시작하는 Java 프로그래밍 (0) | 2022.01.13 |