[5분만에 책 한권 읽기] 훌륭한 프로그래머 되는법 ( Becomming a Better Programmer ) - Pete Goodliffe

|
훌륭한 프로그래머 되는 법
국내도서
저자 : 피트 구들리프 / 최원재,강전희,안재덕,남윤화역
출판 : 한빛미디어 2015.12.10
상세보기




훌륭한 프로그래머 되는법 ( Becomming a Better Programmer ) - Pete Goodliffe



+이책은 한글로 번역한 "훌륭한 프로그래머가 되는법 "가 되기보다는 원서 그대로 "더 나은 프로그래머가 되는법"이 더 맞는 해석같다. 책에서는 코드베이스를 개선하는 방법부터 협업,자기개발등을 다룬다. 모두다 좋은 말들이지만 이 역시 실천하지 않으면 전혀 소용이 없다. 프로그래머에 관련된 여러책들을 읽다보면 저자가 주장하고 제시하는 내용들은 비슷하다. 자기 개발서 처럼 좋은 이야기들로 가득차지만 결국은 실천의 문제다.


아래의 내용들은 책에서 핵심적인 내용만 간추렸다. 책을 읽을 시간이 없거나 책에 어떤내용이 있었는지 확인하는 용도로 다시 읽어보면 도움이 될것이다.




[핵심적인 내용]


1.어떤 코딩 환경에서든 단지 작동하는 것처럼 보이는 코딩은 거부해야 한다. 프로그래머는 올바르게 작동하는 훌륭한 코드를 짜도록 노력해야한다.


2.글을 쓰듯이 코드를 작성하라. 코드를 장, 문단, 문장 단위로 자르라.


3. 관용적 이름을 선호하자. 언어에서 주로 쓰이는 대문자화 규약을 따르라


4.중복 코드는 특히 치명적이다. 하나의 버그를 고쳐도 다른 곳에 32개의 똑같은 작은 버그들이 남아 있는다.


5.코드 일부를 복사하지 말자. 공통 함수에 모두 넣자. 다른 부분은 매개 변수를 사용하라


6.주석으로 코드제거한것을 삭제하라


7.원자적 커밋을 수행하라. 한꺼번에 많은 범위를 커밋하기보다는, 작고 빈번하게 극미한 체크인을 생성한다. 


8.명명규칙,코딩관례,유닛테스트,페어 프로그래밍,코드 리뷰

  -명명규칙: 프로젝트나 팀에서 사용하는 변수,클래스,함수등의 이름에 규칙을 정하라

  -코딩관례: 일관된 규칙을 만들어서 준수하라

  -유닛테스트: 유닛테스트를 하라

  -페어 프로그래밍: 두명이 하나의 프로그램을 작성하는 기술로 생산성을 향상시킬수 있다.

  -코드리뷰:소스를 검증하라


9.XP(eXtreme Programming)의 원칙 YAGNI, Don't do anything if You Aren't Going to Need it : 필요하지 않으면 아무것도 하지말라. 필요해질 때까지 설계상의 결정을 미루라. 요구사항을 파악하기 전까지 구조 설계를 하지말라. 추측하지 말라.   =>철칙을 안지키면 야근한다


10.기술부채(technical debt) 소프트웨어를 빠르게 출시하기 위한 결정(편법이나 우회하기 등으로 출시 시간을 단축하기 위한 일련의 결정들)을 내리는 것은 부채를 지는것과 같다. 나중에 업데이트 해야한다. 때로는 잘 다룬다면 강력한 무기가 될 수가 있다. 


11.콘웨이 법칙 : 코드 구조는 개발팀의 구조를 따라감. 


12.코드 재사용의 방법


     -복사 붙여넣기를 하지 최대한 자제하고 공통함수와 공통 라이브러리에 넣는다.

     -웹에서 복사할때 충분한 테스트와 검토가 필요하다. 

     -좋은 라이브러리를 구매하라.


13.자신이 인지하고 있지 못하는 알지 못하는것을 탐구하라. 새로운 도메인에 대해서도 관심을 갖고 책을 읽자


14.간단하게 설명할 수 없다면, 충분히 잘 이해하지 못했다는 증거이다 - 아인슈타인


15.안전지대(삶이 편한하고 일정은 짧으며 예측 가능한 수준인 상황), 안전지대는 유해한 영역이다. 편한 삶이란 학습하지 않고, 더이상 발전이 없다는 것이다. 안전지대 있다는것은 정체되었다는 것이다. 안전지대는 퇴보로 가는 지름길이다.


16.모든 언어에서 최고로 숙련되기란 어렵다. 가능성이 보이는 두 개 정도 언어에 재능을 쏟으라


17.수많은 반복을 거쳐야 하는 작업을 자동화해서 시간을 줄여라.


18.주요 선언문에 대해서 알아두고 자신만의 의견을 가져라



[부록내용중에서...]


1.MOOC를 활용해서 지식을 습득해라. 과제가 부여되고 토론도 이루어지므로 깊은 개념이나 이론을 공부하는데 큰 도움이 된다.


2.한달에 5천원 정도면 리눅스 서버를 클라우드에 구축할 수 있다. www.digitalocean.com


3.일일 커밋 


4.TIL (Today I Learned) 


5.Codewars사이트에서 문제를 풀고 다른사람의 답과 비교해서 정리한다.

    

And