본문 바로가기

effective kotlin

아이템 2: 변수의 스코프를 최소화하라 상태를 정의할 때는 변수와 프로퍼티의 스코프를 최소화 하는것이 좋다. 프로퍼티 보다는 지역변수를 사용해라 최대한 좁은 스코프를 갖게 변수를 사용해라. 스코프를 좁게 만드는 가장 큰 이유는 프로그램을 추적하고 관리하기 쉽다. mutable 프로퍼티는 좁은 스코프에 걸쳐 있을 수록 변경 추적이 쉽다. 여러 프로퍼티를 한번에 설정 해야 하는 경우 구조 분해 선언을 사용해라 fun updateWeather(degrees: Int) { val (description, color) = when { degrees "cold" to Color.BLUE degrees "mild" to Color.YELLOW else -> "hot" to Color.RED } } 결론적으로 변수의 스코프가 넓으.. 더보기
아이템 1: 가변성을 제한하라 변경 가능한 상태를 적절히 관리하는게 어렵다. 프로그램 이해하기 어려움 코드의 실행을 추론하기 어렵다. 시점에 따라 값이 다르므로 어떤 값을 가진지 알아야 한다. 멀티스레드는 적절한 동기화가 필요하다. 변경이 일어나는 모든 부분에 충돌 가능 테스트 어렵다. 변경이 많으면 더 많은 조합을 테스트 해야 한다. 상태 변경시 다른 부분에 알려야 할 경우가 있다. → 정렬된 리스트에 요소 추가 코틀린에서의 가변성 제한 코틀린은 Immutable 객체를 만들거나, 프로퍼티를 변경 할 수 없게 막는게 쉽다. 읽기 전용 프로퍼티(val) 가변 컬렉션과 읽기 전용 컬렉션 구분하기 데이터 클래스의 copy 읽기 전용 프로퍼티 val val로 선언된 프로퍼티는 값(value)처럼 동작하며, 일반적으로 값이 변하지 않는다. .. 더보기
이펙티브 코틀린 1장 : 안정성 1부 좋은코드 1장 안정성 자바, 자바스크립트, C++ 대신 코틀린 활용 이유. → 코틀린의 안정성(safety) 오류가 덜 발생하는 코드 만들기 아이템 1: 가변성을 제한하라 아이템 2: 변수의 스코프를 최소화하라 더보기