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.
Los eventos deben ser nombrados en pasado porque los eventos son cosas que ya han ocurrido desde la perspectiva del bloc.
BlocSubject
+ Sustantivo (opcional)
+ Verbo (evento)
Los eventos de carga inicial deben seguir la convención: BlocSubject
+ Started
✅ Bueno
sealed class CounterEvent {}final class CounterStarted extends CounterEvent {}final class CounterIncrementPressed extends CounterEvent {}final class CounterDecrementPressed extends CounterEvent {}final class CounterIncrementRetried extends CounterEvent {}
❌ Malo
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 {}
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.
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
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
.
✅ Bueno
sealed class CounterState {}final class CounterInitial extends CounterState {}final class CounterLoadInProgress extends CounterState {}final class CounterLoadSuccess extends CounterState {}final class CounterLoadFailure extends CounterState {}
enum CounterStatus { initial, loading, success, failure }final class CounterState { const CounterState({this.status = CounterStatus.initial}); final CounterStatus status;}
❌ Malo
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 {}