My Parser Project

CommandAPIを用いて生成したプロセスの標準入出力を管理するプログラムを書いていて、 その実験用に登場した「DesperatelyRustyToolBox」が 独自のコマンドラインを持つプログラムであった。

このプログラムをもっと拡張できるよう、高度な構文解析が必要と考えて登場したのがこのプロジェクト。

他にも登場経緯はあるが割愛。

自分用標準構成

自分用とあるが、実際rustで開発するにあたって必要であるカスタム型、便利ツール、開発方法、モデルを定義したもの。

要素は以下の通り

  • CI/CDを実現するためにGithubActionsを積極採用
    cargo buildcargo testを自動化。さらに、cargo docも自動化。
    mainにマージされた時はクリーンなコードを保てる。
  • テスト駆動開発で開発を行う
    せっかくCI/CDでテストの自動化を行ったんだから、書かないわけにはいかない。
    公式にもある通り、テスト駆動開発で目標の見える化を実現。
  • エラートレイトを実装したオリジナルのカスタムエラー型を用意
    ちゃんとsourceまであるならsourceまで実現。
    エラー発生箇所の特定を容易にするだけでなく、
    Fromの実装で?シュガーシンタックスに対応、コードがより見やすく。
  • 一般的なブランチモデルを採用 いわゆるgit flowに基づいたブランチモデルを採用する。

また、名前規則やコメント規則等々も今後まとめていきたい。

最終目標

このプロジェクトを使い回していけるように頑張りたい。

参考とか