Clean Code

๐Ÿ”— Junior Vs Senior Code - How To Write Better Code - Part 2arrow-up-right๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

๐Ÿ”— Noob-Vs-Pro-Code - Githubarrow-up-right

3. Async/Await

Step 1๏ธโƒฃ

  • ์ฝœ๋ฐฑ ํ•จ์ˆ˜ - ์ฝœ๋ฐฑ์ด ๊ณ„์† ์ค‘์ฒฉ๋˜๋Š” ๐Ÿ”ฅ์ฝœ๋ฐฑ ์ง€์˜ฅ๐Ÿ”ฅ

const readline = require("readline")
const readlineInterface = readline.createInterface({
  input: process.stdin,
  output: process.stdout
})

readlineInterface.question("What is your name? ", name => {
  readlineInterface.question("What is your job? ", job => {
    readlineInterface.question("How old are you? ", age => {
      console.log("Hello " + name + ". You are a " + age + " year old " + job + ".")
      readlineInterface.close()
    })
  })
})

Step 2๏ธโƒฃ

  • Async/Await - ์ฝœ๋ฐฑ์ด ์ค‘์ฒฉ๋˜๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐ

Step 3๏ธโƒฃ

  • readlineInterface ๋ฆฌํŒฉํ† ๋ง, ํ•จ์ˆ˜ ๋ถ„๋ฆฌ - ๋ชจ๋“ˆํ™”

4. Single Responsibility Principle(SRP, ๋‹จ์ผ ์ฑ…์ž„ ์›์น™)

SOLID: Single Responsibility Principle in JavaScriptarrow-up-right

"class(a.k.a module) ์€ ์˜ค์ง ํ•œ ๊ฐ€์ง€ ์ด์œ  ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•œ๋‹ค."

  • Robert C. Martin

    • SRP๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์— ๊ตญํ•œ๋˜์–ด ์žˆ์ง€ ์•Š๊ณ , ํ”„๋กœํ† ํƒ€์ž… ์ƒ์†์„ ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—๋„ ์ ์šฉ๋œ๋‹ค.

    • ํ•˜๋‚˜์˜ class๋Š” ์˜ค์ง ํ•œ ๊ฐ€์ง€ ์ฑ…์ž„๋งŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค(๋‹จ์ผ ์ฑ…์ž„ ์›์น™)

    • Employee class๋Š” SRP ์›์น™์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ class๋กœ ๋ถ„๋ฆฌ๋˜์–ด์•ผ ํ•œ๋‹ค.

Step 1๏ธโƒฃ

  • ์˜๋„ํ•˜์ง€ ์•Š์€ ๐Ÿšซside effects๐Ÿšซ ์กด์žฌ

Step 2๏ธโƒฃ

  • ๊ธฐ๋Šฅ๋ณ„ ํ•จ์ˆ˜ ๋ถ„๋ฆฌ(validateUser, saveUser)

  • ๐Ÿ’ฃ validation ๊ด€๋ จ ์ฝ”๋“œ ๋ฐ˜๋ณต(๋น„ํšจ์œจ์ )

Step 3๏ธโƒฃ

  • ๐Ÿ”‘ SRP(๋‹จ์ผ ์ฑ…์ž„ ์›์น™) ์ถฉ์กฑํ•˜๋„๋ก validation ๊ด€๋ จ ์ฝ”๋“œ ๋ถ„๋ฆฌ

Last updated