일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 타입 객체
- 운영체제
- 디자인패턴
- 멀티프로세서
- 병행성
- 백준
- 병행성 관련 오류
- Direct12
- 파일시스템 구현
- 동적계획법
- 컨디션 변수
- 락
- 그리디 알고리즘
- I/O장치
- directx
- DirectX 12
- DirectX12
- 스케줄링
- 멀티쓰레드
- 영속성
- OS
- 자료구조
- codility
- 렌더링 파이프라인
- 알고리즘
- 다이나믹 프로그래밍
- 다이나믹프로그래밍
- 프로그래머스
- 그리디알고리즘
- 쓰레드
- Today
- Total
목록Java/Clean Code (3)
기록공간
작게 만들어라! 함수를 만드는 가장 중요한 규칙은 '작게!'이다. 이 규칙은 근거를 대기가 곤란하다. 함수가 작을수록 더 좋다는 증거를 제시하기도 어렵다. 하지만 여러 프로그래머의 수년 동안의 경험을 바탕으로 이 결론이 도출된 것은 저명한 사실이다. 오랜 시행착오로부터 우러나오는 경험을 바탕으로 함수는 작을수록 좋다는 것을 도출해낸 것이다. 그렇다면 얼마나 짧아야 좋을까? 다음 코드를 보자. public static String renderPageWithSetupsAndTeardowns ( PageData pageData, boolean isSuite) throws Exception { if(isTestPage(pageData)) includeSetupAndTeardownPages(pageData, is..
소프트웨어에서 이름은 어디에나 쓰인다. 변수에도 이름을 붙이고, 함수에도 이름을 붙이고, 인수와 클래스와 패키지에도 이름을 붙인다. 소스 파일에도 이름을 붙이고, 소스 파일이 담긴 디렉터리에도 이름을 붙인다. 이렇듯 많이 사용하기 때문에 이름을 잘 지으면 여러모로 편하다. 의도를 분명하게 밝혀라 의도가 분명한 이름을 지으라고 말하기는 쉽다. 여기서는 의도가 분명한 이름이 정말로 중요하다는 사실을 거듭 강조한다. 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 변수나 함수 그리고 클래스 이름은 다음과 같은 굵직한 질문에 모두 답해야 한다. 변수(함수, 클래스)의 존재 이유는? 수행 기능은? 사용 방법은? 이에 대한 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 ..
코드가 존재하리라 코드는 요구사항을 상세히 표현하는 수단이다. 기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업, 이것이 프로그래밍이고, 이렇게 명시한 결과가 바로 코드이다. 언젠가는 코드가 사라져 시키는 대로 돌아가는 무언가가 나올 거라 기대하는 사람들이 있지만, 이는 절대로 불가능한 기대이다. 창의력과 직관을 보유한 인간조차도 성공적인 시스템을 구현하기 힘들다. 궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심하자. 요구사항에 가까운 언어를 만들 수도 있고, 정형 구조를 뽑아내는 도구를 만들 수도 있다. 하지만 어느 순간에는 정밀한 표현이 필요하다. 그 필요성을 없앨 방법은 없다. 그러므로 코드도 항상 존재하리라. 나쁜 코드 프로그래머들은 좋은 코드가 중요하다는 사실을 안다. 왜냐면 오..