안녕하세요. 도미닉입니다.
이번주 화요일에 렛츠스위프트에 처음으로 참여해봤습니다.
그에 대한 리뷰를 작성해보겠습니다.
Let’swift
첫번째 발표
레이니스트에 박보영님께서 발표해주셨습니다.
RxSwift 에서 Combine 으로 바꾸는 내용들에 대해서 간략하게 설명해주셨습니다.
RxSwift 와 Combine 둘 다 관심가는 주제라서 재미있게 들었습니다.
두번째 발표
라인비즈플러스에 백성욱님께서 발표해주셨습니다.
그래픽 쪽으로 공부를 많이 하신 분이였습니다.
그래픽과 에니메이션에 대해서 심도깊은 이야기를 해주셨습니다.
아래는 말씀해주신 내용들입니다.
UIBezierPath
그라데이션을 주려면 CAGradiention Layer 를 사용해야한다.
Location 은 첫번재 칼라의 위치이다.
세번째 발표
야놀자에 강승철님께서 발표해주셨습니다.
아래는 말씀해주신 내용들입니다.
CADisplayLink
Looper
보고 있는데 버튼이 움직이면 기분 나쁨
로그를 찍을 때 section 3 부터 찍힘(DI팀이 좋아한다) -> 안보이는 영역에 있었을 때 문제
Render 에서 전체가 다 fetch 된 다음에 다 보여주게 할 수 있다. (한번에 여러개가 보여지면 랙이 발생함, section1이 보여질 수 있음에도 불구하고 기다려야한다)
워크샵 첫번째 시간
점심 시간 이후에 워크샵 발표를 들었습니다.
라인비즈플러스에 최완복님께서 발표해주셨습니다.
아래는 말씀해주신 내용을 메모한 것입니다.
좋은 코드란
- Readability 가 좋다
- Solid 원칙을 잘 지켰다.
함자(Functor) :
값(Value)을 담은 Context로 되어있고, map function 을 지원하는 것
map은 내용만 변경할 수 있었다.
flatMap 은 컨테이너도 변경할 수 있다.
모나드
값(Value)을 담은 Context로 되어있고, flatMap function 을 지원하는 것
로빈 포플스톤의 일급 객체에 대한 정의
워크샵 두번째 시간
코드스쿼드에 JK 께서 발표해주셨습니다.
아래는 말씀해주신 내용을 메모한 것입니다.
의도를 명확하게 하라
같은 메소드 내에 추상화 수준을 맞춰라
SOLID
SRP - Actor 들이 사용하는 것을 기준으로 책임을 나눠라
OCP - 확장에는 열려있고 변경에는 닫혀있는..
LSP - 상속 관계를 만든다 확장을 해야할 것 같을 때는 프로토콜을 만들고 그 프로토콜을 채택한 여러 것들을 추가한다.
ISP - 인터페이스 분리 원칙
DIP - 의존성 역전의 원칙, 의존성을 setter 로 넣어주는 방법도 있다.
GRASP 패턴
코드 리뷰
Private 을 먼저 구성(get, set 만드는 것은 지양) - 그래야 연관된 작업은 이 객체 안에서 처리하게 됨 (안그러면 어디서 데이터를 바꾸는지 다 찾아야함)
하드 코딩 제거(“|”, 0, 1 등)
프로토콜의 이름은 형용사(able 등)
출력할 때 제일 정확한 데이터 포멧을 넘겨주는게 좋음(사다리는 Bool)
다형성이 분기처리를 하도록 짜라
If ~
Retune
Return
이런 방식이 아니라 두개의 객체를 만들어서 다형성으로 짜라
구조적 프로그래밍
Goto 구문 없이 반복문으로 제어 흐름에 대한 직접적인 전환
- 발표 피피티 참고
Creator 패턴
- 발표자료 참고
메소드를 호출한다고 하지 않고 operation 을 통해 메소드 호출
그 객체가 가지고 있는 메소드를 호출한다고 하지 않고 메시지를 보낸다고 한다.
점으로 두번 이상 눌러서 들어가지마라
정리
렛츠스위프트에 처음으로 참여해봤습니다.
1년에 한 번 열리는 큰 행사라서 그런지 스케일이 꽤나 컸습니다.
자극도 받고 좋은 시간 보냈습니다.
이런 큰 컨퍼런스를 열어주신 JK 와 스텝 분들께 감사드립니다.
읽어주셔서 감사합니다.