자바 API 디자인 자바 프레임워크 아키텍트가 알려주는 API 설계 이론과 실제

자바 API 디자인 자바 프레임워크 아키텍트가 알려주는 API 설계 이론과 실제

$35.00
저자

야로슬라프툴라흐

저자야로슬라프툴라흐(JaroslavTulach)는나중에썬에인수된넷빈즈의설립자이자초기아키텍트다.넷빈즈의기반이되는기술을만든사람으로서지금도넷빈즈오픈소스프로젝트의성공에기여하는모든프로?그래머들의설계실력을향상시키는방법을모색하는프로젝트를진행하고있다.

목차

목차
[1부]이론과정당성
▣1장:현대소프트웨어구축의예술
___합리주의,경험주의,무지
___지금까지의소프트웨어의진화
___거대한기반요소
___아름다움,진리,우아함
___더무지해져라!
▣2장:API를만드는이유
___분산개발
___애플리케이션모듈화
___비선형적인버전관리
___중요한것은의사소통이다
___경험적프로그래밍
___첫번째버전은늘쉽다
▣3장:훌륭한API를결정하는요소
___메서드와필드시그너처
___파일과파일의내용
___환경변수와명령줄옵션
___API로서의텍스트메시지
___프로토콜
___동작방식
___I18N지원과L10N메시지
___넓은의미의API
___API의품질을검사하는법
▣4장:시시각각변하는표적
___첫번째버전은결코완벽하지않다
___하위호환성
___유스케이스지향의중요성
___API리뷰
___API의생명주기
___점진적향상
[2부]실제설계
▣5장:필요이상으로노출하지마라
___메서드가필드보다낫다
___생성자보다팩터리가낫다
___모든것을final로만들어라
___어울리지않는곳에설정자메서드를넣지마라
___프렌드코드에서만접근하는것을허용하라
___객체를만든이에게더많은권한을부여하라
___깊은계층구조를노출하지마라
▣6장:구현이아닌인터페이스를대상으로코드를작성하라
___메서드나필드제거하기
___클래스나인터페이스를제거하거나추가하기
___기존계층구조에인터페이스나클래스집어넣기
___메서드나필드추가하기
___자바인터페이스와클래스비교
___외유내강
___메서드를추가하길좋아하는사람들의천국
___추상클래스는유용한가?
___매개변수증가를위한대비
___인터페이스대클래스
▣7장:모듈화아키텍처를사용하라
___모듈화설계의유형
___상호컴포넌트룩업과통신
___확장점작성하기
___순환의존성의필요성
___Lookup은어디에나있다
___Lookup의남용
▣8장:클라이언트와제공자를위한API를분리하라
___C와자바로API/SPI표현하기
___API진화는SPI진화와다르다
___Writer의자바1.4와자바1.5사이의진화
___API를적절히나눠라
▣9장:테스트용이성을염두에둬라
___API와테스트
___명세의쇠퇴
___좋은도구는API를더사용하기쉽게만든다
___테스트호환성도구
▣10장:다른API와협동하기
___다른API를사용하는것을조심하라
___추상화누출
___API의일관성강제하기
___위임과합성
___API를잘못사용하지않게하라
___자바빈리스너패턴을남용하지마라
▣11장:API의런타임측면
___고치기여정
___신뢰성과무지
___동기화와교착상태
___재진입성호출대비
___메모리관리
▣12장:선언형프로그래밍
___객체를불변적으로만들어라
___불변적인동작방식
___문서의호환성
[3부]일상생활
▣13장:해로운것으로여겨지는극단적인조언
___API는아름다워야한다
___API는정확해야한다
___API는단순해야한다
___API는성능이좋아야한다
___API는100퍼센트호환성을갖춰야만한다
___API는대칭적이어야한다
▣14장:API설계의역설
___API이중사고
___보이지않는일
___안정적인API를약속하는두려움극복하기
___유지보수비용최소화하기
▣15장:API우주의진화
___망가진라이브러리되살리기
___의식적업그레이드대무의식적업그레이드
___대체동작방식
___비슷한API의연계와공존
▣16장:협동작업
___코드를커밋하기전에검토절차밟기
___개발자들이API를문서화하도록설득하기
___빅브라더는잠들지않는다
___API패치수락하기
▣17장:게임을활용한API설계실력향상
___개요
___1일차
___2일차
___3일차:평가의날
___여러분도해보시길!
▣18장:확장가능한비지터패턴사례연구
___추상클래스
___진화준비
___기본탐색
___명확한버전정의
___비단조적진화
___인터페이스를사용하는자료구조
___클라이언트비지터와제공자비지터
___삼중디스패치
___비지터를위한행복한결말
___편의성문법
▣19장:시한부절차
___명세버전의중요성
___모듈의존성의중요성
___제거된부분을영원히놔둬야하는가?
___모놀리식API나누기

출판사 서평

출판사서평
자바프레임워크아키텍트에게서배우는API설계의이론과실제!
거의모든프로그램이협업을통해만들어지는오늘날에는프로그래머가곧API설계자이기도하다.적절히설계된API는소프트웨어의수명과진화와도직결되기때문에API설계지식은중요도가점점더커지고있으며,사내프로그램뿐만이아니라공개라이브러리나프레임워크처럼불특정다수를대상으로코드를작성하는개발자라면API설계지식이더욱더필요하다.이책에는넷빈즈프로젝트의아키텍트가10년넘게API를설계,개발,유지보수하면서겪은경험...
자바프레임워크아키텍트에게서배우는API설계의이론과실제!
거의모든프로그램이협업을통해만들어지는오늘날에는프로그래머가곧API설계자이기도하다.적절히설계된API는소프트웨어의수명과진화와도직결되기때문에API설계지식은중요도가점점더커지고있으며,사내프로그램뿐만이아니라공개라이브러리나프레임워크처럼불특정다수를대상으로코드를작성하는개발자라면API설계지식이더욱더필요하다.이책에는넷빈즈프로젝트의아키텍트가10년넘게API를설계,개발,유지보수하면서겪은경험이고스란히들어있어API설계지식이필요한모든프로그래머와아키텍트에게크게도움될것이다.
★이책에서다루는내용★
◎API란무엇인가?
◎API를제작하는이유와시점
◎훌륭한API를설계하기위한기초이론
◎모든프로그래밍언어(특히객체지향언어)에적용가능한API설계패턴
◎API최적화와테스트
독자분들께,
서점에서이책을손에들고“이책을사야할까?”라고자문하고계신다면저는이렇게답하겠습니다.만약여러분이작성한코드가다른사람들이작성한코드를컴파일하는데필요하다면여러분은API의세계에들어갈준비가된것입니다.그리고이책은여러분이API의세계를탐험하도록도와줄것입니다.
하지만이책은“5번의손쉬운강의로API설계를가르쳐드리지”않습니다.이책은“단3일만에”읽을수있는책이아닙니다!빠르게읽을수있는지침서를찾고계신다면아마이책은아닐것입니다.한편으로API설계에관한깊이있는지식,즉API설계에대한“어떻게”뿐만아니라“왜”에도관심이있다면이책을책장에다시내려놓으시기전에저를잠깐소개해드리겠습니다.
제이름은야로슬라프툴라흐이고잘알려진IDE이자자바언어로작성된최초의모듈화데스크톱애플리케이션프레임워크이기도한넷빈즈플랫폼프로젝트의설립자이자초기아키텍트입니다.이책은지난10년간넷빈즈API의설계와유지보수,그리고이러한지식을다른나머지개발자들에게전달하는동안수집해온노트를토대로합니다.이책은넷빈즈연구소의핵심부에서나온연구일지로서각종문제및그러한문제에대해저희가이해한내용,저희가선택한해법,그리고그러한해법을적용한이후에내린결론을기술하고있습니다.저희의지식이넷빈즈를대상으로일할때수집된것들이긴하지만대부분의소프트웨어프로젝트에유용할정도로일반적입니다.
적절한API설계지식은21세기소프트웨어를성공적으로제작하는데필수입니다.드넓은API설계의세계를탐험하는동안이책이여러분의안내서가되길바랍니다.