사이먼 하러 외 |길벗
상품정보
발행일 :2020-07-30 |264
이 도서의 분야
IT/베스트셀러 > 컴퓨터/IT도서
도서소개
내 코드, 정말 괜찮을까?
전문가의 코드와 비교하면서 배운다
코딩 스킬을 개선하는 가장 좋은 방법은 전문가의 코드를 읽는 것이다. 오픈 소스 코드를 읽으면서 이해하면 좋지만, 너무 방대하고 스스로 맥락을 찾는 게 어려울 수 있다. 그럴 땐 이 책처럼 현장에서 자주 발견되는 문제 유형 70가지와 해법을 비교하면서 자신의 코드에서 개선할 점을 찾는 것이 좋다.
적절한 코드를 작성하는 법을 배운다
너무 과하지 않으면서 간결하게, 군더더기 없이, 딱 필요한 만큼만 있는 코드를 작성하는 방법을 배워보자. BufferedReader를 br로 선언하는가? buffered로 선언하는가? 왜 reader로 선언해야 한다고 해법을 제시할까? 이 책은 변수명을 어떻게 짓는가, 주석은 어떻게 써야 하는가부터 시작해서 단계별로 주제를 심화해가면서 적절한 코드란 무엇인지 알려준다.
훌륭한 코드란 기능을 구현하는 것 이상이다
별거 아닌 것 같은 디테일 하나가 코드를 더 멋지게 만든다. 가독성이 좋아지고, 유지보수성이 좋아지고, 변경에 유연하고, 강건한 코드, 더 빠른 코드를 작성할 수 있게 해준다. 작지만 중요한 디테일을 꼼꼼하게 지적하고, 더 나은 프로그래머가 되는 여정을 보여줄 것이다.
[책 속의 문구]
명심하세요! 바보는 도구를 사용해도 바보입니다!
[예제 코드]
o 길벗 깃허브 저장소: https://github.com/gilbutITbook/007025
o 원서 소스 코드: https://pragprog.com/titles/javacomp/source_code
[관련도서]
유지보수 가능한 코딩의 기술 자바편
자바로 배우는 리팩토링 입문
대상 독자
자바 프로그래밍 초보자나 중급자가 대상입니다. 또한 프로그래머 과정을 이제 막 시작한 개발자를 가르치는 선생님에게 유용한 수업 자료입니다. 이 책은 자원 처리나 함수형 프로그래밍, 테스트에 대해 더 최신인 자바 8 문법에 기반해 팁과 비결을 제공합니다.
이 책은 자바 기본 문법을 학습하고 조건문과 루프로 간단한 프로그램을 만들 수 있고 객체 지향 프로그래밍의 기초를 알고 난 후에 읽어야 합니다. FizzBuzz(준비되었나요? 자기 평가를 해보세요 참고, 015쪽) 같은 간단한 문제를 컴파일하고 실행하고 해결하는 코드 정도는 작성할 수 있어야 합니다. 간단한 알고리즘을 구현할 수 있어야 하고 리스트나 큐, 스택, 맵 같은 기본적인 자료
구조를 사용하는 방법도 알아야 합니다. 또한 이 모든 것이 당연히 즐거워야 하고요!
복잡한 문제를 풀었을 때 큰 만족감을 느낀다면 시작이 매우 좋은 겁니다. 하지만 배울 내용이 산더미라는 사실도 물론 알고 있겠죠. 기술을 적용해보았는데 자바 프로그래밍이나 일반적인 프로그래밍 경험이 부족하다는 사실을 인정해야 한다면 이 책을 통해 최대효과를 거둘 수 있을 것입니다. 아마도 클린 코드와 숙련된 개발자가 적용하는 모범 사례에 대한 감을 아직 키우지 못했다는 뜻일 테니까요.
이제 바뀔 때가 되었습니다!
물론 [이펙티브 자바](인사이트, 2018)와 [클린 코드](인사이트, 2013)처럼 자바의 코드 품질과 가독성, 유지보수성, 클린 코드를 다룬 고급 책을 이미 접했다면 이미 한 발 멀리 나아갔다고 할 수 있습니다. 그래도 이 책에서 새로운 내용을 더 찾을 수 있을 것이고 꼭 그럴 거예요.
이 책으로 클린 코드 가르치기
기업에서 신입사원에게 프로그래밍을 가르치는 선임 개발자라면 이 책에서 다룰 모범 사례를 익히 알고 있겠죠. 물론 업무에 따라 동의하지 못하는 사례도 있을 것입니다. 그래도 이 책을 통해 더 편하게 주니어 개발자를 훈련시킬 수 있습니다. 참조용으로 활용하면 됩니다. 수습사원이 작성한 코드에서 문제를 발견하면 이 책에서 해당하는 절을 알려주세요. 수습사원은 당신이 언뜻 내비친 문제에 대해 간단한 예제와 함께 문제 해법에 도달하는 방법을 읽을 수 있습니다. 일일이 설명을 쓰지 않아도 되니 시간을 아낄 수 있습니다.
2~3학년까지 자바를 배운 학생 대상으로 교수법 개념을 개발해온 우리의 경험이 학계에서 가르치는 데 유용할 것입니다. 이 책은 대학 학부생을 대상으로 15년 이상 코드 품질을 고급 과정으로 가르쳐온 지식의 산물입니다. 자바를 밑바닥부터 가르치지는 못하더라도 기본적으로 프로그래밍 과제를 포함하는 어떤 과목과도 어울립니다. 특히 이 책은 클린 코드 교육 워크숍 논문에서 설명했듯이 학생 코드를 평가할 때 참고하기 좋습니다.
도서목차
1장 우선 정리부터
__1.1 쓸모없는 비교 피하기
__1.2 부정 피하기
__1.3 불 표현식을 직접 반환
__1.4 불 표현식 간소화
__1.5 조건문에서 NullPointerException 피하기
__1.6 스위치 실패 피하기
__1.7 항상 괄호 사용하기
__1.8 코드 대칭 이루기
__1.9 1장에서 배운 내용
2장 코드 스타일 레벨 업
__2.1 매직 넘버를 상수로 대체
__2.2 정수 상수 대신 열거형
__2.3 For 루프 대신 For-Each
__2.4 순회하며 컬렉션 수정하지 않기
__2.5 순회하며 계산 집약적 연산하지 않기
__2.6 새 줄로 그루핑
__2.7 이어붙이기 대신 서식화
__2.8 직접 만들지 말고 자바 API 사용하기
__2.9 2장에서 배운 내용
3장 슬기롭게 주석 사용하기
__3.1 지나치게 많은 주석 없애기
__3.2 주석 처리된 코드 제거
__3.3 주석을 상수로 대체
__3.4 주석을 유틸리티 메서드로 대체
__3.5 구현 결정 설명하기
__3.6 예제로 설명하기
__3.7 패키지를 JavaDoc으로 구조화하기
__3.8 클래스와 인터페이스를 JavaDoc으로 구조화하기
__3.9 메서드를 JavaDoc으로 구조화하기
__3.10 생성자를 JavaDoc으로 구조화하기
__3.11 3장에서 배운 내용
4장 올바르게 명명하기
__4.1 자바 명명 규칙 사용하기
__4.2 프레임워크에는 Getter/Setter 규칙 적용
__4.3 한 글자로 명명하지 않기
__4.4 축약 쓰지 않기
__4.5 무의미한 용어 쓰지 않기
__4.6 도메인 용어 사용하기
__4.7 4장에서 배운 내용
5장 문제 발생에 대비하기
__5.1 빠른 실패
__5.2 항상 가장 구체적인 예외 잡기
__5.3 메시지로 원인 설명
__5.4 원인 사슬 깨지 않기
__5.5 변수로 원인 노출
__5.6 타입 변환 전에 항상 타입 검증하기
__5.7 항상 자원 닫기
__5.8 항상 다수 자원 닫기
__5.9 빈 catch 블록 설명하기
__5.10 5장에서 배운 내용
6장 올바르게 드러내기
__6.1 Given-When-Then으로 테스트 구조화
__6.2 의미 있는 어서션 사용하기
__6.3 실제 값보다 기대 값을 먼저 보이기
__6.4 합당한 허용값 사용하기
__6.5 예외 처리는 JUnit에 맡기기
__6.6 테스트 설명하기
__6.7 독립형 테스트 사용하기
__6.8 테스트 매개변수화
__6.9 경계 케이스 다루기
__6.10 6장에서 배운 내용
7장 객체 디자인
__7.1 불 매개변수로 메서드 분할
__7.2 옵션 매개변수로 메서드 분할
__7.3 구체 타입보다 추상 타입
__7.4 가변 상태보다 불변 상태 사용하기
__7.5 상태와 동작 결합하기
__7.6 참조 누수 피하기
__7.7 널 반환하지 않기
__7.8 7장에서 배운 내용
8장 데이터 흐름
__8.1 익명 클래스 대신 람다 사용하기
__8.2 명령형 방식 대신 함수형
__8.3 람다 대신 메서드 참조
__8.4 부수 효과 피하기
__8.5 복잡한 스트림 종료 시 컬렉트 사용하기
__8.6 스트림 내 예외 피하기
__8.7 널 대신 옵셔널
__8.8 선택 필드나 매개변수 피하기
__8.9 옵셔널을 스트림으로 사용하기
__8.10 8장에서 배운 내용
9장 실전 준비
__9.1 정적 코드 분석 도구
__9.2 팀 내 자바 포맷 통일
__9.3 빌드 자동화
__9.4 지속적 통합
__9.5 생산 준비와 납품
__9.6 콘솔 출력 대신 로깅
__9.7 다중 스레드 코드 최소화 및 독립
__9.8 고급 동시 실행 추상화 사용하기
__9.9 프로그램 속도 향상
__9.10 틀린 가정 알기
__9.11 9장에서 배운 내용
해시태그
#자바 #코딩의 #기술
회원리뷰 (0)
▶
배송/교환/반품안내▶