docs(faq): add best practice FAQ about using await with scope disposal

- Added FAQ section in documentation (README and tutorials, EN + RU) recommending always using await when calling CherryPick.closeRootScope, scope.closeScope, or scope.dispose, even if no services implement Disposable.
- Clarifies future-proof resource management for all users.
This commit is contained in:
Sergey Penkovsky
2025-08-04 10:39:36 +03:00
parent a9c95f6a89
commit 547a15fa4e
3 changed files with 27 additions and 0 deletions

View File

@@ -387,6 +387,14 @@ try {
**More details:** See [cycle_detection.en.md](doc/cycle_detection.en.md)
## FAQ
### Q: Do I need to use `await` with CherryPick.closeRootScope(), scope.closeScope(), or scope.dispose() if I have no Disposable services?
**A:**
Yes! Even if none of your services currently implement `Disposable`, always use `await` when closing scopes. If you later add resource cleanup (by implementing `dispose()`), CherryPick will handle it automatically without you needing to change your scope cleanup code. This ensures resource management is future-proof, robust, and covers all application scenarios.
## Documentation
- [Circular Dependency Detection (English)](doc/cycle_detection.en.md)

View File

@@ -460,6 +460,16 @@ You can use CherryPick in Dart CLI, server apps, and microservices. All major fe
| `@inject` | Auto-injection | Class fields |
| `@scope` | Scope/realm | Class fields |
---
## FAQ
### Q: Do I need to use `await` with CherryPick.closeRootScope(), scope.closeScope(), or scope.dispose() if I have no Disposable services?
**A:**
Yes! Even if none of your services currently implement `Disposable`, always use `await` when closing scopes. If you later add resource cleanup (by implementing `dispose()`), CherryPick will handle it automatically without you needing to change your scope cleanup code. This ensures resource management is future-proof, robust, and covers all application scenarios.
---
## Useful Links

View File

@@ -465,6 +465,15 @@ void main() {
---
## FAQ
### В: Нужно ли использовать `await` для CherryPick.closeRootScope(), scope.closeScope() или scope.dispose(), если ни один сервис не реализует Disposable?
**О:**
Да! Даже если в данный момент ни один сервис не реализует Disposable, всегда используйте `await` при закрытии скоупа. Если в будущем потребуется добавить освобождение ресурсов через dispose, CherryPick вызовет его автоматически без изменения завершения работы ваших скоупов. Такой подход делает управление ресурсами устойчивым и безопасным для любых изменений архитектуры.
---
## Полезные ссылки
- [cherrypick](https://pub.dev/packages/cherrypick)