ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 깨끗한 코드 그리고 의미있는 이름
    Java/클린코드 2022. 2. 6. 23:27

    나쁜 코드

    클린코드를 이야기 하기 앞서 나쁜코드의 예시는 다음과 같다.

    • 성능이 나쁜 코드 : 불필요한 연산을 개선할 여지가 있는 코드
    • 의미가 모호한 코드 : 이해하기 어렵거나 네이밍과 내용이 다른 코드
    • 중복된 코드 : 비슷한 내용인데 중복됨으로 버그를 낳는 코드

    왜 나쁜 코드를 짜는 걸까?

    • 시간이 없어서
    • 영향 범위 (Side Effect) 가 넓어서

    클린 코드란?

    클린 코드는 나쁜 코드의 반대라고 할 수 있다.

    • 성능이 좋은 코드
    • 의미가 명확한 코드 (가독성이 좋은 코드)
    • 중복이 제거된 코드

     

    유명하고 노련한 프로그래머들의 클린 코드 의견은 다음과 같다.

    • 비야네 스트롭스트룹 - C++ 창시자
      • 깨끗한 코드는 한 가지를 제대로 한다.
    • 그래디 부치 - 객체지향 대가
      • 깨끗한 코드는 잘 쓴 문장처럼 읽힌다.
    • 빅 데이브 토마스 - 이클립스 전략의 대부
      • 깨끗한 코드에는 단위 테스트 케이스와 인수 테스트 케이스가 존재한다.
    • 마이클 페더스 - Working Effectively with Legacy Code 저자
      • 깨끗한 코드는 언제나 주의 깊게 짰다는 느낌을 주는 코드
    • 론 제프리스
      • 중복없는 코드
    • 워드 커닝햄 - 위키 창시자
      • 짐작한 기능을 그대로 수행하는 코드

     

    클린한 코드를 작성하는 방법으로 책에서는 다음 규칙을 제시한다.

    • 보이스카우트 규칙
      • 손대기 전보다 손댄 후가 더 깨끗한 코드!!

     

    의미 있는 이름

    • 클래스 (객체) 이름 : 명사, 명사구
    • 메소드 이름 : 동사, 동사구
    • 인터페이스 이름 : 접두어 붙이지 않기 public interface IShapeFactory -> ShapeFactory
    • 구현 클래스 이름 : public class ShapeFactoryImpl -> CircleFactory
    • 변수명에 타입 넣지 말자
      • String nameString -> name
      • int itemPriceAmount -> itemPrice
      • Account[] accountArray -> accounts
      • List accountList -> accounts, accountList
      • Map accountMap -> accountMap
    • 루프 속 i j k 사용하지 않기 -> advanced for 문으로 대체하자! -> lamda를 사용하자
      • i, j -> row, col / width, height
      • i, j, k -> row, col, depth
    • 통일성 있는 단어 사용하기
      • Member, Customer/ User
      • Service/ manager
      • Repository / Dao
      • 등은 팀 협업을 통해 이야기 하자

     

    Google Java Naming Guide

    https://google.github.io/styleguide/javaguide.html#s5-naming

    'Java > 클린코드' 카테고리의 다른 글

    [클린코드] 오류 처리  (0) 2022.03.01
    [클린코드] 객체와 자료구조  (0) 2022.02.23
    [클린코드] 형식 맞추기  (0) 2022.02.15
    [클린코드] 주석  (0) 2022.02.11
    [클린코드] 함수  (0) 2022.02.07
Designed by Tistory.