7. 읽기 쉽게 흐름제어 만들기

2021. 12. 3. 13:40·Books/읽기 좋은 코드가 좋은 코드다
반응형

이 글은 읽기 좋은 코드가 좋은 코드다(더스틴 보즈웰, 트레버 파우커 지음 / 임백준 옮김 / 한빛미디어) 를 읽고 내용을 정리한 글입니다.

<<흐름을 제어하는 조건과 루프, 그리고 여타 요소를 최대한 "자연스럽게" 할 것!!>>

 

1. 조건문에서 인수의 순서

-> 왼쪽이 주체, 오른쪽이 고정 값.

// good
if(length > 0) {
	...
}

// bad
if(0 < length){
	...
}

 

2. if/else 블록의 순서

-> if(긍정) else : 일반적으로 좋음!

-> 간단한 것을 먼저하는 것 좋음

-> 더 흥미롭고, 확실한 것 먼저하는 것 좋음

 

3. 삼항 연산자를 사용하는 것

-> 기본적으로 if/else를 사용하고, 삼항 연산자는 매우 간단할 때만 사용한다.

-> 짧은 코드 < 다른 사람이 이해하기 쉬운 코드

 

4. do/while 루프를 피하라

 

5. 함수 중간에서 반환하기

-> 함수를 중간에서 반환하는 것은 적절한 "보호장치"가 될 수 있다.

-> "보호장치"라 함은, 함수가 고장나지 않도록 하는 예외처리라고도 할 수 있다.

 

6. 악명 높은 goto

-> goto는 되도록 사용하지 않는다.

 

7. 중첩을 최소화하기

-> 선형적인 코드를 추구하라.

-> 함수 중간 반환을 사용하여 중첩을 최소화할 수 있다.

-> 루프 내부에서 중간 반환시 continue 사용

 

8. 실행흐름을 따라올 수 있는가?

-> 자신의 프로그램에 존재하는 '흐름'을 상위수준에서 조명해보라.

-> 아래 표의 구조가 차지하는 비율이 너무 높지 않게 하라!

프로그래밍 구조 상위수준의 프로그램 흐름이 혼란스러워지는 방식
쓰레딩 어느 코드가 언제 실행되는지 불분명하다.
시그널/인터럽트 핸들러 어떤 코드가 어떤 시점에 실행될지 모른다.
예외 예외처리가 여러 함수 호출을 거치면서 실행될 수 있다.
함수 포인터 & 익명 함수 실행할 함수가 런타임에 결정되기 때문에 컴파일 과정에서는 어떤 코드가 실행될지 알기 어렵다.
가상 메소드 object.virtualMethod()는 알려지지 않은 하위클래스의 코드를 호출할지도 모른다.
반응형
저작자표시 (새창열림)

'Books > 읽기 좋은 코드가 좋은 코드다' 카테고리의 다른 글

9. 변수와 가독성  (0) 2021.12.06
8. 거대한 표현을 잘게 쪼개기  (0) 2021.12.06
6. 명확하고 간결한 주석 달기  (0) 2021.12.02
5. 주석에 담아야 하는 대상  (0) 2021.12.02
4. 미학  (0) 2021.12.02
'Books/읽기 좋은 코드가 좋은 코드다' 카테고리의 다른 글
  • 9. 변수와 가독성
  • 8. 거대한 표현을 잘게 쪼개기
  • 6. 명확하고 간결한 주석 달기
  • 5. 주석에 담아야 하는 대상
개발하는 사막여우
개발하는 사막여우
개발개발 주저리주저리
    반응형
  • 개발하는 사막여우
    개발하는 사막여우
    개발하는 사막여우
  • 전체
    오늘
    어제
    • All (311)
      • Books (13)
        • 읽기 좋은 코드가 좋은 코드다 (13)
      • Study (6)
        • Blockchain (3)
        • Algorithm (3)
      • Baekjoon (36)
      • Programmers (166)
      • LeetCode (15)
      • Open Source (1)
        • Youtube Popout Player (1)
      • Language (32)
        • Python (9)
        • JS (8)
        • Java (5)
        • HTML (6)
        • CSS (4)
      • Library & Framework (15)
        • React.js (15)
      • IDE (2)
        • IntelliJ (2)
      • Airdrop (9)
      • Tistory (2)
      • etc.. (7)
        • Cozubi (6)
        • lol-chess (0)
  • 블로그 메뉴

    • Github
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    클린 코드
    코딩테스트연습
    프로그래머스
    읽기 좋은 코드가 좋은 코드다
    Python
    programmers
    2018 KAKAO BLIND RECRUITMENT
    Cozubi
    Java
    카카오 코딩테스트
    카카오 공채
    백준
    코인줍줍
    코주비
    클린 코드 작성법
    카카오 알고리즘 문제
    프로그래머스 위클리 챌린지
    파이썬
    신규 코인 에어드랍
    알고리즘문제풀이
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
개발하는 사막여우
7. 읽기 쉽게 흐름제어 만들기
상단으로

티스토리툴바