전체 글

전체 글

    클린 코드(Clean code) Day 6

    🔖오늘 읽은 범위 : 6장 객체와 자료구조 🙂 책에서 기억하고 싶은 내용을 써보세요. 객체는 추상화 뒤로 자료를 숨긴 채 자료를 다루는 함수만 공개한다. 자료 구조는 자료를 그대로 공개하며 별다른 함수는 제공하지 않는다. 어떤 시스템을 구현할때 , 새로운 자료타입을 추가하는 유연성이 필요하면 객체가 더 적합하다. 다른경우로 새로운 동작을 추가하는 유연성이 필요하면 자료구조와 절차적인 코드가 더 적합하다. 🤔 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요. Javascript를 주언어로 사용하면서 객체와 자료구조를 명확하게 구분하여 사용해야겠다는 생각을 해본적이 없었다. 책의 예시를 통해 객체의 이점과 자료구조의 이점을 이해할 수 있었지만, 정말 일차원적인 이해일뿐 이 지식을 실제로 어떤식으로 적용..

    클린 코드(Clean code) Day 5

    🔖오늘 읽은 범위 : 5장 코드 형식 🙂 책에서 기억하고 싶은 내용을 써보세요. 코드 형식은 의사소통의 일환이다. 1. 하나의 파일에 200줄 이하, 한 줄에 코드는 120자가 적당하다. 2. 개념은 빈 행으로 분리하자. 생각 사이는 빈 행을 넣어 분리해야 마땅하다. 빈 행은 새로운 개념을 시작한다는 시각적 단서다. 3. 서로 밀접한 개념은 가까이 두자. 변수는 사용하는 위치에 최대한 가까이 선언하기. 한 함수가 다른 함수를 호출한다면 두 함수를 가까이, 가능하다면 호출하는 함수를 먼저 배치 ( 자연스럽게 고차원에서 저차원으로 내려가는 코드 구조가 된다. 하지만 javascript로 코딩 시 보통 함수 표현식을 많이 사용하기 때문에 호출하는 함수를 먼저 배치하는 것이 불가능하지. ) 유사한 개념을 가진 ..

    클린 코드(Clean code) Day 4

    🔖오늘 읽은 범위 : 4장 주석 🙂 책에서 기억하고 싶은 내용을 써보세요. 우리는 코드로 의도를 표현하지 못해, 그러니까 실패를 만회하기 위해 주석을 사용한다. 함수나 변수로 표현할 수 있다면 주석을 달지 말자. // 작원에게 복지 혜택을 받을 자격이 있는지 검사 if(employee.flags && employee.age > 65) 위의 코드는 충분히 주석 없이도 표현이 가능하다. if(employee.isEligibleForFullBenefits()) 이렇게. 그럼에도 괜찮은 주석 정보를 제공하는 주석 // HH:mm:ss, MM dd, yyyy 형식 Pattern timeMatcher = Pattern.compile( "\\d*:\\d*:\\d*, \\w* \\d*, \\d*"); 의도를 설명하는 ..

    클린 코드(Clean code) Day 3

    🔖오늘 읽은 범위 : 3장 함수 🙂 책에서 기억하고 싶은 내용을 써보세요. 1. 함수는 작으면 작을수록 좋다. 각 함수가 이야기 하나를 표현하도록 하자. 중첩 구조가 생길 만큼 함수가 커져서는 안 된다. 2. 함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한가지만을 해야한다. 어쨌거나 우리가 함수를 만드는 이유는 큰 개념을 다음 추상화 수준에서 여러 단계로 나눠 수행하기 위해서가 아니던가. ❗️함수가 '한 가지만' 하는지 판단하는 법 같은 추상화 수준*을 가진 코드들로 이루어져 있는지 각 코드를 단순히 다른 표현이 아니라 의미 있는 이름으로 나눌 수 있는지 ( 따라서, 객체 상태를 변경하는 것과 객체 정보를 반환하는 로직은 분리되어야 한다. ) 💡추상화 수준*이란 일단 ‘추상화’란 구체..

    클린 코드(Clean code) Day 2

    오늘 읽은 범위 : 2장 의미 있는 이름 🙂 책에서 기억하고 싶은 내용을 써보세요. 의도가 분명하게 이름을 지으라 변수나 함수 그리고 클래스 이름은 다음과 같은 굵직한 질문에 모두 답해야 한다. 변수의 존재 이유는? 수행 기능은? 사용 방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. 그릇된 정보를 피하라 실제 List가 아니라면, 이름에 accountList 와 같이 List라 명명하지 말아야 한다. 서로 흡사한 이름을 사용하지 않아야 한다. 의미 있게 구분하라 읽는 사람이 차이를 알도록 이름을 지어야 한다. (단순 구분을 위해 productInfo 와 productData로 이름을 나누어 짓는 것은 정말 의미 없는 행동이다.) 클래스 이름 클래스와 객체 이름은 명사, 명사구를 ..