Saltearse al contenido

Convenciones de Nombres

Las siguientes convenciones de nombres son simplemente recomendaciones y son completamente opcionales. Siéntase libre de usar las convenciones de nombres que prefiera. Puede encontrar algunos de los ejemplos/documentación que no siguen las convenciones de nombres principalmente por simplicidad/concisión. Estas convenciones son fuertemente recomendadas para proyectos grandes con múltiples desarrolladores.

Convenciones de Eventos

Los eventos deben ser nombrados en pasado porque los eventos son cosas que ya han ocurrido desde la perspectiva del bloc.

Anatomía

BlocSubject + Sustantivo (opcional) + Verbo (evento)

Los eventos de carga inicial deben seguir la convención: BlocSubject + Started

Ejemplos

Bueno

counter_event.dart
sealed class CounterEvent {}
final class CounterStarted extends CounterEvent {}
final class CounterIncrementPressed extends CounterEvent {}
final class CounterDecrementPressed extends CounterEvent {}
final class CounterIncrementRetried extends CounterEvent {}

Malo

counter_event.dart
sealed class CounterEvent {}
final class Initial extends CounterEvent {}
final class CounterInitialized extends CounterEvent {}
final class Increment extends CounterEvent {}
final class DoIncrement extends CounterEvent {}
final class IncrementCounter extends CounterEvent {}

Convenciones de Estado

Los estados deben ser sustantivos porque un estado es simplemente una instantánea en un momento particular en el tiempo. Hay dos formas comunes de representar el estado: usando subclases o usando una sola clase.

Anatomía

Subclases

BlocSubject + Verbo (acción) + State

Cuando se representa el estado como múltiples subclases, State debe ser uno de los siguientes:

Initial | Success | Failure | InProgress

Clase Única

BlocSubject + State

Cuando se representa el estado como una sola clase base, se debe usar un enum llamado BlocSubject + Status para representar el estado:

initial | success | failure | loading.

Ejemplos

Bueno

Subclases
counter_state.dart
sealed class CounterState {}
final class CounterInitial extends CounterState {}
final class CounterLoadInProgress extends CounterState {}
final class CounterLoadSuccess extends CounterState {}
final class CounterLoadFailure extends CounterState {}
Clase Única
counter_state.dart
enum CounterStatus { initial, loading, success, failure }
final class CounterState {
const CounterState({this.status = CounterStatus.initial});
final CounterStatus status;
}

Malo

counter_state.dart
sealed class CounterState {}
final class Initial extends CounterState {}
final class Loading extends CounterState {}
final class Success extends CounterState {}
final class Succeeded extends CounterState {}
final class Loaded extends CounterState {}
final class Failure extends CounterState {}
final class Failed extends CounterState {}