2021-02-09(Tue)
항목 | 내용 |
학습 날짜 | 2021-02-09(화) |
학습 시간 | 11:00~24:00 |
학습 범위 및 주제 | Websocket, Rails Active Record, Backbone |
학습 목표 | Appearance view 구현을 완료한다. |
동료 학습 방법 | jujeong, sanam과 페어프로그래밍을 진행 |
상세 학습 내용
Rails 테크닉 한토막
Rails Active Record에서 여러 속성 조건으로 한번에 검색하기를 통해 Active Record에서 좀 더 간략하게 쿼리를 날릴 수 있음을 알게되어 써먹었다. 구체적으로 예를 들자면
위처럼 쓸데없이 복잡한 쿼리를 아래처럼 바꿀 수 있다는 것.
한편 where에는 해쉬를 넘길 수 있다. 덕분에 검색 조건을 아래처럼 줄여버릴 수 있다.
아래는 책 루비로 배우는 객체지향 디자인을 읽고 적은 간략한 메모다.
2장 단일 책임 원칙을 따르는 클래스 디자인하기
단일 책임 원칙은 왜 중요한가
한 개 이상의 책임이 있는 클래스는 재사용이 어렵기 때문이다. 이 클래스 속에서 여러 책임들은 서로 얽혀 있을 가능성이 높다. 때문에 쉽게 가져다 쓸 수 없다.
반면 단일 책임 클래스는 하나의 책임만 가지고 있기 때문에 쉽게 가져다 쓸 수 있는 코드(pluggable units)다.
클래스에 단일 책임만 있는지 어떻게 알 수 있을까
클래스는 단순해야한다는 말을 명심하자. 클래스는 최대한 작으면서도 유용한 것만 행해야 한다.
클래스의 책임을 한 문장으로 만들어보자 .이 때 '그리고'라는 단어가 포함된다면 이 클래스는 하나 이상의 책임을 가지고 있을 가능성이 높다. 만약 '또는' 이라는 단어를 사용한다면 클래스는 서로 연관되지도 않은 둘 이상의 책임을 가지고 있다는 뜻이다.
변화를 받아들일 수 있는 코드 작성하기
몇가지 방법이 있다.
데이터가 아니라 행동에 기반한 코드를 작성하자. 데이터에 직접 접근하지말고 필요한 getter/setter를 이용해서 접근하자
모든 곳에 단일 책임원칙을 강제하자
A 객체에서 책임을 분리하면서 분리된 책임을 가질 B 객체를 만들어야하는지 확신이 들지 않을 수 있다. 이 경우엔 block을 이용해서 선택을 유보할 수 있다.
학습 내용에 대한 개인적인 총평
이것저것 한게 많아도 하루 종일 코딩하고 나면 진이 빠져서 기록으로 남기기 어렵다. 특히나 오늘은 타 모듈의 PR을 Review하고 테스트하는데 시간을 대부분 활용했다보니 기록이 애매하다.
하루 종일 코딩하며 쌓이는 지식과 깨달음들을 좀 더 적극적으로 글로 남길 수 잇도록 노력해야지..
다음 학습 계획
Appearance view 구현완료
Last updated