CLIジェネレータ「cyamli」によるコンソールアプリのスキーマ駆動開発 by Jumpaku

builderscon 2024
採択
2024/08/10 16:05〜
main
40分
中級者向け

CLIジェネレータ「cyamli」によるコンソールアプリのスキーマ駆動開発

Jumpaku Jumpaku Jumpaku

キーワード

CLI, YAML, コード生成, 静的型付け, Go言語

概要

CLI(Command Line Interface)を備えたコンソールアプリケーションを開発する際には、CLIを定義・解釈する仕組みが必要となります。この仕組みを実現するために、私は「cyamli」という名前のCLIジェネレータを開発しました。「cyamli」は、YAMLファイルに記述されたCLIスキーマに基づき、型付けされたCLIを扱うためのコードを生成します。

本発表では、「cyamli」について詳しく紹介したいと考えています。具体的には、まず以下の「cyamli」の特徴について説明します。

  1. コマンドライン引数の定義・解釈:CLIとして、サブコマンド、オプション引数、位置引数で構成されるコマンドライン引数を定義・解釈することができます。
  2. 型付けされたCLI:生成されるコードは、型付けされたCLIを適切に扱えるため、静的チェックやコード補完といった機能を活用できます。
  3. 情報源の集約:CLIのスキーマの情報源をYAMLファイルに集約して管理できるため、コードの一貫性を維持しやすくなります。
  4. 様々な出力形式:現時点で、GoとPython3をサポートしており、テキストおよびMarkdown形式のヘルプメッセージも出力できます。

さらに、以下の内容についてイメージしてもらえるように、実際にデモンストレーションを実施して、例を示しながら解説したいと考えています。

  1. CLIスキーマをどのように定義するのか
  2. どのようなコードが生成されるのか
  3. 生成されたコードをどのように利用するのか

対象者

以下のような方々に興味を持っていただけると思います。

  • Go言語を使う方
  • コンソールアプリケーションを開発する方
  • スキーマ駆動開発に興味のある方

リファレンス