[클린코드] 함수

2015. 7. 1. 15:44·개인/책

함수

작게 만들어라.

한 가지만 해라.

-       함수는 한 가지를 해야 한다. 그 한가지를 잘 해야 한다. 그 한가지 만을 해야 한다.

함수당 추상화 수준은 하나로!(추상화 수준이 동일하여야 한다.)

-       getHtml() 은 추상화 수준이 높다.

-       String pagePathName = PathParser.render(pagepath); 는 추상화 수준이 중간

-       str.append(“\n”) 는 추상화 수준이 낮다.

위에서 아래로 코드 읽기

-       코드는 위에서 아래로 이야기처럼 읽혀야 한다.

switch 문은 추상화해서 사용

-       길어진 switch 문은 추상 팩토리 패턴으로 대체하는 방법을 연구

서술적인 이름을 사용하라.

함수 인수는 작을수록 좋다.

부수 효과를 일으키지 마라.

-       한가지 작업만 하라.

명령과 조회를 분리하라.

오류 코드보다 예외를 사용하라

try/catch 블록 뽑아내기

-       Exception 을 던져라.

반복하지 마라.

 

소프트웨어를 짜는 행위는 글짓기와 비슷하다.

초안을 작성하고 이를 다듬어서 좋은 글로 만든다.

함수도 만들어서 리팩토링하고, 테스트케이스를 만들어서 테스트를 진행하면 점점 좋은 코드가 된다.

 

반응형
저작자표시 비영리 (새창열림)

'개인 > 책' 카테고리의 다른 글

[클린코드] 오류처리  (0) 2015.07.02
[클린코드] 객체와 자료 구조  (0) 2015.07.02
[클린코드] 형식 맞추기  (0) 2015.07.02
[클린코드] 주석  (0) 2015.07.01
[클린코드] 의미 있는 이름  (0) 2015.06.30
'개인/책' 카테고리의 다른 글
  • [클린코드] 객체와 자료 구조
  • [클린코드] 형식 맞추기
  • [클린코드] 주석
  • [클린코드] 의미 있는 이름
hs_seo
hs_seo
Hello World!
    반응형
  • hs_seo
    개발자로 살아남기
    hs_seo
  • 전체
    오늘
    어제
    • 전체 (1140)
      • 개발자 (21)
        • 개발에 유의할 점 (0)
        • 면접 (5)
      • IT 소식 (5)
        • 업계 (1)
      • java (51)
        • 디자인패턴 (3)
        • apache-common (1)
      • 개념 (47)
        • 자료구조 (4)
        • 함수형사고 (8)
        • 디자인패턴 (1)
      • 데이터분석 (1)
      • python (67)
        • 코드조각 (12)
        • 라이브러리 (2)
      • 빅데이터 (418)
        • zookeeper (5)
        • hadoop (78)
        • hdfs (12)
        • hive (127)
        • hbase (16)
        • spark (40)
        • scala (4)
        • trino (3)
        • oozie (41)
        • Hue (9)
        • R (5)
        • sqoop (6)
        • flume (3)
        • elasticsearch (2)
        • airflow (16)
        • kafka (3)
        • kubernetes (10)
        • openstack (3)
        • flink (2)
        • redis (2)
      • 빅데이터 강좌 (2)
      • 알고리즘 (131)
        • 알고리즘 (1)
        • 백준 (61)
        • 정올 (41)
        • 더블릿 (5)
        • 프로그래머스 (1)
      • 프로그래밍 언어 (30)
        • go (4)
        • js (9)
        • .Net (6)
        • Jsp (1)
        • ansible (3)
        • terraform (6)
      • Tools (56)
        • docker (2)
        • macbook (6)
        • maven (3)
        • sublime (1)
      • 프레임워크 (25)
        • [JS] angularjs (2)
        • [JS] node.js (19)
        • [Java] spring (2)
        • Android (2)
      • 데이타베이스 (43)
        • SQLD (5)
        • Oracle (1)
        • MySQL (8)
        • ADsP (2)
      • 리눅스 (25)
        • Bash (61)
      • GCP (5)
      • AWS (34)
        • EC2 (2)
        • EMR (14)
      • 정보보안기사 (4)
        • 네트워크 (1)
      • 개인 (80)
        • 업무실수 (0)
        • 책 (9)
        • 교육 (3)
        • 여행 (17)
        • 영화 (12)
        • 음악 (2)
        • 피규어 (4)
        • 게임 (3)
        • 생각 (7)
        • 기타 (10)
        • 좋은글 (5)
        • 좋은 사이트 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

    • 빅데이터-하둡,하이브로 시작하기
    • 빅데이터-스칼라, 스파크로 시작하기
    • Kaggle에서 파이썬으로 데이터 분석 시작하기
    • 쉘스크립트 개발 시작하기
    • 개발자가 데이터 분석 준전문가 되기
    • 데브쿠마
  • 공지사항

  • 인기 글

  • 태그

    emr
    SPARK
    ubuntu
    HDFS
    HIVE
    build
    Tez
    오류
    k8s
    Python
    java
    oozie
    yarn
    파이썬
    Hadoop
    하둡
    Linux
    S3
    알고리즘
    error
    bash
    다이나믹
    hbase
    nodejs
    백준
    AWS
    mysql
    정올
    하이브
    airflow
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
hs_seo
[클린코드] 함수
상단으로

티스토리툴바