Effective Dart - Overview

EN·2024년 8월 19일

Flutter

목록 보기
1/2

글 쓴 이유

이제 회사에서 Flutter를 하게 되었다. Dart언어를 짜는 고유 스타일을 좀 배워봐야할 것 같아서 이 글을 쓴다. 그러던 중 Effective Dart에 대해서 알게되었다.

Effective Dart 핵심

Be consistent

형식이나 대소문자같은건 어느 것이 더 나은지에 대한 논쟁은 주관적이며 해결이 불가능하다.
그러니, 일관성이 객관적으로 도움이 된다!

Be brief

Dart는 굉장히 친숙한 디자인으로 되어있다. C, Java, JS 또는 다른 언어들의 특징을 굉장히 많이 차용했다.
다트를 만든 이유는 각 언어마다 개선할 점들이 있기 때문이다.

Effective Dart guide

Style Guide

코드의 레이아웃과 식별자 형식에 관한 규칙 제공!

Documentation Guide

주석 작성은 어떻게 할 것인지에 대한 지침.

Usage Guide

Dart언어의 기능을 어떻게 효과적으로 사용할지에 대한 방법을 가르쳐줌

Design Guide

라이브러리 API 설계에 대한 권장사항을 제시한다.

How to read the guides

DO - 100% 해라
DON`T - 100% 하지마라
PREFFER - 하는게 낫다
AVOID - 하지 않는 게 낫다
CONSIDER - 한 번 고려해봐

몇 개의 가이드라인에서는 예외도 적용이 되어있다.
Dart 린터가 이 룰에 대해서 가이드를 제시하기도 한다.

Glossary

라이브러리 멤버
최상위 필드, 게터, 세터 또는 함수를 의미함. 기본적으로 타입이 아닌 최상위에 있는 모든 것을 말함.

클래스 멤버
클래스 내부에 선언된 생성자, 필드, 게터랑 세터, 함수, 오퍼레이터

멤버
라이브러리 멤버랑 클래스 멤버를 말함

변수
최상위 변수, 매개변수, 지역변수
정적 변수나 인스턴스 필드는 포함하지 않음.

타입
이름이 지정된 타입 선언. class, typedef, enum

프로퍼티
최상위 변수, 게터, 세터, 필드를 의미함.

Summary

각 페이지마다 세부적인 사항들을 제시해주지만, 뭔가 사용할 것 같지 않으니
요약을 제공해준다.

Summary - Style

식별자

기본은 DO라고 생각하면 된다.

UpperCamelCase를 사용하여 지정하는 경우

타입과 확장

lowercase_with_underscores를 사용하여 지정하는 경우

패키지, 디렉터리, 소스 파일 이름, import접두사 이름

lowerCamelCase를 사용하여 지정하는 경우

상수(PREFER)
그리고 그 외의 다른 식별자 이름들

대문자로 시작하는 경우

약어나 두 글자보다 긴 약어.

_, __를 사용하는 경우

사용되지 않는 콜백 매개변수의 이름(PREFER)

접두사 문자는 사용하지 말것

defaultTimeOut(O), kDefaultTimeOut(X)

라이브러리 이름 명시적으로 사용하지 말것

library my_library; //X
@TestOn('browser')
library; //O

순서

다른 import보다 dart: import를 먼저 배치

상대적인 import보다 package: import를 먼저 배치

import 이후에는 별도의 섹션에서 export를 지정

섹션은 알파벳순으로 정렬

포맷팅

DO

코드 포맷에는 dart format을 사용
모든 흐름 제어 문에 중괄호를 사용

CONSIDER

포맷터에 더 적합하게 코드를 변경하는 것

AVOID

80자보다 긴 줄

Summary - Documentation

주석

주석은 문장처럼 포맷하라.
첫 단어는 대소문자 구분이 필요한 식별자가 아닌 경우 대문자로 시작하라. 그리고 마침표로 끝나라.

Doc 주석

DO

멤버와 타입을 문서화하기 위해 ///doc주석을 사용하세요.
doc 주석은 한 문장 요약으로 시작할것
doc 주석의 첫 문장을 별도의 단락으로 분리하세요.
주변 컨텍스트와의 중복 피하세요
속성의 getter와 setter 모두에 대해 문서화 적용하는 것.
매개변수, 반환 값, 예외를 설명하기 위해 문장 사용
메타데이터 주석 앞에 doc주석을 배치.

PREFER

공용 API에 대한 doc 주석 작성하기
함수랑 메소드 주석은 3인칭 동사로
부울이 아닌 변수나 속성 주석은 명사 구로 시작하는 것이 좋음.
부울 변수나 속성 주석은 "Whether"다음에 명사나 동명사 구로 시작하는것이 좋음.
라이브러리나 타입 주석은 명사 구로

CONSIDER

라이브러리 수준의 doc 주석을 작성
비공개 API에 대한 doc 주석을 작성

마크다운

마크다운 너무 쓰지마.

작성법

간결하게 작성하자.
약어와 두문자어를 사용하지 않는 것이 좋음. 그러나 분명한 경우는 제외.

--- 정리하다보니 이후에 사용하면서 업데이트 할 예정 ---

profile
iOS/JUJITSU

0개의 댓글