클린코드하면 면접에서 떨어진다고?
주제 선정 이유
아키텍처 중요하다. (조언)
→ 클린코드 찾아보다가 비판적 내용 발견
→ 더 알아보자!
1주일간 책 절반 정도 읽어봄.
(나머지 절반은 적용파트)
Clean Code
클린 코드의 논란들
- 함수는 작아야 한다. 2~4 줄 정도로 작성되어야 한다.
- 주석이 없는 코드가 좋은 코드다.
- DRY: 중복 코드는 제거되어야 한다.
- null 을 반환하는 함수는 나쁜 함수다.
- …
여러분의 생각을 듣고 싶습니다.
무엇이 더 좋은 코드인가요?
// 메서드를 가진 객체로 구현 (implements)
interface Shape {
get area(): number
}
class Rect implements Shape {
point: Point;
width: number;
height: number;
constructor(point: Point, width: number, height: number) {
this.point = point;
this.width = width;
this.height = height;
}
get area() {
return this.width * this.height;
}
}
class Circle implements Shape {
point: Point;
radius: number
constructor(point: Point, radius: number) {
this.point = point;
this.radius = radius;
}
get area() {
return Math.PI * (this.radius**2);
}
}
// 객체 데이터, 메서드 따로 구현
class Rect {
point: Point;
width: number;
height: number;
constructor(point: Point, width: number, height: number) {
this.point = point;
this.width = width;
this.height = height;
}
}
class Circle {
point: Point;
radius: number;
constructor(point: Point, radius: number) {
this.point = point;
this.radius = radius;
}
}
class Geometry {
get area(shape: Object) {
if (shape instanceof Rect) {
return shape.width * shape.height;
}
else if (shape instanceof Circle) {
return Math.PI * (shape.radius**2);
}
}
}
Clean Code : 무엇을 말하고자 하는가?
새로운 걸 만드는 건 쉽다.
But, 기존의 코드를 유지보수 한다는 건 힘들다…
읽기 쉬운 코드를 작성하자. (= 다른사람이 읽는다고 생각하기)
변경이 적도록 코드를 작성하자. (= 변경 지점 고려하기)
⇒ 코드에 의도를 나타내자
이런 방법을 쓰면 괜찮아질 수도 있다.
논란에 대한 생각(?)
왜 이 책에 대한
클린코드 읽다보면 → 객체지향 이야기 → 추상화가 당연함.
Java 말고 다른 언어에서는…?
그것 보다 의도가 중요하다.
다른 사람이 봤을 때, 어떨까? 라는 생각을 계속하자.
너무 강한 어조로 얘기했다.
논란이 생긴 이유인 것 같다.
제목만 읽으면, 논란 생길만도 하다. 자세히 읽으면 납득가는 내용이긴 함.
항상 생각하자.
정보를 비판적으로 수용해야한다.
나왔던 팁들
- (변수, 함수) 이름 잘 짓자
- 작명 기준을 정하자. (add, insert, append…)
- 외부 라이브러리 - wrapping 하자.
- 추후 변경할 때 모두 변경해야하니까. 하나의 Action으로 추상화 하자.
- …
결론
제목만 읽지 말자.
무조건적인 수용은 하지 말자. (비판적 사고)
Clean Code 의 규칙이 항상 성립하진 않는다.
단지, 그 코드에 적절한 방법이 있을 뿐.
(그래도 Clean code 책 한 번쯤 읽어보자)
참고자료
https://youtu.be/HoP8qWpucWA?si=i-LPdc8F2epzCNux
https://bookstore.tistory.com/38
https://www.reddit.com/r/learnprogramming/comments/139stu1/why_the_hate_towards_clean_code/
주제
클린코드 장단점, 써야하는 이유 / 쓰지 말아야 하는 이유 살펴보기
아키텍처 왜 나오는건가요??
어떤 이유로 중요하다고 생각하시나요?
- 프론트엔드도 아키텍처 공부 해야한다. →
- layered 아키텍처??
- 비즈니스로직, 어플리케이션 로직 왜 분리하나요?
- 클린코드가 무엇인지
- 클린코드의 장단점…