클린 코드란?
나에게 클린코드란... 남들이 자신의 코드를 읽어봤을 때 의문점이 없는 코드, 예측이 되는 코드를 클린코드라고 생각한다..!
"강사님"의 의견 :
- 가독성이 좋은 코드
- 성능이 좋은 코드
- 안정성이 좋은 코드
즉,
- 코드는 이해하기 쉬워야 한다.
- 코드는 다른 사람이 그것을 이해하는 데 들이는 시간을 최소화 하여야 한다
- 이해를 위한 시간을 최소화 하는 것이 더 좋은 목표이다.

깨진 유리창 법칙
깨진 유리창 하나를 방치해 두면, 그 지점을 중심으로 범죄가 확산되기 시작한다는 이론
코드는 시간이 지남에 따라 지저분한 코드가 되며, 이는 "깨진 유리창 법칙"과 유사한 원리로 설명될 수 있습니다. 초기에는 작은 결함이나 비일관성이 눈에 띄지 않을 수 있지만, 이를 방치하면 점차 더 큰 문제로 발전하게 된다.워드 커닝엄
코드를 읽으며 짐작했던 기능을 각 루틴이 그대로 수행한다면 클린 코드라 불러도 되겠다.
코드가 그 문제를 풀기 위한 언어처럼 보인다면 아름다운 코드라 불러도 되겠다.
처음부터 완벽한 소스코드를 작성하는 사람은 아무도 없다.
그냥 완벽한 코드도 없다. 누군가에게는 다른 시선이 존재하기 때문이지~
이유를 제시하고 설득할 수 있으면 가능하다.
처음부터 클린코드를 짜겠다는 생각보다는 리팩토링하겠다는 생각을 하자
그렇다면 처음부터 클린코드를 염두에 두며 코드를 짜게 될 것이다!
자바의 표준 라이르버리를 오픈 소스화 해서 화려하게 쓸 수 있게 도와주는 도구
public class ToStringUtils{
public void toString(Object obj){
System.out.println(obj.toString());
}
}리팩토링은 일부 관점이 사전 설계와 충돌하지만 결론적으로 리팩토링은 디자인을 보완한다
사전 설계(upfront design)란?