일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DP
- 알고리즘
- 다이나믹 프로그래밍
- Web
- Kotlin
- 검색트리
- codecademy
- CleanCode
- 해슁
- SQL
- inflearn
- Color
- DFS
- front-end
- 구현
- BFS
- 프로그래머스
- 자바
- 클린코드
- html
- android
- SWEA
- 정렬
- java
- algorithm
- 코딩테스트
- Spring
- 순환
- javascript
- CSS
- Today
- Total
목록CleanCode (7)
깡뇽
TDD, 애자일과 같은 프로세스들과 함께 이 분야의 많은 발전이 이루어졌는데 그만큼 제대로 된 테스트 케이스 작성에도 신경을 써야 한다. * TDD(Test Driven Development) 테스트 주도 개발 : 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 개발자는 먼저 요구사항을 검증하는 자동화된 테스트 케이스를 작성한다. 그런 후에, 그 테스트 케이스를 통과하기 위한 최소한의 코드를 생성한다. 마지막으로 작성한 코드를 표준에 맞도록 리팩토링한다. - 위키백과 TDD 법칙 세 가지 1. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 2. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 3. 현재 실패하는 테스트를 통과할 정..
오류 처리 코드로 인해 실제 코드 맥락 등을 이해하기 어려울 수 있으니 깨끗한 코드와 오류 처리는 연관성이 있다고 할 수 있다. 오류 코드보다 예외를 사용하라 호출자를 사용해 오류를 반환하기 보다는 오류가 발생하면 예외를 던지도록 코딩하면 깨끗한 코드를 작성할 수 있다. Try-Catch-Finally 문부터 작성하라 try 블록에서 오류가 생기면 catch 블록으로 넘어가기 때문에 프로그램 상태를 일관성 있게 유지해 준다. try-catch 구조로 범위를 정의했으니 TDD를 사용해서 필요한 나머지 논리들도 추가하여 코드를 작성할 수 있다. 즉, 저자는 강제로 예외가 발생되는 테스트 케이스를 먼저 작성하고 나서 테스트를 통과하게 코드를 작성하는 방법을 권장한다. * TDD(Test Driven Devel..
변수를 private과 public으로 설정하는 각각의 이유들이 존재한다. 자료 추상화 코드에서 인터페이스를 만들거나 변수마다 get 함수와 set 함수를 무작정 추가하는 것이 아니라 추상적인 개념으로 표현하도록 해야 한다. 자료를 세세하게 공개하기보다는 추상적인 개념으로 표현하는 편이 좋다. ˙ ˙ ˙ 개발자는 객체가 포함하는 자료를 표현할 가장 좋은 방법을 심각하게 고민해야 한다. 자료/객체 비대칭 객체와 자료 구조는 근본적으로 반대의 성질을 가지기에 "(자료 구조를 사용하는) 절차적인 코드는 기존 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다. 반면, 객체 지향 코드는 기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉽다."와 "절차적인 코드는 새로운 자료 구조를 추가하기 어렵다. 그러..
보기 좋은 코드를 위해서는 형식을 깔끔하게 맞춰 코드를 짜야한다. 형식을 맞추는 목적 코드 형식은 중요하다! 작동하는 코드가 제일 중요한 것이라고 여길 수 있지만 코드 작성 스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미치기 때문에 상당히 중요하다. 적절한 행 길이를 유지하라 여러 자바 코드 프로젝트들을 보았을 때 충분히 작은 파일로도 커다란 시스템을 구축할 수 있음을 알 수 있다. - 신문 기사처럼 작성하라 사람들이 신문을 읽을 때에 위에서 아래로 읽으며, 상단의 제목을 보고 기사를 읽을지 말지를 결정한다. 또한 신문은 여러 기사들로 이루어져 있고, 보통의 기사들의 길이는 짧다. 신문 기사들이 이러한 특징을 가지는 이유는 더 많은 사람들이 읽고 정보를 얻을 수 있도록 하는 목적이 있기..
잘 달린 주석은 유용하지만 사실 프로그래밍 언어를 사용해서 코드 설명을 잘할 수 있는 능력이 있다면, 주석은 필요하지 않다. "내가 이렇듯 주석을 무시하는 이유가 무엇이냐고? 거짓말을 하니까. 항상도 아니고 고의도 아니지만 너무 자주 거짓말을 하니까." 라고 표현할 정도로 저자는 주석은 불필요한 존재라 말한다. 그 이유는 코드는 계속 변화하는데, 주석은 오래될수록 코드에 대한 설명을 잘 해내지 못하며 프로그래머들이 이 주석들을 유지 보수하기는 어렵기 때문이다. 그리하여 저자는 주석이 필요 없도록 코드를 깔끔하게 정리하는 것에 에너지를 쏟겠다고 말한다. 부정확한 주석은 아예 없는 주석보다 훨씬 더 나쁘다. ˙˙˙ 진실은 한곳에만 존재한다. 바로 코드다. 주석은 나쁜 코드를 보완하지 못한다 일반적으로 주석을..
함수 : 프로그램의 가장 기본적인 단위 작게 만들어라! 함수를 작게 만들수록 좋다. - 블록과 들여쓰기 : 들여쓰기 수준은 1단이나 2단을 넘기지 않아야 한다. if 문/ else 문 / while 문 등에 들어가는 블록은 한 줄이어야 하고, 거기서 함수를 호출하여 코드를 읽고 이해하기도 쉽도록 작성해야 한다. 한 가지만 해라! "함수는 한 가지를 해야 한다. 그 한 가지를 잘해야 한다. 그 한 가지만을 해야 한다."라는 충고를 잘 기억해야겠다. - 함수 내 섹션 : 한 가지 작업만 하는 함수는 섹션으로 구분하기 어렵다. 함수 당 추상화 수준은 하나로! 함수가 한 가지 일만 하려면 함수 안 모든 문장의 추상화 수준이 동일해야 한다. - 위에서 아래로 코드 읽기 : 내려가기 규칙 위에서 아래로 내려갈수록 ..