
โ ์ด ํฌ์คํ ์ ๋ ธ๋ง๋ ์ฝ๋ ๋ถํด๋ฝ 'ํด๋ฆฐ ์ฝ๋' ์ฑ๋ฆฐ์ง๋ฅผ ์งํํ๋ฉด์ ์์ฑํ๋ TIL์ด๋ฉฐ, ์ถ์ฒ๋ Clean Code์ ๋๋ค.
๐ ๋ฒ์ : ~05. ํ์ ๋ง์ถ๊ธฐ
๐ ์ฑ ์์ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ์ ์จ๋ณด์ธ์.
- ์ฝ๋ ํ์ === ์์ฌ์ํต
- ์ข์ ํ์์ผ๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ
- ์ ๊ฐ๋ ์ ์์ํ ๋๋ ๋น ํ ๋ฃ๊ธฐ
- ๋ฐ์ ํ ๋ด์ฉ์ ๊ฐ๊น์ด (์ธ๋ก ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ๊น๊ฒ ์์ฑ)
- instance ๋ณ์ โ class ๋งจ ์ฒ์์ ์ ์ธ
- a ํจ์๊ฐ b ํจ์๋ฅผ ํธ์ถํ๋ค๋ฉด ๋์ ๊ฐ๊น๊ฒ, ๋๋๋ก a๋ฅผ b๋ณด๋ค ๋จผ์ ์์ฑ
- ๊ฐ๋ ์นํ๋ โฌ โ ๊ฐ๊น์ด! (์ข ์ ํจ์, ๋ณ์ - ๋ณ์ ์ฌ์ฉ ํจ์, ๋น์ทํ ๋์ ์ํ)
- ๋ค์ฌ ์ฐ๊ธฐ ์ํ๊ธฐ
- Team์ด ์๋ค๋ฉด Team ๊ท์น ์ ํ๊ณ ๊ทธ์ ๋ฐ๋ฅด๊ธฐ, ๊ฐ์ธํ๋ํ์ง ์๊ธฐ
- ๋ค๋ฅธ ์ฌ๋์ด ์ฝ๊ธฐ ์ฝ๊ฒ, ๊ท๊ฒฉํํด์ ์์ฑ (์ฌ ์ฌ์ฉ์ฑโฌ)
โ๐ป ์ค๋ ์ฝ์ ์๊ฐ์? ๋ ์ค๋ฅด๋ ์๊ฐ์ ๊ฐ๋ณ๊ฒ ์ ์ด๋ณด์ธ์.
์ฝ๋๋ ๊ธฐ๊ณ์ ์ฌ๋ ๊ฐ์ ์ํต์ด๋ผ๊ณ ์๊ฐํ์๋๋ฐ, ์ฑ ์ ์ฝ์์๋ก ์ฌ๋๊ณผ ์ฌ๋๊ณผ์ ์ํต์์ ๋ ์ค์ํ ์ญํ ์ ํ๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. ๋ํ ์ข์ ์ํํธ์จ์ด๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ์ฝ๊ธฐ ์ฌ์ด ์ฝ๋๋ก ์์ฑํด์ผ ํ๊ณ , ์ ์ง ๋ณด์๊ฐ ์ฉ์ดํ ์ ์๋๋ก ํ์์ ์ง์ผ์ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๋ค๋ ์ ์ ๋ฐฐ์ ๋ค. ๊ทธ๋ฆฌ๊ณ ํญ์ IDE์ formatting์ ์ฆ๊ฒจ ์ผ๋๋ฐ, ์์คํ ์๋ง ์์กดํ๋ ๊ฒ์ด ์๋๋ผ ๋ค์ฌ ์ฐ๊ธฐ, ๋น์ทํ ๊ฐ๋ ์ ์ธ๋ก ์์น๋ฅผ ๊ฐ๊น์ด ์์ฑํ๊ธฐ ๋ฑ์ ์ ์ํ๋ฉด์ ์ฝ๋๋ฅผ ์์ฑํด์ผ๊ฒ ๋ค.
๊ทธ๋ฆฌ๊ณ ์ง๋๋ฒ์ ๋ง๋ ํ ์ด ํ๋ก์ ํธ์ ์ฝ๋๋ค์ ๋ค์ ์ดํด๋ณด๋ฉด์ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ผ๊ด์ฑ ์๊ฒ ๋ค์ ๊ณ ์ณ๋ด์ผ๊ฒ ๋ค.
๐ ๊ถ๊ธํ ๋ด์ฉ์ด ์๊ฑฐ๋, ์ ์ดํด๋์ง ์๋ ๋ด์ฉ์ด ์๋ค๋ฉด ์ ์ด๋ณด์ธ์.
ํ์์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ด๋ค ๊ฒ๋ค์ด ์๋์ง ๊ถ๊ธํ๋ค. ESlint๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ํ๋ ๊ฒ์ธ์ง ์ฌ์ฉํ ํ ๋ค์ ์์ ํด ์ฃผ๋ ๊ฒ์ธ์ง ๊ถ๊ธํ๋ค. ๊ทธ๋ฆฌ๊ณ JS์์๋ ๊ฐ๋ ์ ๋จผ์ ์์ฑํ ํ ๋ ์๋์์ ํธ์ถ์ ํด์ผ ํ๋ค๊ณ ์๊ฐํ๋๋ฐ, ์์ ์ฝ๋๋ฅผ ๋ณด๋ ๊ฐ๋ ์ด ์๋์ ์๊ณ , ํธ์ถํ๋ ์ฝ๋๊ฐ ๋ ์๋จ์ ์์นํ๋ ๊ฑฐ ๊ฐ์์ ์กฐ๊ธ ๋ ๊ณต๋ถ๋ฅผ ํด๋ด์ผ๊ฒ ๋ค!
์ข์ ์:
class PerformanceReview {
constructor(employee) {
this.employee = employee;
}
perfReview() {
this.getPeerReviews();
this.getManagerReview();
this.getSelfReview();
}
getPeerReviews() {
const peers = this.lookupPeers();
// ...
}
lookupPeers() {
return db.lookup(this.employee, 'peers');
}
getManagerReview() {
const manager = this.lookupManager();
}
lookupManager() {
return db.lookup(this.employee, 'manager');
}
getSelfReview() {
// ...
}
}
const review = new PerformanceReview(employee);
review.perfReview();
์ถ์ฒ : ํด๋ฆฐ ์ฝ๋ - ์๋ฐ์คํฌ๋ฆฝํธ ko ๋ฒ์ ๊นํ๋ธ
'Book TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํด๋ฆฐ์ฝ๋ Day 13. ๋ณต์ต + ํด์ฆ Day (0) | 2022.05.07 |
---|---|
ํด๋ฆฐ์ฝ๋ Day 12. ๊ฐ์ฒด์ ์๋ฃ๊ตฌ์กฐ (0) | 2022.05.04 |
ํด๋ฆฐ์ฝ๋ Day 8-9. ๋๋ฌ์ด ์ฝ๋ ๊ณ ์น๊ธฐ (0) | 2022.05.03 |
ํด๋ฆฐ์ฝ๋ Day 7-8. ์ฃผ์ ์ฐ๋ ๋ฐฉ๋ฒ (0) | 2022.04.30 |
ํด๋ฆฐ์ฝ๋ Day 5-6. ํจ์ ์ฌ์ฉ ์ ์ฃผ์ํ ์ ๋ค (0) | 2022.04.28 |
๋๊ธ