clean code

본 글은 클린코드 6장을 읽고 난 후 개인적인 생각입니다. 자료 추상화 변수를 비공개로 정의하는 이유는 변수에 의존하지 않게 만들기 위해서입니다. 하지만 수많은 프로그래머가 getter 혹은 setter 함수를 당연하게 공개해 비공개 변수를 외부에 노출합니다. 변수를 private으로 선언하더라도 각 값마다 getter 함수와 setter 함수로 제공한다면 구현을 외부로 노출하는 셈입니다. 이렇게 자료를 세세하게 공개하기보다는 추상적인 개념의 함수를 만드는 것이 좋다고 합니다. 저는 setter에 대해서는 이 내용에 동의하지만 getter까지 전부 추상적인 개념(클래스 내부의 어떤 비공개 인스턴스 변수를 가져오는지 모르도록 추상화)으로 일일이 변경해야 한다는 부분에서는 클래스 용도마다 차이가 있을 것으로..
본 글은 클린코드 5장을 읽고 난 후 주관적인 생각입니다. "은 탄환은 없다"라는 말처럼 항상 상황에 맞춰 생각을 한 번 더 하는 습관이 중요한 것 같습니다. 형식을 맞추는 목적 오랜 시간이 지나도 맨 처음 잡아놓은 구현 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속해서 영향을 미칩니다. 때문에 너무 엄격하지 않은 어느정도 스타일과 규율은 필요하다고 생각합니다. 적절한 행 길이를 유지하라 대부분 500줄을 넘지않고 200줄 정도인 파일로도 커다란 시스템을 구축할 수 있다고 합니다. 개인적인 생각으로는 파일의 길이가 길어지는 건 하나의 클래스가 너무 많은 일을 하고 있을 때 그렇다고 생각합니다. 예를 들어 주문이라는 큰 상위개념이 있고 하위개념으로는 옵션, 가격, 주문상품 등이 있다고 했을 때 주..
본 글은 로버트 C. 마틴의 클린코드를 읽고 주관적인 생각을 적은 글입니다. 이 책의 4장 주석을 읽어보기 전에는 주석이 꼭 필요할까? 에 대한 저의 답은 "가끔"이었고 읽고 나서도 변하지 않았습니다. 책 설명에서와 같이 잘 짜인 코드라면 코드만 으로도 충분한 설명이 가능할 것 같습니다. 가끔 필요 없는 곳에도 주석을 사용한 적이 있던 적도 있는 것 같고 필요한 곳에 사용하지 않은 적도 있는 것 같습니다. 책의 케이스 중 어느 정도 맞다고 생각하는 케이스만 적어보겠습니다. 1. 코드로 의도를 표현하라! 다음 코드는 주석이 있는 코드와 주석을 없앤 코드입니다. 주석이 있는 코드 // 직원에게 복지 혜택을 받을 자격이 있는지 검사한다. if ((employee.flags & HOURLY_FLAG) && (e..
infitry
'clean code' 태그의 글 목록