이미 소장하고 있다면 판매해 보세요.
1부: 좋은 코드
1장 안정성 아이템 1: 가변성을 제한하라 아이템 2: 변수의 스코프를 최소화하라 아이템 3: 최대한 플랫폼 타입을 사용하지 말라 아이템 4: inferred 타입으로 리턴하지 말라 아이템 5: 예외를 활용해 코드에 제한을 걸어라 아이템 6: 사용자 정의 오류보다는 표준 오류를 사용하라 아이템 7: 결과 부족이 발생할 경우 null과 Failure를 사용하라 아이템 8: 적절하게 null을 처리하라 아이템 9: use를 사용하여 리소스를 닫아라 아이템 10: 단위 테스트를 만들어라 2장 가독성 아이템 11: 가독성을 목표로 설계하라 아이템 12: 연산자 오버로드를 할 때는 의미에 맞게 사용하라 아이템 13: Unit?을 리턴하지 말라 아이템 14: 변수 타입이 명확하게 보이지 않는 경우 확실하게 지정하라 아이템 15: 리시버를 명시적으로 참조하라 아이템 16: 프로퍼티는 동작이 아니라 상태를 나타내야 한다 아이템 17: 이름 있는 아규먼트를 사용하라 아이템 18: 코딩 컨벤션 지켜라 2부: 코드 설계 3장 재사용성 아이템 19: knowledge를 반복하지 말라 아이템 20: 일반적인 알고리즘을 반복해서 구현하지 말라 아이템 21: 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라 아이템 22: 일반적인 알고리즘을 구현할 때 제네릭을 사용하라 아이템 23: 타입 파라미터의 섀도잉을 피하라 아이템 24: 제네렉 타입과 variance 한정자를 활용하라 아이템 25: 공통 모듈을 추출해서 여러 플랫폼에서 재사용하라 4장 추상화 설계 아이템 26: 함수 내부의 추상화 레벨을 통일하라 아이템 27: 변화로부터 코드를 보호하려면 추상화를 사용하라 아이템 28: API 안정성을 확인하라 아이템 29: 외부 API를 랩(wrap)해서 사용하라 아이템 30: 요소의 가시성을 최소화하라 아이템 31: 문서로 규약을 정의하라 아이템 32: 추상화 규약을 지켜라 5장 객체 생성 아이템 33: 생성자 대신 팩토리 함수를 사용하라 아이템 34: 기본 생성자에 이름 있는 옵션 아규먼트를 사용하라 아이템 35: 복잡한 객체를 생성하기 위한 DSL을 만들어라 6장: 클래스 설계 아이템 36: 상속보다는 컴포지션을 사용하라 아이템 37: 데이터 집합 표현에 data 한정자를 사용하라 아이템 38: 연산 또는 액션을 전달할 때 인터페이스 대신 함수 타입을 사용하라 아이템 39: 태그 클래스보다는 클래스 계층을 사용하라 아이템 40: equals의 규약을 지켜라 아이템 41: hashCode의 규약을 지켜라 아이템 42: compareTo의 규약을 지켜라 아이템 43: API의 필수적이지 않는 부분을 확장 함수로 추출하라 아이템 44: 멤버 확장 함수의 사용을 피하라 3부: 효율성 7장 비용 줄이기 아이템 45: 불필요한 객체 생성을 피하라 아이템 46: 함수 타입 파라미터를 갖는 함수에 inline 한정자를 붙여라 아이템 47: 인라인 클래스의 사용을 고려하라 아이템 48: 더 이상 사용하지 않는 객체의 레퍼런스를 제거하라 8장 효율적인 컬렉션 처리 아이템 49: 하나 이상의 처리 단계를 가진 경우에는 시퀀스를 사용하라 아이템 50: 컬렉션 처리 단계 수를 제한하라 아이템 51: 성능이 중요한 부분에는 기본 자료형 배열을 사용하라 아이템 52: mutable 컬렉션 사용을 고려하라 용어 |
Marcin Moskala
윤인성의 다른 상품
‘1부: 좋은 코드’에서는 좋은 품질의 코드를 만들기 위한 일반적인 규칙을 설명합니다. 이 부에서는 프로젝트의 규모와 상관없이 모든 코틀린 개발자를 위한 내용을 설명합니다. 안정성에 관한 아이템부터 시작해서 가독성까지 설명합니다. 프로그래밍에서 가장 중요한 것은 안정적으로 정확한 결과를 만들어 내는 것이라고 생각합니다. 따라서 첫 번째 장에서 안정성을 다룹니다. 또한 코드를 읽는 것은 컴파일러만을 위한 것이 아닙니다. 많은 프로그래머가 코드를 읽습니다. 또한 혼자 코드를 작성해도, 코드를 쉽게 읽을 수 있어야 합니다. 따라서 두 번째 장에서 가독성을 다룹니다.
‘2부: 코드 설계’에서는 다른 개발자와 함께 프로젝트를 진행하거나, 라이브러리를 만들 때 활용할 수 있는 내용을 다룹니다. 바로 컨벤션(convention)과 규약(contract)입니다. 물론 컨벤션과 규약은 결국 가독성과 안정성이 반영된 결과입니다. 따라서 추상화와 함께 코드 품질을 향상시킬 수 있는 내용을 추가로 다루는 부라고 생각하면 됩니다. 추가적으로 이 부에서는 코드를 확장시키는 방법과 관련된 내용을 다룹니다. 프로젝트는 오랜 시간 동안 계속해서 발전하게 됩니다. 따라서 대규모 프로젝트를 만들 때 활용할 수 있는 유 용한 사례들에 대해서 설명합니다. ‘3부: 효율성’에서는 코드의 효율성과 관련된 부입니다. 대부분의 아이템에서 개발 시간과 가독성을 따로 희생하지 않고 사용할 수 있는 효율성 관련 사례를 다룹니다. 다만 일반적으로 코드의 효율성은 고성능 애플리케이션, 라이브러리, 많은 사람이 사용하는 애플리케이션에서 유용하므로, 이와 관련된 내용도 다룹니다. |