Open tarepan opened 4 months ago
なるほどです!
featuresに分離しても違和感はそのまま残ってる気がしました。 雰囲気はutilityに全部突っ込む感じに近そう。
あと app と features という並びだと、始めてリポジトリ見た人はどっちに何の機能が入ってるか想像できないかもです。 (FastAPIを知ってるとサーバー周りが app 側に入っているのだとわかる)
とはいえ、現状のファイル構成が最高ではないとは思います。
一旦どこに配置するか全部考えてみるのはどうでしょうか。
engine_manifest
やsetting
やmetas
やmodel
辺りがfeatures
だと違和感あるかもです。
もし何か将来的なことも考えてでしたらそちらもお聞きしたいです・・・!
P.S.
ちゃんと考えれてないですが、appをserverかapiにし、"機能"っぽいのをvoicevox_engine
ディレクトリ直下に配置して、あとその他を何かのディレクトリにまとめていくと良いのかもと思いました。
例えばユーザー辞書に興味がある人はディレクトリを掘らずに user_dict にたどり着けるかなぁと。
内容
概要:
voicevox_engine
ディレクトリへfeatures
ディレクトリを追加するリファクタリングを提案しますvoicevox_engine
下に置かれているモジュール群は以下の 2 種類の役割に大別できる:サーバー関連モジュールは
app
ディレクトリ下に集約されているが、各 feature モジュールはvoicevox_engine
ディレクトリ下に直接配置されている。voicevox_engine/
を初めて覗く開発者の多くは「API がどう提供されているか」か「feature はどう実装されているか」のいずれかが知りたいと整理するならば、voicevox_engine
の直下にはapp
とfeatures
が並んでいるのが望ましい。このような背景から、
voicevox_engine
ディレクトリへfeatures
ディレクトリを追加するリファクタリングを提案します。次のディレクトリ構造が好ましいと考えています:
run.py
voicevox_engine/
app/
application.py
routers/
morphing.py
tts_pipeline.py
features/
morphing.py
tts_pipeline/
Pros 良くなる点
Cons 悪くなる点
無し
実現方法
VOICEVOXのバージョン
0.19.0