Why Bloc?
Bloc은 프레젠테이션(presentation) 레이어를 비즈니스 로직(business logic) 레이어에서 쉽게 분리하고, 빠르게, 테스트하기 쉽게, 재사용(reusable) 할 수 있게, 코드를 작성할 수 있게 합니다.
프러덕션 수준의 애플리케이션을 구축할때 상태 관리(state management)는 중요합니다.
개발자로서 우리는 다음과 같이 하고 싶습니다:
- 언제 어느 시점에 우리 애플리케이션이 어떤 상태에 있는지 알아야 합니다.
- 모든 케이스를 쉽게 테스트하여 앱이 적절하게 응답하는지 확인해야 합니다.
- 데이터 기반 결정(data-driven decisions)을 내릴 수 있도록 애플리케이션의 모든 단일 사용자(single user) 상호 작용(interaction)을 기록해야 합니다.
- 가능한 효율적으로 작업하고 우리의 애플리케이션 내에서 다른 애플리케이션에서 걸처 컴포넌트를 재사용할 수 있어야 합니다.
- 동일한 패턴 및 컨벤션(conventions)에 따라 단일 코드 기반 내에서 원활하게 작업하는 많은 개발자가 있어야 합니다.
- 빠르게 reactive 앱을 개발 할 수 있어야 합니다.
Bloc은 이러한 모든 요구 사항을 충족시키기 위해 고안되었습니다.
많은 상태 관리 솔루션이 있으며 어떤 것을 사용 할지 결정하는 것은 어려운 일 일 수 있습니다.
Bloc은 다음 세 가지 핵심 가치를 염두에 두고 설계 되었습니다.
- 단순함
- 이해하기 쉽고 다양한 기술 수준의 개발자가 사용할 수 있어야 합니다.
- 강력함
- 소규모 컴포넌트로 구성하여 훌륭하고 복잡한 애플리케이션을 만들 수 있어야 합니다.
- 테스트 가능성
- 쉽게 애플리케이션의 모든 측면을 테스트하여 자신있게 반복 할 수 있습니다.
Bloc은 상태 변경이 발생할 수 있는 시기를 규제하고 전체 애플리케이션에서 상태를 변경하는 단일 방법을 시행함으로써 상태 변경을 예측합니다.