JunnyLang Blog
Ctrlk
  • 👻JUNNYLAND BLOG
  • JVM
    • ☕JAVA
    • 🔮KOTLIN
    • 🤖JVM
    • 🆙Testing
    • 📚Books
      • 📕Modern Java in Action
      • 📗Kotlin in Action
      • 📗자바 병렬 프로그래밍
      • 📗코틀린으로 배우는 함수형 프로그래밍
      • 📘Effective Kotlin
        • 가변성을 제한하라
        • 변수의 스코프를 최소화하라
        • 최대한 플랫폼 타입을 사용하지 마라
        • inferred 타입으로 리턴하지 말라
        • 예외를 활용해 코드에 제한을 걸어라
        • 사용자 정의 오류보다는 표준 오류를 사용하라
        • 결과 부족이 발생할 경우 null과 failure를 사용하라
        • 적절하게 null을 처리하라
        • use를 사용하여 리소스를 닫아라
        • 단위 테스트를 만들어라
        • 가독성을 목표로 설계하라
        • 연산자 오버로드를 할 때는 의미에 맞게 사용하라
        • Unit?을 리턴하지 말라
        • 변수 타입이 명확하지 않은 경우 확실하게 지정하라
        • 리시버를 명시적으로 참조하라
        • 프로퍼티는 동작이 아니라 상태를 나타내야 한다.
        • 이름 있는 아규먼트를 사용하라
        • 코딩 컨벤션을 지켜라
        • knowledge를 반복하여 사용하지 말라
        • 일반적인 알고리즘을 반복해서 구현하지 말라
        • 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라
        • 일반적인 알고리즘 구현 시 제네릭을 써라
        • 타입 파라미터의 섀도잉을 피하라
        • 제네릭 타입과 variance 한정자를 활용하라
        • 공통 모듈을 추출해서 여러 플랫폼에서 재사용하라
        • 함수 내부의 추상화 레벨을 통일하라
        • 변화로부터 코드를 보호하려면 추상화를 사용하라
        • API 안정성을 확보하라
        • 외부 API를 wrap해서 사용하라
        • 요소의 가시성을 최소화하라
        • 문서로 규약을 정의하라
        • 추상화 규약을 지켜라
        • 생성자 대신 팩토리 함수를 사용하라
        • 기본 생성자에 이름 있는 옵션 아규먼트를 사용하라
        • 복잡한 객체를 생성하기 위한 DSL을 정의하라
        • 상속보다는 컴포지션을 사용하라
        • 데이터 집합 표현에 data 한정자를 사용하라
        • 연산 또는 액션을 전달할 때는 인터페이스 대신 함수 타입을 사용하라
        • 태그 클래스보다는 클래스 계층을 사용하라
        • equals의 규약을 지켜라
        • hashCode의 규약을 지켜라
        • compareTo의 규약을 지켜라
        • 필수적이지 않은 부분을 확장 함수로 추출
        • 불필요한 객체 생성을 피하라
        • 함수 타입 파라미터를 갖는 함수에 inline 한정자를 붙여라
        • 인라인 클래스의 사용을 고려하라
        • 더 이상 사용하지 않는 객체의 레퍼런스를 제거하라
        • 하나 이상의 처리 단계를 가진 경우 시퀀스를 써라
        • 컬렉션 처리 단계 수를 제한하라
        • 성능이 중요한 부분에는 기본 자료형 배열을 사용하라
        • mutable 컬렉션 사용을 고려하라
      • 📗Java bible
      • 📕Optimizing java
      • 📙Java Performance Fundamentals
      • 📘JVM 밑바닥부터 파헤치기
      • 📕자바 성능 튜닝
      • 📗코틀린 동시성 프로그래밍
      • 📕Unit Testing
  • GO
    • 📚Books
  • Spring
    • AI
    • 🌫️Data
    • ☁️Cloud
    • 🗝️Core
    • 🚪GateWay
    • ⁉️Testing
    • 🪙WebFlux
    • 🥟Integration
    • 📚Books
  • DATA
    • 📊GraphQL
    • 📩KAFKA
    • 🧮NOSQL
    • 🗒️RDB
    • 📚Books
  • INFRA
    • 📄LOGGER
    • 💾Storage
    • 🧩CI&CD
    • 🎛️LINUX
    • 🔀Load Balance
    • 🔩K8s
    • 🗯️GIT
    • 📚Books
  • Computer Science
    • 🔫Software Design
    • 🎀System Design
    • 🔒SECURITY
    • 🖇️Algorithm
    • ⛓️Data Structure
    • ⚙️Operating System
    • 🛠️Network
    • 🎁Architectural Patterns
    • 💡Design pattern
    • 📃Coding Test
    • 📚Books
  • FINTECH
    • AML ?
  • AI
    • Koog
    • Books
  • ETC
    • MATH
    • Rust
  • STUDY
    • Books
Powered by GitBook
On this page
  1. JVM
  2. 📚Books
  3. 📘Effective Kotlin

프로퍼티는 동작이 아니라 상태를 나타내야 한다.

Previous리시버를 명시적으로 참조하라Next이름 있는 아규먼트를 사용하라