Flutter

Dart 언어 컨벤션 알아보기

봄석 2019. 11. 24. 23:32

Dart 언어 컨벤션 알아보기

https://dart.dev/guides/language/effective-dart

 

Effective Dart

Best practices for building consistent, maintainable, efficient Dart libraries.

dart.dev

다트 공식 문서의 Effective Dart를 한국어로 해석한 글입니다.

 

 

목차

Table of Contents

 

 

 

개요

지난 몇 년 동안, 우리는 많은 Dart 코드를 작성했으며 잘 작동하는 것과 그렇지 않은 것에 대해 많은 것을 배웠습니다. 

일관되고 강력하며 빠른 코드도 작성할 수 있도록 이를 공유하고 있습니다. 두 가지 중요한 주제가 있습니다.

1. 일관성을 유지하십시오.

형식화 및 케이스와 관련하여 어떤 것이 더 나은지에 대한 논쟁은 주관적이고 해결할 수 없습니다.

우리가 아는 것은 일관성 이 객관적으로 도움 이 된다는 것입니다.
두 개의 코드가 다르게 보이면 의미 가 다르기 때문 입니다. 

약간의 코드가 눈에 띄고 눈을 사로 잡을 때 유용한 이유가 있어야 합니다.

2. 간단하게

다트는 친숙하게 설계되었으므로 C, Java, JavaScript 및 기타 언어와 동일한 문장과 표현을 상속받습니다. 

그러나 우리는 그 언어가 제공하는 것을 개선할 여지가 많기 때문에 Dart를 만들었습니다. 

문자열 보간에서 형식 초기화에 이르기까지 다양한 기능을 추가하여 의도를 보다 간단하고 쉽게 표현할 수 있습니다.

어떤 말을 하는 방법이 여러 가지라면 일반적으로 가장 간결한 방법을 선택해야 합니다. 

이것은 전체 프로그램을 한 줄로 짜서 골프를 직접 코딩해야 한다고 말하는 것이 아닙니다. 

목표는 조밀하지 않고 경제적인 코드입니다.

 

 

 

컨벤션을 읽는 방법

각 가이드는 몇 개의 섹션으로 나뉩니다. 섹션에는 지침 목록이 포함되어 있습니다. 각 지침은 다음 단어 중 하나로 시작됩니다.

- DO : 지침은 항상 따라야 하는 지침을 설명합니다. 그들로부터 벗어나야 할 정당한 이유는 거의 없을 것입니다.
- DON'T : 거의 좋은 아이디어는 아닙니다. 역사적으로 수하물이 적기 때문에 다른 언어만큼 많은 언어가 없기를 바랍니다.
- PREFER : 선호도가 갈릴 수 있는 지침입니다. 꼭 따라야 하는 건 아니지만 가이드라인을 무시할 때 모든 의미를 이해해야 합니다.
- AVOID : 피해야 하는 지침입니다. 하지 말아야 할 일이지만 드문 경우가 좋은 이유가 있을 수 있습니다.
- CONSIDER : 이지 침은 상황, 전례 및 자신의 취향에 따라 따르거나 원하지 않는 관행입니다.

 

 

어휘

지침을 간략하게 유지하기 위해, 우리는 다른 다트 구성을 지칭하기 위해 몇 가지 짧은 용어를 사용합니다.

  • 라이브러리 멤버는 최상위 필드 게터 세터 또는 함수입니다. 기본적으로 유형이 아닌 최상위 레벨의 모든 것.
  • 클래스 멤버는  클래스 내에 선언 된 생성자 필드 게터 세터, 함수 또는 연산자이다. 클래스 멤버는 인스턴스 또는 정적, 추상 또는 구체적 일 수 있습니다.
  • 멤버는 라이브러리 멤버  또는 클래스 멤버 중 하나입니다.
  • 변수는 일반적으로 사용되는 경우, 최상위 변수, 매개 변수 및 로컬 변수를 의미합니다. 정적 또는 인스턴스 필드는 포함되지 않습니다.
  • 타입(Type)은 클래스, 타입 정의, 또는 열거 : 명명 된 형식 선언이다.
  • 속성(Property) 대략 "필드와 같은"이름의 구문입니다.

 

 

모든 규칙 요약

스타일(Style)

식별자(identifiers)

발주(Ordering)

서식(Formatting)

 

 

도큐먼트 (Document)

코멘트(Comments)

문서 의견

Markdown

writing

 

 

 

Usage 사용법

Libraries

Booleans

Strings

Collections

Functions

Parameters

Variables

Members

Constructors

Error handling

Aysnchrony(비동기)

 

 

 

디자인

naming

Libraries

Class and mixin

생성자(constructors)

Member

Types

Parameters

Equality