Published on

클린 코드

클린 코드

클린 코드를 고민하기

  • 어떠한 문제가 정의되었을 때, 사수(경력자) 혹은 네임드 개발자의 맹목적인 믿음으로 인해 생각을 하지 않고 다양한 배움을 포기하는 상황 발생
  • 배움에 대해 열린 태도를 가져야 함
    • 디자인 패턴 혹은 자주 쓰는 구조 및 설계에 대해서 스스로 규격을 가지면 프레임에 갇혀버림
  • 직접 생각하고 고민하는 습관
    • 타인이 정의한 답을 의심하고 새로운 지식 속에서는 열린 태도로 임할 것
  • 흔히 알려진 자바스크립트 코드 스타일에 대한 견해를 탐구해야 함
    • AirBnB, Google, ECMA, Prettier, ESLInt, JSHint, JSLint
    • 왜 패턴이 생기고 주의하는지 집중

JavaScript의 특성 파악하기

  • 자바스크립트는 역사적으로 굉장히 많은 변화를 겪음
    • 어느 정도 특성, 맥락 파악하기
  • 타입이 동적으로 형변환되는 몽키 패치에 주의해야 함
    • 몽키 패치 → 런타임 중인 프로그램의 내용이 변경되는 행동(Anti-pattern)
  • 자바스크립트는 단기간(일주일) 내에 빠르게 만들어짐

타언어와 유사도

  • 문법 → 자바
  • 문자 열과 배열, 정규표현식 →
  • 함수 → 오크
  • 클로저, 스코프 → 스키마
  • 프로토타입 → 셀프
  • 이벤트 리스너 → 하이퍼토크

JavaScript Everywhere

  • 브라우저 위에서 동작하는 언어지만, NodeJS(크롬 V8 자바스크립트 엔진으로 빌드된 런타임)가 등장함에 따라 범용성이 생김
  • Electron → 데스크탑 애플리케이션을 만들 수 있음(VSCode, Twitch, Notion, Facebook Messenger, InVision …)
  • 웹 앱 → 웹뷰를 통해서 네이티브 앱처럼 동작함
  • 이처럼 어디에서나 존재하고 어디에서도 작동이 될 정도로 범용성이 장점

Referenced