일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 클린소프트웨어
- 네이밍
- OOP
- CleanCode
- 협업
- Swfit
- Solid
- 개발
- 인터페이스
- POP
- fp
- 함수형프로그래밍
- 이름
- 클린코드
- 문법
- 고차함수
- 함수형패러다임
- 의존성
- interface
- SWIFT
- iOS프로그래밍
- 객체지향프로그래밍
- protocol
- IOS
- 부스트코스
- DesignPattern
- 아이폰프로그래밍
- 디자인패턴
- 의도
- 개발자
- Today
- Total
목록의존성 (2)
밤에 쓴 코드
클래스 클래스는 데이터와 연산으로 이루어진 코드 블럭이다. 깨끗한 클래스, 응집도높은 클래스에 대한 고민을 해보자 클래스는 작아야한다 클래스를 만들 때 첫번째 규칙은 크기이다. 클래스는 작아야한다. 하지만 얼마나 작아야 하는지가 중요하다. 여기서 말하는 크기는 물리적인 크기보다는 책임의 크기이다. 책임을 적게 가진다는 것을 어떻게 표현할 수 있을까? 클래스의 이름은 클래스의 책임을 표현한다. 이름에 드러나는 책임이 모호하거나, 많은 책임을 내포한다면, 여러 책임을 가진 클래스일 확률이 높다. 책임을 분리하는 것은 클래스가 변경될 수 있는 이유를 분리하는 것이고, 관심사를 분리하는 것이다. 응집도 클래스에는 인스턴스 변수가 많아서는 안된다. 또 메소드는 적어도 하나이상의 인스턴스 변수를 내부에서 사용해야한..
의미있는 이름 의도를 분명히 밝혀라 명확한 이름이 좋다 짐작하기 쉽게 함축성을 가진 코드는 의도를 숨긴 코드이다. 단순성과 함축성은 다르다. // 함축적 -> 무슨 일을 하는지 구체적으로 드러나지 않은 이름 func getList() -> [String] { } // 짐작하기 쉬운 이름 func getNameOfFriendsList()->[String]{ } 올바른 정보 유사한 개념은 유사한 표기법을 사용한다. func add(_ item:Int ){ // 배열에 추가하는 로직 } func append(_ item:Int ){ // 배열에 추가하는 로직 } 같은 기능을 수행하나 표기가 다른 건 잘못된 정보전달의 예 이다. 널리쓰이는 단어를 다른 의미로 사용하는 것도 옳지않다 func getFriendLi..