본문 바로가기

전체 글

(191)
클린코드 4장 주석 주석은 쓰지 않는 것이 좋다. 주석이 오래되면 코드와 달라질 수 있고, 모든 주석을 관리할 수는 없다. 주석이 없어도 한 눈에 알아볼 수 있는 소스를 작성하는 것이 좋다. // 직원에게 복지 혜택을 받을 수 있는지 검사한다. if ((employee.flags & HOURLY_FLAG) && (employee.age > 65)) vs if employee.isEligibleForFullBenefits()) 몇초만 더 생각하면 코드로 대다수 의도를 표현할 수 있다. 그럼에도 주석이 필요한 경우들이 있다. 1. 법적인 주석 : 각 소스 파일 첫 머리에 주석으로 들어가는 저작권 정보와 소유권 정보는 필요하고도 타당하다. 2. 정보를 제공하는 주석 : 기본적인 정보를 제공하는 주석은 편리할 수 있다. 3. 의도..
vim 추천설정 ~/.vimrc 파일 만들고 아래 내용 넣으면 좀 컬러풀한 vi 사용 가능 syntax enable syntax on filetype on set autoindent set background=dark set cindent set history=100 set hlsearch set number set paste! set shiftwidth=4 set showmatch set statusline=%h%F%m%r%=[%l:%c(%p%%)] set smartindent set tabstop=4 set textwidth=80 set title set ruler colo koehler highlight Comment term=bold cterm=bold
클린코드 3-2 함수 서술적인 이름을 사용하라 많은 개발자들이 자기 마음대로 줄임말을 사용하고 있다. 카드코드를 어떤 회사에서는 CC라 사용하고있고, 어떤 회사에서는 취소를 CC로 사용하고있다. 나는 규약된 데이터 카탈로그, 스키마가 있는게 아닌 이상 줄임말을 지양하고 있다. 길고 서술적인 이름이 짧고 어려운 이름과 긴 주석보다 좋다. 나는 여러 단어를 사용해 함수 기능을 잘 표현할 수 있는 서술적인 이름을 채택한다. 서술적인 이름을 사용하면 머릿속에서도 설계가 뚜렷해져 코드를 개선하기 쉬워진다. 대신 앞서 설명한것 처럼 일관성이 있어야 한다. 같은 동사, 명사, 문구를 사용하도록 하자. 거래는 Transaction이 될 수 있고 Trade가 될 수 있고, 조회는 select, search, inquiry 등등 다양한 표기가..
클린코드 3장 함수 함수는 가능한 작게 만드는 것이다. if, else, for 등의 블록은 중첩 구조를 최소화 하여야 한다. 그러므로 함수에서 들여쓰기 수준은 1단이나 2단을 넘기면 안된다. 그래야 코드를 읽고 이해하기 쉬워진다. 이를 위 여러가지 디자인 패턴들 또한 고려할 수 있다.(AOP, ExceptionHandler, Proxy...) 물리적으로 작게 만든다는 것 뿐만 아니라 꼭 필요한 기능 한 가지만 한다는 뜻이다. (그 한 가지를 잘해야한다.) 여기서 오해하지 말아야 할 중요한 내용이 있다. 우리는 한 메소드 안에 테이블을 조회하고, 경로를 렌더링하고, 문자열을 덧붙이고, HTML을 생성하는 등 여러가지를 처리하는 메소드를 만들어왔다. 이는 여러가지 기능을 하고 있지만 추상화 수준으로 보면 결국 '페이지를 렌더..
23. 10,11월 근황 보호되어 있는 글입니다.
오사카가서 옷사까 23.9.17 ~ 9.20 오사카 여행기 공항에서 먹은 시나몬 머시기 인천공항에서 기다리다가 라이엇에서 머 팝업나왔길래 구경했는데, 게임도 시켜주더라, 구경만하구 나옴 승욱이가 자꾸 뭘 먹자구 그랬는데, 속 느글려서 안먹는다 해놓구 하나 뺏어먹었다 이름 까먹었는데 이게 이번 여행중에서 제일 맛있었다ㅋㅋㅋㅋㅋㅋ 오사카 내가간당~~ 간사이 공항 도착하구 문구가 귀여워서 찍음 공항에서 부터 사람 너무많고 후덥지근하구 길 헷갈려서 조금 힘들어 했던 기억이 난다 매표소 아저씨가 우리 헤매는거 보고 하우매니피플~ 노티켓 노티켓~ 이렇게 안내해주셨었는데 그 때 임팩트가 너무 커서 아직도 가끔 성대모사 한다ㅋㅋㅋ 첫날은 교토로 갔다. 승욱이 픽으로 간 무슨 함벅스테이크집 웨이팅좀 길었는데 한국인보다 현지인이 많더라, ..
클린코드 2장 의미 있는 이름 소프트웨어에서 변수, 메소드, 클래스, 파일 및 패키지 명까지 모든 곳에는 이름을 붙여야한다. 이름이 무슨 기능을 하나 대충 지을 수 있다 생각하지만 깔끔한 코드에는 명확하고 규칙적인 네이밍이 필수다. 누가 읽어도 이해할 수 있는 코드가 좋은코드이다. 난독화가 목적이 아닌 이상, 의도가 분명한, 누가 읽어도 무슨 역할을 하는지 이해할 수 있도록 작명하여야 한다. 오해할 수 있는 여지가 있는 네이밍은 피해야한다. 추가로 소문자 l과 대문자 O는 1과 0 그리고 대문자 I와 구분하기 어려우므로 이러한 문자들도 피하자. 이 또한 중요한데, 값을 하드코딩하는 것을 포함하여 값의 정보로 변수를 표기하면 검색 시 불편함이 있다. 그러므로 목적에 맞는 네이밍으로 검색을 쉽게 하자. 한 가지 예시로 이벤트나 익셉션을 ..
클린코드 1장 깨끗한 코드 좋은 코드는 어떤 코드인가 읽기쉬운코드, 한가지 기능만 하는 코드, 중복이 없는코드.... 가장 와닿은 의견은 짐작한 기능을 그대로 이루는 코드이다. 너무 당연하고 명백해 심오한 발언이라 여겨지지 않는다. 짐작하는 기능을 수행하는것이 당연하지 않던가? 하지만 짐작한 기능을 그대로 수행하는 모듈을 마지막으로 접한게 언제였던가? 코드의 기능을 살펴보려면 전체 시스템부터 논리를 찾으려 애썼던 기억에 고개를 끄덕이게 된다. 우리는 좋은 코드를 작성하는데에는 아키텍처나 프레임워크, 언어 등 고차원적인 요소가 품질을 결정한다고 생각하지만, 이 책에서는 단순한 들여쓰기 스타일로 가치를 만들어내고 사소한 것 하나에서 깨끗한 코드가 탄생한다고 알려주고 있다. 클린코드는 이를 통해 우리가 우아하고 직관적인 코드를 작성할 ..