클린코드를 작성하는 Tips

hwisaac·2023년 2월 1일
0

리팩토링

목록 보기
3/6

클린코드를 작성하면 가독성, 유지보수, 확장성이 좋아집니다.
클린코드를 작성하기 위한 원리는 무엇이고 가장 좋은 방법은 무엇일까요? 클린코드를 작성하기 위해 도움이 될만한 팁들을 모아봤습니다.

  1. 의미가 있고 기능을 설명할 수 있는 변수, 함수 및 클래스 이름을 사용합니다.
  2. 함수는 작게 한가지 목적을 수행해야 합니다.
  3. 일관된 들여쓰기 및 코딩 스타일을 따릅니다.
  4. 매직넘버를 피합니다.
  5. 값들을 하드 코딩하지 않습니다 상수변수를 대신 사용합니다.
  6. 코드의 목적을 설명하기 위해 주석을 쓰되 주석을 중복하여 작성하지 마세요.
  7. 오류 처리 및 예외 처리를 해서 예상치 못한 상황에 대처해야 합니다.
  8. 코드 중복을 피하고, 반복되는 로직은 함수 또는 클래스로 추출(extract)하여 재사용합니다.
  9. 테스트 코드를 작성합니다. 이를 통해 코드의 기능을 검증합니다. (코드를 손상시키지 않도록 합니다.)
  10. 코드는 단순하고 간결하게 작성하고 불필요하게 복잡한 솔루션을 피해야 합니다.
  11. 정기적으로 리팩터링해서 중복코드나 데드 코드를 제거하고 코드를 계속 개선해야 합니다.
  12. 적절한 자료구조를 사용해서 데이터를 저장하고 효율적으로 사용합니다.
  13. 함수와 클래스의 코드는 길어지지 않게 유지합니다. 만약 100줄 이상 넘어간다면 더 작게 쪼갤 수 있는지 고려하세요.
  14. 설계 패턴을 사용하여 표준적이고 재사용성이 높은 방법으로 코딩을 합니다.
  15. 코드 구성 요소들이 긴밀하게 결합되지 않게 하세요. 느슨한 결합, 높은 응집력을 추구합니다.
  16. 코드의 제어 흐름을 쉽게 추적할 수 있어야 합니다.
  17. 최소 권한 원칙(principle of least privilege)을 사용합니다. 객체와 함수등은 작업을 수행하는데 필요한 정보와 권한만 부여합니다.
  18. 다른 개발자에게 코드 리뷰를 받습니다. 코드를 검토하고 피드백을 받으면 문제를 인지하고 수정할 수 있습니다.
  19. 관련된 함수들이나 클래스들을 함께 그루핑하여 코드를 정리해서 쉽게 탐색할 수 있게 합니다.
  20. 중복 작업을 피하고 알고리즘을 개선하여 성능향상을 염두합니다.
  21. 다른 개발자들이 코드의 기능과 사용방법을 쉽게 이해할 수 있도록 코드를 문서화 합니다.
  22. DRY(Don't Repeat Yourself) 원칙을 사용합니다.
  23. 전역변수 사용을 피합니다. 가능한 한 지역변수를 사용하도록 노력합니다.
  24. lint 기능이 있는 도구(예-esLint)를 사용하여 코딩 스타일을 강제하고 잠재적인 에러를 방어합니다.
  25. 암시적인 타입 변환이 일어나지 않게 합니다. 타입변환을 명시적으로 나타내는 코딩을 합니다.
  26. 함수의 매개변수에 의미있는 default 값을 사용합니다. 이를 통해 에러를 방어하고 코드가 유연성이 생깁니다.
  27. 상속(inheritance), 다형성(polymorphism), 캡슐화(encapsulation)과 같은 객체지향적인 프로그래밍 기술을 사용합니다.
  28. 불변성(immutability), 고차함수(higher-order functions) 과 같은 함수형 프로그래밍 기술을 사용합니다.
  29. 적절한 에러 메시지를 로깅하여 코드 문제를 진단합니다.
  30. 모듈화를 통해 코드를 작고 의미 있는 컴포넌트들로 쪼갭니다.
  31. anti pattern 들을 공부하고 사용하지 않도록 합니다.
  32. SOLID, KISS, YAGNI 등 디자인 원리를 공부하고 적용합니다.
  33. 하드 코딩된 값을 사용하지 않도록 하고 대신 configuration 파일 또는 환경 변수를 사용하여 configuration 정보를 저장합니다.
  34. 유닛 테스트, 통합테스트 , E2E 테스트 와 같은 적절한 테스트 전략을 사용합니다.
  35. 코드를 읽고 이해하기 어렵게만들 수 있는 약어와 단축어를 사용하지 않습니다.
  36. 문서 문자열, 인라인 주석과 같은 코드 문서도구를 사용해서 컨텍스트를 제공하고 코드를 설명합니다.
  37. 코드 프로파일링 및 성능 최적화 도구를 사용해서 코드의 성능 병목 현상을 식별하고 해결합니다.
  38. 딥 네스팅 및 복잡한 제어구조를 사용하지 않습니다.
  39. 수동 코딩을 줄입니다. 자동완성을 최대한 활용하세요
  40. 세션 및 쿠키와 같은 상태 저장 구성요소는 필요한 경우가 아니면 사용을 지양합니다.
  41. 함수가 여러 반환 문을 사용하지 않도록 하고 여러 값을 포함할 수 있는 객체를 반환합니다.
  42. 자동 테스트 도구를 사용해서 테스트 및 배포를 자동화 합니다.
  43. 파일 경로를 하드코딩 하지 않고, 상대 파일 경로 및 환경 변수를 사용해서 파일 위치를 지정합니다.

0개의 댓글