본문 바로가기
독서

[005:프로그래밍, 프로그램, 데이터] 훌륭한 프로그래머 되는 법 _ 정리 및 서평(작성중)

by code cleaner 2020. 1. 28.
반응형

_Part 1 you.write(code);


_1장 코드에 신경 쓰기

 좋은  프로그래밍 코드란?

  필자는 좋은 코드에 대해 네 가지로 정리하고 있다. 

  첫 번째는 올바르게 작동하는 훌륭한 코드

  두 번째는 의도가 드러나는 코드 

  세 번째는 유지 보수가 가능한 코드

  네 번째는 정확한 코드

 

  일하다보면 암호화 코드, 들여쓰기 안 된 코드 등 가독성을 떨어뜨리는 코드들이 많다

  길이가 너무 길어도 좋지 않지만, 적당하게 너무 축약하지 않아도 좋은 것 같다.

  그리고 무엇보다 모듈별로 나눠서 짜는 것이 향후 유지 보수 및 이해하기 좋은 것 같다.


_2장 정돈된 코드 유지하기

정돈된 코드 유지하기를 보니 '코드 작성 규칙'이 있으면 사실 이런 고민을 하지 않아도 될 것 같은데, 한국은 아직 이러한 문화가 잘 성립되지 않은 거 같다. 대부분 SI에서 만들기 때문이 아닌가 싶다.

 

 정돈된 코드란?

 1, 레이아웃(들여쓰기, 연산자 주변 여백, 대문자화, 괄호 위지, Tab OR white Space)이 규칙적으로 일관성있게 짠 코드

 2. 명명(변수, 함수, 메서드, 자료형, 네임스페이스, 패키지 등)이 반복되지 않고 명확하고 정확한 코드(관용어법 준수)


_3장 코드 적게 쓰기

 

코드는 맹백하고 간결하게 반복되는 것은 함수로 만들기


_4장 코드 줄여 개선하기

죽은 코드(제멋대로 개발한 코드, 불가피한 결과물_더는 사용하지 않는 자료형/기존 제품의 기능들이 거의 제거되지 않는 경우 등)를 정리하자

단! 코드 정리와 기능 개발을 병행하지 말자


_5장 코드베이스의 망령

코드 베이스의 망령 질문

1. 예전의 코드가 지금은 어떻게 보이는가? 그다지 나빠 보이지 않는다면, 최근에 새로운 뭔가를 배우지 않았음을 뜻하는 것인가?

2. 주요 언어로 얼마나 오랫동안 일했는가? 그사이 언어 표준이나 내장 라이브러리가 얼마나 많이 바뀌었는가? 당신이 코드를 작성하는 스타일을 형성할 때 어떤 언어 기능에 영향을 받았는가?

3. 무의식적으로 사용하는 일반적인 관례의 일부에 대해 생각해보자, 이들이 오류가 발생하지 않도록 하는데 무엇이 도움이 되는가?


_6장 경로 탐색하기

case1 코드를 잘 알고 있는 사람이 있다면 도움을 요청하라

case2 코드를 혼자 독파해야한다면

        check1 : 버전 관리 시스템에서 다운로드 가능한가?

        check2 : 코드 빌드가 용이한가? (전체 시스템 빌드가 가능한지, 단위별로 진행해야 하는지)

        check3 : 테스트(단위 테스트, 통합테스트, 종단간테스트)를 확인하자, 각 테스트를 포함하는 코드는 일반적으로 적절히 분류되고 심사숙고되며 제대로 연결되어 있는가?

        check4 : 파일구조, 즉 (코드) 디렉터리 구조가 잘되어 있는가

        check5 : 프로젝트 문서가 실제 존재하고 잘 작성되었는지, 최신 정보를 반영하는지 확인

        check6 : 정적분석(코드의 건전도를 확인하고 코드 간의 관계 파악하기),

                    Doxygen과 같은 도구들을 통해 유용한 클래스 다이어그램과 제어 흐름 다이어그램을 얻을 수 있음

        check7 : 최초의 프로젝트 요구사항 문서나 기능 명세서 있는지 확인

        check8 : 언어의 표준 라이브러리를 충분히 사용하고 있는지 확인

        check9 : 코드 품질(주석의 양이나 품질, 죽은 코드가 많은지, 코드를 코멘트 처리하여 작동 안 되게 하였는지 등) 둘러보기

        check10 : 구조 파악하기

 

* Do 코드 실행 

코드를 배우는 가장 좋은 방법은 수정해보는 것이다. 그런 다음 실수를 통해 배우라

 

테스트 하기

README.txt 파일 확인 및 업데이트 하기


_7장 똥통에서 뒹굴기


_8장 오류 무시하지 않기


_9장 예상하지 못한 것을 예상하기


_10장 버그 사냥하기


_11장 테스트하기


_12장 복잡도 다루기


_13장 두 개의 시스템에 대한 이야기


_Part 2 연습을 통해 완벽해진다


_14장 소프트웨어 개발이란
_15장 규칙 가지고 놀기
_16장 간결하게 하기
_17장 머리 쓰기
_18장 변하지 않는 것은 없다
_19장 코드 재사용 사례
_20장 효과적인 버전 관리
_21장 골키퍼 있다고 골 안 들어가랴
_22장 동결된 코드의 신기한 사례
_23장 제발 저를 배포해주세요


_Part 3 개인적인 일로 받아들이기


_24장 배움을 사랑하며 살기
_25장 테스트 기반 개발자
_26장 도전 즐기기
_27장 부진 피하기
_28장 윤리적인 프로그래머
_29장 언어에 대한 사랑
_30장 프로그래머의 자세



_Part 4 일 끝내기

_31장 ‘더 열심히’보다는 ‘더 현명하게’
_32장 끝나야 끝나는 것
_33장 교훈 얻기


_Part 5 사람의 일

_34장 사람의 힘
_35장 생각이 중요하다
_36장 말하기!
_37장 선언문
_38장 코드 찬가
_39장 태도가 핵심이다
_부록 : 국내 개발자 이야기



_A 더 나은 프로그래머 되는 법(염재현)
_B 개발자의 삶에 해볼 만한 네 가지 TODO (이철혁)
_C 훌륭한 개발자가 되는 법 (조대협)
_D 일일 커밋: 프로그래밍 생활백서 (진유림)

반응형