inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Cách viết mã sạch (clean code) giúp bạn trở thành một lập trình viên mà ai cũng muốn làm việc cùng

Mẹo thứ 6 để viết mã tốt hơn nữa

이해가 안되는 부분이 있어서 질문드립니다.

311

Tomi

2 câu hỏi đã được viết

1

안녕하세요 좋은 강의 잘 듣고 있습니다!

제가 지식이 얕아서 아래와 같은 말을 이해 할 수가 없었던 부분이 있어 질문드립니다.

"로우 레벨 클래스를 사용할 때는 Don’t reinvent the wheel을 꼭 기억하세요."

로우 레벨 클래스는 하이 레벨 클래스를 도와주는 클래스들 이네요. 근데 로우 레벨 클래스를 사용하는데 있어서 이미 개발된 기능을 다시 만드는 데 시간을 쓰지 말라는 말씀의 의도를 파악을 하지 못했습니다.

바쁘신 와중에 죄송하지만 확인 부탁드립니다.

refactoring

Câu trả lời 1

0

seunghx3368

아닙니다 :) 

충분히 오해하실만합니다. 

이게 사실,

코드의 추상화 수준을 일관성있게 하라는 소주제에 넣었다가 

소주제 'Don't reinvent the wheel'로 변경하게 된 케이스인데요, 

Don't reinvent the wheel과도 연관이 있고

추상화 수준 관련 내용이 먼저 나와 이해에 어려움이 없을 것이라고 생각했네요.

자바 언어에서, System.out.println() 이라는 (표준 출력)메서드의 코드를 예로들어 답변 드려보겠습니다.

위 메서드의 코드를 보니 print(), newLine() 등이 메서드를 사용하고 있네요.

print() 메서드 코드도 한 번 봐보겠습니다.

print() 메서드는 write()라는 보다 저수준 메서드를 호출하고 있네요

더 들어가보니까 flush(), flushBuffer() 같은 메서드 호출 코드가 보입니다.

이 정도로 추적을 끝내고 답변 드려보겠습니다.

 flush(), flushBuffer() 같은 메서드 이름만봐도 System.out.println() 와 그 추상화 수준이 다른 것을 바로 알 수 있을 거에요

만약 이렇게 서로 다른 추상화 수준의 코드가 혼재되어 있다,

그러면 (저수준 기능으로 구현된)이미 만들어진 기능이 있는 것은 아닌지 생각해보라는 의미입니다 :)

뷰 관련해서 질문이 있습니닷

1

399

1

안녕하세요

1

436

1

DB 값 질문

1

466

1

spring boot3에서 kotlin 사용할때 jdk 버젼 선택

1

2263

1

v1/ v2 v1은 실행이 잘되는데 v2는 실행이 안됩니다!

2

506

1

수업내용을 개인 블로그에 정리하여 게시해도 될까요?

1

646

2

library-app-complete 코드 실행방법

1

530

1

필드를 감추는 것이 중요한 이유?

0

568

1

안녕하세요!

0

270

1

자바 Private 관련 문의

1

307

1

예시코드 누락

1

409

2

질문드립니다

1

255

1

질문있습니다.

1

278

2

정적 팩토리 메서드 강의 보고 질문드립니다.

1

284

1

좋은 naming이란에서

1

387

1

그 밖의 좋은 코드 작성을 위한 Tip2 에서..

1

297

2

안녕하세요. 이해가 안되는 부분이 있습니다.

1

254

1

그밖의 좋은 코드 작성을 위한 Tip3: 오타 제보

1

280

2

그밖의 좋은 코드 작성을 위한 Tip2: 오타 제보

1

274

2

그냥 지나가려 했는데 뭐가 자꾸 보이네요..

2

230

1

그밖의 좋은 코드 작성을 위한 Tip2 : Tell, Don't ask 설명이 누락된 것 같습니다

1

295

3

그밖의 좋은 코드 작성을 위한 Tip2 오타 있는것 같습니다.

1

180

1

안녕하세요 강의 자료관련해서 질문드립니다.

1

198

2

pdf 교재 제공

1

173

1