Skip to main content

클린코드하면 면접에서 떨어진다고?

주제 선정 이유

아키텍처 중요하다. (조언)

→ 클린코드 찾아보다가 비판적 내용 발견

→ 더 알아보자!

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 아키텍처??
  • 비즈니스로직, 어플리케이션 로직 왜 분리하나요?
  • 클린코드가 무엇인지
  • 클린코드의 장단점…

뒷받침하는 데이터

https://bookstore.tistory.com/38