предисловие
-
Здесь нет правил и квадрата, неважно, на какой платформе, какой код написан. Каждый язык программирования имеет свои собственные стандарты синтаксиса, спецификации кода и постоянно обновляется и совершенствуется для оптимизации производительности языка.
-
Как говорится
代码不规范,维护两行泪
, это правда. Мы должны следовать им, чтобы код не выглядел грязным.
Style linter for Dart
Говорят, что это спецификация Flutter, но на самом деле это спецификация кода языка Dart (linter).
Официально называетсяStyle linter for Dart
, мы можем получить доступLint Rulesдля просмотра всех спецификаций.
Давайте просто нажмем на один и посмотрим, напримерsort_constructors_first.
- DO
sort constructor declarations before other members.
Конструкции класса должны располагаться перед другими членами.
- GOOD:
abstract class Animation<T> {
const Animation(this.value);
double value;
void addListener(VoidCallback listener);
}
- BAD:
abstract class Visitor {
double value;
visitSomething(Something s);
Visitor();
}
Очень понятно, вы можете увидеть, что это значит, посмотрев на пример. Но с таким количеством правил, должны ли мы все их соблюдать? Что нам нужно соблюдать?
analysis_options.yaml
На самом деле команда Flutter уже сформулировала его. Для разработчиков, какую ветку вы используете?Flutter SDKДля разработки вы можете напрямую использовать указанные правила в текущей ветке.
Скопируйте analysis_options.yaml из SDK в свой проект и приготовьтесь принять санкции, Сан Нянь!
упражняться
Он сказал так много наших собственных, чтобы попробовать, как операция (по) как (ребенок). После копирования analysis_options.yaml в приведенный ниже проект должен /Android Studio запрашивать в Dart Analysis ниже следующие ПРОБЛЕМЫ VSCode ниже.
ремонт
- Отремонтируйте, как было предложено
По ссылке правила подсказки (синяя часть картинки выше, она станет синей после наведения мышки)Shift + 点击
, он перейдет к подробному объяснению каждого правила, о котором мы говорили ранее, и вы сможете исправить его в соответствии с примером.
- Быстрые исправления с VSCode
где запрашивается код нарушенияCtrl + .
, Автоматически всплывают быстрые исправления, такие как цифра для увеличенияconst
логотип. Разве это не намного быстрее, гм, это не должно занять много времени для нескольких тысяч.
Анализ файла analysis_options.yaml
Ниже приведено основное содержимое файла
analyzer:
strong-mode:
implicit-casts: false
implicit-dynamic: false
enable-experiment:
- extension-methods
errors:
# treat missing required parameters as a warning (not a hint)
missing_required_param: warning
# treat missing returns as a warning (not a hint)
missing_return: warning
# allow having TODOs in the code
todo: ignore
# Ignore analyzer hints for updating pubspecs when using Future or
# Stream and not importing dart:async
# Please see https://github.com/flutter/flutter/pull/24528 for details.
sdk_version_async_exported_from_core: ignore
# exclude:
# - "bin/cache/**"
# # the following two are relative to the stocks example and the flutter package respectively
# # see https://github.com/dart-lang/sdk/issues/28463
# - "lib/i18n/messages_*.dart"
# - "lib/src/http/**"
linter:
rules:
# these rules are documented on and in the same order as
# the Dart Lint rules page to make maintenance easier
# https://github.com/dart-lang/linter/blob/master/example/all.yaml
- always_declare_return_types
неявное преобразование
strong-mode:
# 隐式转换
implicit-casts: false
# 隐式dynamic
implicit-dynamic: false
Это та часть, которую мы запрашиваем чаще всего, потому что этот параметр обычно установлен по умолчанию. Особенно при преобразовании json в режим дротика,int i= map['test'];
Такой код не редкость. К счастью,JsonToDartИнструмент уже полностью поддерживает последнюю версию analysis_options.yaml.
ошибка
Эта часть разделена на группу ошибок.Конечно, вы можете уменьшить ее или игнорировать напрямую следующими способами.
errors:
# treat missing required parameters as a warning (not a hint)
missing_required_param: warning
# treat missing returns as a warning (not a hint)
missing_return: warning
# allow having TODOs in the code
todo: ignore
# Ignore analyzer hints for updating pubspecs when using Future or
# Stream and not importing dart:async
# Please see https://github.com/flutter/flutter/pull/24528 for details.
sdk_version_async_exported_from_core: ignore
намекать
В этой части представлены все виды советов, которые вы можете добавлять или удалять в соответствии с вашими потребностями.
linter:
rules:
# these rules are documented on and in the same order as
# the Dart Lint rules page to make maintenance easier
# https://github.com/dart-lang/linter/blob/master/example/all.yaml
- always_declare_return_types
exclude
Вы можете удалить файл или папку из-под ограничения правила следующими способами.
exclude:
- "bin/cache/**"
# the following two are relative to the stocks example and the flutter package respectively
# see https://github.com/dart-lang/sdk/issues/28463
- "lib/i18n/messages_*.dart"
- "lib/src/http/**"
ignore
В коде Dart вы можете снять ограничения определенных правил следующими способами.
- игнорировать определенные правила в указанном месте
ты можешь использовать этоignore:
способ удалить предупреждения для определенных правил в указанном месте, несколько правил начинаются с,
разделены.
// ignore: prefer_const_constructors
Text('save network image to photo')
- игнорировать определенные правила для всего файла
ты можешь использовать этоignore_for_file:
способ удалить предупреждения для определенных правил во всем файле, несколько правил начинаются с,
разделены.
// ignore_for_file: prefer_const_constructors
Text('save network image to photo')
метод расширения
Откройте метод расширения, добавьте следующие настройки и убедитесь, что Dart SDK больше или равен 2.6.0.
enable-experiment:
- extension-methods
environment:
sdk: ">=2.6.0 <3.0.0"
flutter analyze
Заказ
В дополнение к подсказкам, которые мы видим в VSCode/Android Studio, Flutter предоставляет специальныеanalyze
Заказ.
выполнить в терминалеflutter analyze -h
, вы можете увидеть следующие советы. Вы можете видеть, что большинство команд включены по умолчанию.
Далее набираем в терминалеflutter analyze --watch
, который анализируется каждый раз при изменении файла. Ниже приведены некоторые подсказки и ошибки.
Эпилог
На самом деле, эта статья возникла потому, что друг в группе спросил
怎么规范自己的Flutter代码呢?
Я видел это и потерял одинanalysis_options.yamlФайл был отправлен в группу, и группа сразу взорвалась.
you see see you, one by one
Тысячи советов, тысячи ошибок...
Хотя это и закодировано, но если вы узнаете это, вы узнаете это в своем сердце, хахахаха.
Наконец-то присоединяйтесьFlutter CandiesСделайте маленькие конфеты вместе. (Группа QQ: 181398081)
Кстати, есть еще сексуальный секретарь группы, онлайн-руководство (убеждение) гид (уход на пенсию) О!
надевать в последнюю очередьFlutter CandiesВся семейная бочка, очень ароматная!