Chapitre 02.11 — Couche opinionated/#
Tout ce qui est opt-in : un utilisateur sourcilleux peut tout remplacer. CLI, loggers, plugins de rapport, bootstrap, alias drive_page. Cette couche est ce qu’on voit en surface ; elle n’est pas le cœur, c’est la version « clé en main » qu’Ocarina fournit pour qu’un projet typique n’ait pas à réinventer.
Plan#
| # | Fichier | Sujet |
|---|
| 01 | 01-cli-builder.md | CliBuilder, CliArg, _SilentArgumentParser. |
| 02 | 02-cli-store-phantoms.md | CliStore[TKeys], _CliField[T], phantom_validate. |
| 03 | 03-selenium-cli.md | create_selenium_auto_cli_store + flags + validation. |
| 04 | 04-loggers.md | ILogger impl : PrintLogger, FileLogger, PrintAndFileLogger, MutedLogger, create_matching_logger. |
| 05 | 05-plugins-reports.md | pretty_print_results, results_to_json, generate_docx_proof, timing. |
| 06 | 06-bootstrap-launcher.md | bootstrap + run_plugins (parallèle). |
Opt-out/opt-in#
Sans opinionated/ | Avec opinionated/ |
|---|
| L’utilisateur doit écrire son CLI from scratch | create_selenium_auto_cli_store() lui donne tout |
| L’utilisateur doit écrire son logger | create_matching_logger("terminal+file") lui donne tout |
| L’utilisateur doit écrire ses rapports | pretty_print_results, generate_json_results, generate_docx_proof |
| L’utilisateur doit écrire son main() | bootstrap(test_cycle, run_plugins, post_exec) |
Alternatives#
| Composant | Remplaçable par… |
|---|
CliBuilder / CliStore | Toute lib argparse-like (click, typer, fire) |
PrintLogger / FileLogger | Toute impl d’ILogger |
pretty_print_results | Toute fonction (TestCycleResults) -> None |
generate_docx_proof | Idem |
bootstrap | Toute fonction () -> None qui appelle TestCycle.run_all + post-traite |
drive_page | chain_actions direct, ou un alias projet (drive_section, drive_widget) |