По каким правилам в Dart именуются классы?

Ответ

В Dart для именования классов, типов, миксинов и анноций используется стиль UpperCamelCase (также известный как PascalCase). Каждое слово в названии начинается с заглавной буквы, включая первое, и разделители не используются.

Основные правила и примеры:

// Классы и абстрактные классы
class PaymentService {}
abstract class DataRepository {}

// Миксины
mixin AnimationMixin {}

// Типы-перечисления (enum)
enum AuthStatus { authenticated, unauthenticated, loading }

// Типизированные классы (дженерики)
class Response<T> {}
class Either<L, R> {}

// Аннотации
class Injectable {}
const factory = Injectable();

Особый случай — приватные классы: Имена приватных классов (видимых только в пределах своей библиотеки) также следуют UpperCamelCase, но начинаются с символа нижнего подчёркивания _.

class _InternalCache {
  // Этот класс не виден за пределами этого файла
}

Следование этим соглашениям, описанным в официальном Dart Style Guide, обеспечивает консистентность кода в проектах и упрощает чтение.

Ответ 18+ 🔞

А, ну это про стиль имён в Dart, да? Ёпта, тут всё просто, как три копейки. Слушай, смотри.

Вот представь, ты пишешь код, а там у тебя классы, миксины, перечисления — вся эта хрень. Так вот, чтобы не было бардака, как в коммуналке, придумали чёткие правила. Имя должно выглядеть солидно, по-взрослому, понимаешь? Каждое слово — с большой буквы, и никаких там подчёркиваний или дефисов. Это называется UpperCamelCase, а по-простому — PascalCase.

Короче, как это выглядит на практике:

// Вот так правильно — солидно и строго, как директор завода.
class NetworkRequestHandler {}
abstract class UserSettingsRepository {}

// Миксины — тоже не пасут задних.
mixin DragAndDropBehavior {}

// Перечисления (enum) — все статусы как на параде, ровненько.
enum ConnectionState { connected, disconnected, pending }

// Дженерики (типизированные классы) — тоже подчиняются.
class Box<T> {}
class Result<Data, Error> {}

// Аннотации — да вообще всё, что похоже на тип.
class Deprecated {}
const experimental = Deprecated();

А теперь внимание, хитрая жопа! Есть особый случай — приватные классы. Это те, которые видны только в своём файле, как посиделки в закрытом клубе. Они тоже в UpperCamelCase, но с прицепом в виде нижнего подчёркивания в начале. Словно говорят: «Посторонним вход воспрещён, иди на хуй».

class _SecretConfiguration {
  // Этот класс — для внутренних дел, наружу не светим.
}

Вот и вся магия. Соблюдаешь эти правила из официального Dart Style Guide — и код у тебя не выглядит как пиздопроебибна, а читается легко, будто газету листаешь. И коллеги тебя за это не взъебот, а, может, даже похвалят.