코드 작성 가이드 : 현직 LINE 개발자가 알려주는 읽기 쉽고 코드 리뷰하기 좋은

코드 작성 가이드 : 현직 LINE 개발자가 알려주는 읽기 쉽고 코드 리뷰하기 좋은

$24.00
저자

이시가와무네토시

저자:이시가와무네토시
주식회사LINE의LINEPlatformDevelopment2센터,MobileExperience개발실의DeveloperExperience개발팀소속이다.시니어소프트웨어엔지니어로,LINE의안드로이드버전을개발하고있다.또한,LINE의소스코드가독성향상을위해리팩터링과코드리뷰를자체적으로수행하며,가독성과관련된개발문화와인프라를구축하고있다.교육과채용프로세스등을개선하기도한다.

역자:정기욱
이책의저자와같은팀동료이며LINE의iOS버전을개발하고있다.대학진학시유아교육과를가고싶었으나현실을직시하고컴퓨터공학을선택하였고,현재는인생에서가장탁월한선택이었음을실감하며살고있다.오랫동안iOS개발과관련된일을하고있다는사실에자부심을가지고있다.주된업무인iOS빌드최적화외에도분산빌드,지속적통합,자동화도구,수명주기관리등동료개발자들에게실질적인도움을주는일에적극적이다.

목차


1장가독성높은코드를작성하는법
1.1생산성개선
__1.1.1개발규모와생산성의관계
__1.1.2가독성을높이기위한환경과평가체계
1.2가독성높은코드를작성하기위한요건
__1.2.1가독성과관련된지표
__1.2.2가독성을높이기위해주의할점
1.3대표적인프로그래밍원칙
__1.3.1보이스카우트원칙
__1.3.2YAGNI
__1.3.3KISS
__1.3.4단일책임의원칙
__1.3.5섣부른최적화는만악의근원
1.4정리

2장네이밍
2.1네이밍에사용하는영문법
__2.1.1명사또는명사구
__2.1.2명령문
__2.1.3그외의영문법
__2.1.4문법을무시하고네이밍하는이유
2.2이름에서알수있는내용
__2.2.1예:인수이름
__2.2.2예:함수이름
__2.2.3예외:추상메서드
2.3단어선택
__2.3.1예:모호하지않은단어선택하기
__2.3.2혼란스러운약어피하기
__2.3.3단위나실체를나타내는단어추가하기
__2.3.4긍정적인단어사용하기
2.4언어,플랫폼,코딩규약
2.5정리

3장주석
3.1주석의종류와목적
3.2문서화주석
__3.2.1안티패턴
__3.2.2문서화주석의구성
__3.2.3문서화주석의요약
__3.2.4문서화주석의상세
3.3비형식주석
__3.3.1규모가큰코드분할하기
__3.3.2직관적이지않은코드설명하기
3.4정리

4장상태
4.1가변값이더적합한경우
4.2변수간의관계,직교
__4.2.1직교의정의
__4.2.2방법:함수로대체하기
__4.2.3방법:합타입으로대체하기
4.3상태전이의설계
__4.3.1불변성
__4.3.2멱등성
__4.3.3비순환
4.4정리

5장함수
5.1함수의책임
__5.1.1함수분할의기본방침
__5.1.2명령과쿼리의분리
5.2함수의흐름
__5.2.1정의기반프로그래밍
__5.2.2조기반환
__5.2.3조작대상에따른분할
5.3정리

6장의존관계
6.1의존관계의예
6.2의존의강도:결합도
__6.2.1내용결합
__6.2.2공통결합과외부결합
__6.2.3제어결합
__6.2.4스탬프결합과데이터결합
__6.2.5메시지결합
6.3의존방향
__6.3.1호출자→호출대상
__6.3.2구체적→추상적
__6.3.3복잡/가변→단순/불변
6.4의존의중복
__6.4.1연결된의존관계
__6.4.2의존대상집합의중복
6.5의존의명시성
__6.5.1안티패턴1:과도한추상화
__6.5.2안티패턴2:암묵적인값의범위
6.6정리

7장코드리뷰
7.1리뷰이의주의사항1:리뷰하기쉬운풀리퀘스트만들기
__7.1.1풀리퀘스트의목적명시하기
__7.1.2풀리퀘스트분할하기
__7.1.3커밋구조화하기
7.2리뷰이의주의사항2:리뷰코멘트적용하기
__7.2.1잘못된의견이나질문이나온원인찾기
__7.2.2제안의도파악하기
__7.2.3다른부분에적용하기
7.3리뷰어의주의사항1:리뷰어의원칙
__7.3.1요청받은리뷰를방치하지않기
__7.3.2문제있는풀리퀘스트거부하기
__7.3.3기한을지나치게의식하지않기
__7.3.4‘제안’이아닌‘의견’제시하기
7.4리뷰어의주의사항2:코멘트내용
__7.4.1사례분석
7.5정리

부록이책을읽는데필요한코틀린문법

출판사 서평

스파게티코드를만들것인가?
읽기쉽고수정하기쉬운코드를만들것인가?
코드네이밍부터코드리뷰까지,가독성을높이는코드작성법

"도대체무엇을하는코드인지알수가없다","사양을변경해야하는데어디부터손을대야하는걸까"개발자라면이런경험을해본적있을것이다.분명복잡한기능을구현하는코드가아닌데이해하기가어렵고,곳곳에함정이있어서조금만변경해도쉽게망가지는코드와마주하거나,코드를작성할당시에는내코드가완벽하고아름답다고생각했지만몇달후에다시봤을때는"내가왜이런코드를썼지?"라고자책하기도한다.그래서우리는'코드가독성'을놓치지말아야한다.

이책은저자가LINE에서근무하면서대규모개발프로젝트의코드리뷰와리팩터링을해본경험을바탕으로코드가독성과코드리뷰에대해설명한다.먼저읽기쉬운코드가필요한이유와프로그래밍원칙에대해이야기하고,코드네이밍방법,주석작성법,클래스내부구조인상태와함수를설명하고,클래스간의의존관계도설명한다.또한,팀내코드리뷰진행방법과가이드도제시한다.책전체에걸쳐실제코틀린코드를예로설명하기때문에이론으로배운내용을명확하게이해할수있다.

책속에서

오늘만코딩하는사람이아니라면누구나코드의품질을고민합니다.소프트웨어개발은단순히제품을구현하는것에만그치지않고문제의원인을찾고개선해나가며,지속가능성을고려한최적의결과물을만들어나가는과정이기때문이죠.이책은높은품질의코드를쓰기위한원칙을배움과동시에그원칙을언제어디에적용할것인지를선택하는데도움을줄것입니다.특히마지막장에서다루는코드리뷰는이책의내용을활용하기에완벽한기회입니다.

IT가세상의중심이된만큼,우리는소프트웨어개발자가짊어져야할책임에대해서도고민해야합니다.코드는그존재만으로도누군가가유지보수해야할부채가되므로,자신의코드가누군가에게잘못이해되어제품의결함을유발하거나생산성을저해하는요소가되지않도록노력해야합니다.‘그냥돌아가기만하면되는코드’,‘쓰기에간편한코드’가아닌,그코드를접하게될모든개발자가쉽게개선하고확장할수있도록‘읽는사람을배려한코드’를작성해야합니다.
---「역자의말」중에서