이펙티브 코틀린 2

이펙티브 코틀린 3장 재사용성

3장 재사용성 아이템 19 knowledge(의도적인 정보)를 반복하여 사용하지 말라 프로젝트에서 이미 있던 코드를 복사해서 붙여넣고 있다면, 무언가 잘못된 것이다. 프로젝트를 진행할 때 정의한 모든 것이 knowledge 이다. 해당 정보의 종류는 다양한데, 알고리즘의 작동방식, UI의 형태, 우리가 원하는 결과등이 모두 의도적인 정보이며, knowledge이다. 대표적인 knowledge의 두 가지 Logic Common algorithm 모든 것은 변화하고, 변화에 대응을 할 수 있어야 한다. knowledge의 반복은 프로젝트의 확장성을 막고, 쉽게 깨지게 만든다. 그렇기 때문에 knowledge 반복을 줄여주는 도구의 사용이 필요하다. 그런 도구의 예로는 ORM, DAO를 활용 하는 방법이 될 ..

이펙티브 코틀린 1장 안정성

1장 안정성 아이템 1: 가변성을 제한하라 코틀린은 모듈로 프로그램을 설계 한다. 모듈은 클래스, 객체 ,함수, 타입 별칭, Top-level property 등 다양한 요소로 구성 된다. 아래의 코드를 살펴 봅니다. class NumberSum { suspend fun sumNumber() { var num = 0 coroutineScope { for (i in 1..1000) { launch { delay(10) num += 1 } } } println(num) // 실행 마다 다른 값이 나온다. } } 코루틴은 경량 쓰레드라고 생각하면 되고, 위의 코드에서는 쓰레드 간의 동기화가 되어 있지 않기 때문에, 값을 마음 대로 변경 하게 되는 이슈가 있고, 우선 num 변수 자체가 가변적인 변수라 이를 불..

1
반응형