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#

#FichierSujet
0101-cli-builder.mdCliBuilder, CliArg, _SilentArgumentParser.
0202-cli-store-phantoms.mdCliStore[TKeys], _CliField[T], phantom_validate.
0303-selenium-cli.mdcreate_selenium_auto_cli_store + flags + validation.
0404-loggers.mdILogger impl : PrintLogger, FileLogger, PrintAndFileLogger, MutedLogger, create_matching_logger.
0505-plugins-reports.mdpretty_print_results, results_to_json, generate_docx_proof, timing.
0606-bootstrap-launcher.mdbootstrap + run_plugins (parallèle).

Opt-out/opt-in#

Sans opinionated/Avec opinionated/
L’utilisateur doit écrire son CLI from scratchcreate_selenium_auto_cli_store() lui donne tout
L’utilisateur doit écrire son loggercreate_matching_logger("terminal+file") lui donne tout
L’utilisateur doit écrire ses rapportspretty_print_results, generate_json_results, generate_docx_proof
L’utilisateur doit écrire son main()bootstrap(test_cycle, run_plugins, post_exec)

Alternatives#

ComposantRemplaçable par…
CliBuilderCliStoreToute lib argparse-like (click, typer, fire)
PrintLoggerFileLoggerToute impl d’ILogger
pretty_print_resultsToute fonction (TestCycleResults) -> None
generate_docx_proofIdem
bootstrapToute fonction () -> None qui appelle TestCycle.run_all + post-traite
drive_pagechain_actions direct, ou un alias projet (drive_section, drive_widget)