307일차 - 가독성과 안전한 코드, also, with, let, run, apply, Room

2021. 11. 1. 17:55·아카이브/일기
반응형

집에 도착해서 밥먹고오니..
시간이 벌써 오후 9시다.
얼른 하고 자야한다.

현재...
Unrecognized Android Studio (or Android Support plugin for IntelliJ IDEA) version '202.7660.26.42.7486908', please retry with version 2020.3.1 or newer.

이러한 에러가 발생해서
안드로이드 스튜디오 업데이트 중이다..!

< 가독성과 안전한 코드를 위한 팁 >

1. 선언과 수행을 동시에 하자.
2. 정적 변수들은 따로 빼서 관리하자.
3. also, run, with, let, apply를 각각의 사용처에 맞게 사용하자.
4. Json 데이터는 Gson으로 제어하자.
5. 불변적인 것을 먼저 개발하자.


< run, let, apply, also, with >

각 스코프함수의 차이점은 람다 지원 여부와 리턴값이다.

[ run, let ]
마지막 데이터를 리턴한다.

[ apply, also ]
사용한 객체를 리턴한다.

[ run, apply ]
람다 지원이 안된다.

[ let, also ]
람다 지원이 가능하다.

[ with ]
값이 무조건 존재할 때, 사용한다.
람다 X 리턴값 X


< 각 스코프함수의 사용처>

[ apply ]
*1. Apply에서는 오로지 프로퍼티만 쓴다.

2. 수신 객체 람다 내부에서 수신 객체의 함수를 사용하지 않고, 수신 객체 자신을 다시 반환 하려는 경우에 apply를 사용한다.

3. 수신 객체 의 프로퍼티 만을 사용하는 대표적인 경우가 객체의 초기화 이며, 이곳에 apply 를 사용한다.

[ also ]
*1. 유효성 검사할 때, 사용하자.

2. 수신 객체 람다가 전달된 수신 객체를 전혀 사용 하지 않거나, 수신 객체의 속성을 변경하지 않고 사용하는 경우, also 를 사용한다.

3. also 는 apply 와 마찬가지로 수신 객체를 반환 하므로, 블록 함수가 다른 값을 반환 해야하는 경우에는 also를 사용할 수 없다.

4. 예를 들자면, 객체의 사이드 이팩트를 확인하거나
수신 객체의 프로퍼티에 데이터를 할당하기 전에 해당 데이터의 유효성을 검사 할 때 매우 유용하다.

[ let ]
*1. 지정된 값이 null 이 아닌 경우에 코드를 실행해야 하는 경우.

2. Nullable 객체를 다른 Nullable 객체로 변환하는 경우.

3. 단일 지역 변수의 범위를 제한 하는 경우.

[ with ]
*1. Non-nullable (Null 이 될수 없는) 수신 객체 이고 결과가 필요하지 않은 경우에만 with 를 사용한다.

[ run ]
1. 어떤 값을 계산할 필요가 있거나 여러개의 지역 변수의 범위를 제한하려면 run을 사용한다.

2. 매개 변수로 전달된 명시적 수신객체를
암시적 수신 객체로 변환 할때 run을 사용할수 있다.


< Room을 활용한 앱 개발 >
맨 위의 팁에 맞춰서
유저 생성, 조회, 수정, 삭제, 검색 기능을
개발해보려고한다.

[ 개발 순서 ]
1. 데이터 구조체 작성
2. XML 작성
3. DAO 구문 작성
4. 컨트롤러 작성

현재 퇴근중이라 집가서 해볼예정이다.


현재 시간 0시 33분...
집에서 계속 개발하고 있었는데
아직 끝나지는 않았다.
블로그에 코드 리뷰하면서 적기에는
시간이 부족한 상태여서
이번에 개발하는 연습 앱을 완성하면
코드리뷰하면서
글을 올릴 예정이다.

반응형

'아카이브 > 일기' 카테고리의 다른 글

311일차 - 현재 상황 및 React, Firebase 연동 계획  (0) 2021.11.05
310일차 - 볼만한 유튜브 강의 영상  (0) 2021.11.04
309일차 - 완전성 & 목적성 & 독립성, Fragment New Instance, MVVM, LiveData, 옵저버, 스코프 함수, 싱글톤, XML 호환성 등  (0) 2021.11.03
308일차 - 현재 상황 및 공부 예정 목록  (0) 2021.11.02
306일차 - 간단한 조사(AI, DL 설명 및 사용 기술)  (0) 2021.10.31
파이썬과 친해지기 - 4일차 (Stack, Heap, Malloc, Free)  (0) 2021.10.31
305일차 - Stack, Heap, Malloc, Free  (0) 2021.10.30
Kotlin - Room을 활용한 간단한 게시판 CRUD 앱 개발하기  (0) 2021.10.29
'아카이브/일기' 카테고리의 다른 글
  • 309일차 - 완전성 & 목적성 & 독립성, Fragment New Instance, MVVM, LiveData, 옵저버, 스코프 함수, 싱글톤, XML 호환성 등
  • 308일차 - 현재 상황 및 공부 예정 목록
  • 306일차 - 간단한 조사(AI, DL 설명 및 사용 기술)
  • 파이썬과 친해지기 - 4일차 (Stack, Heap, Malloc, Free)
권퓨터
권퓨터
만드는 걸 좋아하는 개발자의 기록. 코드든 글이든, 일단 만들어 봅니다.
  • 권퓨터
    권퓨터: Kwonputer
    권퓨터
  • 티스토리 홈 관리자
  • 전체
    오늘
    어제
    • 분류 전체보기 (559)
      • 개발 (56)
        • 프로젝트 (5)
        • 모바일 (44)
        • 프론트엔드 (0)
        • 백엔드 (2)
        • 인프라 (0)
        • AI · 머신러닝 (4)
      • IT · 테크 (10)
        • 기술 트렌드 (3)
        • 도구 · 생산성 (1)
        • 제품 리뷰 · 추천 (0)
        • 마케팅 · 수익화 (6)
      • 자기계발 (7)
        • 공부법 · 언어 (0)
        • 취업 · 커리어 (7)
      • 아카이브 (486)
        • 일기 (480)
        • 취미 (6)
  • 블로그 메뉴

    • 홈
  • 링크

    • 블로그 이전
  • 공지사항

    • 서브 블로그 => https://kwonputer.com/
  • 인기 글

  • 태그

    https://github.com/kwongeneral/kortfolio.git
    AWS CDK
    https://www.kwonputer.shop/
    Clean Architecture
    서버리스 아키텍처
    내러티브 게임
    flutter
    python
    TypeScript
    FACEBOOK광고
    파이썬
    dynamodb
    클린 아키텍처
    상태관리
    flutter 개발자
    OpenAI GPT
    python 기초
    kotlin
    next.js
    riverpod
    다국어 블로그
    flutter 면접 질문
    콘텐츠자동화
    Prompt Engineering
    ai 게임 개발
    injectable
    Single Table Design
    블로그수익화
    AI블로그
    aws lambda
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
권퓨터
307일차 - 가독성과 안전한 코드, also, with, let, run, apply, Room
상단으로

티스토리툴바