flutter_lints 또는 lints를 최대한 사용해서 적용할 예정
2.0버전부터는 기본적으로 flutter_lints 포함되어 있으나
커뮤니티에서는 lints가 인기가 많다고 함.
추가적인 설정은 analysis_options.yaml 파일에
https://ychcom.tistory.com/entry/%EB%A6%B0%ED%84%B0-%EB%A3%B0%EB%93%A4-Linter-rules 추가 해서 사용
명명 규칙
Dart에서는 3가지 네이밍 규칙이 있다 .
1. UpperCamelCase : 단어별 첫글자는 대문자로
2. lowerCamelCase : 첫단어를 제외하고, 단어별 첫글자는 대문자로, 약어도 동일하게 적용
3. lowercase_with_underscores : 다 소문자 단어별 사이에는 '_' 넣는다.
UpperCamelCase
class , enunm type, typedef, type parameter 들 일 경우
class SliderMenu { ... }
class HttpRequest { ... }
typedef Predicate<T> = bool Function(T value);
metadata annotation 인 경우
class Foo {
const Foo([Object? arg]);
}
@Foo(anArg)
class A { ... }
@Foo()
class B { ... }
만약 annotation 에 파라미터가 없으면 lowerCamelCase 명명
const foo = Foo();
@foo
class C { ... }
extensions 메서드의 타입들
extension MyFancyList<T> on List<T> { ... }
extension SmartIterable<T> on Iterable<T> { ... }
lowerCamelCase
대부분의 변수들 클래스 멤버, 상위 레벨 정의, 변수들, 파라미터 등등
var count = 3;
HttpRequest httpRequest;
void align(bool clearItems) {
// ...
}
상수 변수
const pi = 3.14;
const defaultTimeout = 1000;
final urlScheme = RegExp('^([a-z]+):');
class Dice {
static final numberGenerator = Random();
}
lowercase_with_underscores
라이브러리, 패키지, 디렉토리, 소스파일 등
library peg_parser.source_scanner;
import 'file_system.dart';
import 'slider_menu.dart';
prefix를 사용한 import
import 'dart:math' as math;
import 'package:angular_components/angular_components.dart' as angular_components;
import 'package:js/js.dart' as js;
두가지 이상의 약어 또는 줄임말은 대문자로 표시
class HttpConnection {}
class DBIOPort {}
class TVVcr {}
class MrRogers {}
var httpRequest = ...
var uiHandler = ...
var userId = ...
Id id;
사용하지 않는 callback parameter '_', '__' 로 표시
만약 여러개의 사용하지 않는 callback parameter 쓸경우
충돌을 피하기 위해 __, ___ 사용한다.
private 아닌것은 '_ ' 사용하지 않기
futureOfVoid.then((_) {
print('Operation complete.');
});
순서
1. "dart:" import는 다른 import 우선 배치
import 'dart:async';
import 'dart:html';
import 'package:bar/bar.dart';
import 'package:foo/foo.dart'
2. "package" import는 상대적 import 우선 배치
import 'package:bar/bar.dart';
import 'package:foo/foo.dart';
import 'util.dart';
3. 특별한 export는 모든 import 와 나누어서 배치
import 'src/error.dart';
import 'src/foo_bar.dart';
export 'src/error.dart';
4. 알파벳 순서별로 정렬
import 'package:bar/bar.dart';
import 'package:foo/foo.dart';
import 'foo.dart';
import 'foo/foo.dart';
'모바일 APP > Flutter' 카테고리의 다른 글
린터 룰들 Linter rules (0) | 2022.03.31 |
---|