You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

00. 개요

  • 5S 철학

    • 정리 (Seirl)
    • 정돈 (Seiton)
    • 청소 (Seiso)
    • 청결 (Seiketsu)
    • 생활화 (shutsuke)
  • 코드 품질을 측정하는 유일한 척도 = 분당 내지르는 "WTF" 회수
  • 장인 정신을 익히는 2단계 과정
    • 이론
      • 원칙. 패턴, 기법, 경험
    • 실전
      • 이론을 바탕으로 한 지식을 몸과 마음으로 체득
  • 학습(學習) : 배우고 익히다


우리는 우리의 행위(코드작성)에 대하여 항상 이유(근거)가 있어야 한다.

01. 깨끗한 코드

  • AI가 개발자를 대체할까?
    • 코드는 요구사항을 상세히 표한하는 수단
    • 기계가 실행할 정도로 상세하게 요구사항을 명시하는 작업, 이것이 프로그래밍
    • 요구사항을 모호하게 줘도 우리 의도를 정확히 꿰뚫어 프로그램을 완벽하게 실행하는 기계는 없을 것이다.
  • 나쁜코드
    • 르블랑의 법칙 : 나중은 켤코 오지 않는다.
    • 나쁜코드는 생산성을 떨어 뜨립니다.
    • 깨끗한 코드를 만드는 노력이 비용을 절감하는 방법일 뿐만 아니라 전문가로서 살아남는 길을 인정하라.
  • 태도
    • 일정에 쫓기더라도 대다수 관리자는 좋은 코드를 원한다.
    • 그들이 일정과 요구사항을 강력하게 밀어붙이는 이유는 그것이 그들의 책임이기 때문이다.
    • 좋은 코드를 사수하는 일은 바로 우리 프로그래머들의 책임이다.
    • 어느 환자가 수술전에 손을 씻지 말라고 요구한다. 시간이 너무 걸리니까. 확실히 환자는 상사다.
      • 환자 말을 그대로 따르는 행동은 전문가 답지 못하다.
      • 나쁜 코드의 위험을 이해하지 못하는 관리자 말을 그대로 따르는 행동은 전문가 답지 못하다.


비야네 스트롭스트룹(Bjarne Stroustrup / C++창시자이자 The C++ Programming Language저자)

  • 나는 우아하고 효율적인 코드를 좋아한다.
  • 논리가 간단해야 버그가 숨어들지 못한다.
  • 의존성을 최대한 줄여야 유지 보수가 쉬워진다.
  • 오류는 명백한 전략에 의거해 철저히 처리한다.
  • 성능을 최적으로 유지해야 사람들이 원칙 없는 최적화로 코드를 망치려는 유혹에 빠지지 않는다.
  • 깨끗한 코드는 한 가지를 제대로 한다.

02. 의미 있는 이름

03. 함수

04. 주석

05. 형식 맞추기

06. 객체와 자료 구조

07. 오류 처리

08. 경계

09. 단위테스트

10. 클래스

11. 시스템

12. 창발성

13. 동시성

14. 점진적인 개선

15. Junit 들여다보기

16. SerialDate 리펙터링

17. 냄새와 휴리스틱


  • No labels