0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

中3エンジニアの開発ログ #1|2026年10月下旬

0
Posted at

普段はOSSへのコントリビューションや競技プログラミング、AI関連の開発などに取り組んでいる。

この開発ログでは、日々の開発や研究で考えたこと、試したことなどを、不定期にまとめている。

今回は2026年10月下旬の記録。

本記事は、自分で書いた日誌をもとに、公開可能な内容に再構成・編集している。

VOICEVOXへのコントリビューション

トーク・ソング切り替えボタンの実装

VOICEVOXで、トークとソングを切り替えるボタンを追加するIssueに取り組んだ。比較的着手しやすそうで、実装すると便利になりそうだったのが理由だ。

最初はQToolbar内にBase UIのコンポーネントを使って実装した。しかし、レビューでは、既存のQuasarコンポーネントを使う方針に合わせるよう指摘を受けた。

確かに、既存の実装に合わせた方が保守性の面では良さそうだ。ただ、Quasarで試してみると、ダークモードでは選択状態が分かりにくく、ライトモードでも直感的とは言いにくい表示になった。

自分の実装に問題がある可能性もあるが、既存コンポーネントを使うことと、UXを改善することの両立は意外と難しい。単に動くコードを書くだけでなく、既存の設計方針や操作性まで考える必要があると感じた。

ルーラーの右クリック修正とコードレビュー

ソング機能のルーラー(目盛り表示)に関する不具合修正にも取り組んだ。

今回はAIに実装を任せ、生成されたコードを大まかに確認してPRを提出した。しかしレビューでは、表面的に不具合を抑えているだけで、根本的な解決にはなっていないという指摘を受けた。

ルーラーと周辺要素の構造や重なり方に課題があり、そこから見直す必要があるということだった。自分は、そもそも不具合が起きる構造を十分に理解できていなかった。

追加したE2Eテストについても、細かいデザインの変更に依存しすぎていると指摘された。テストは多ければ良いわけではない。適切な抽象度で書かなければ、UIを変更するたびにテストの修正が必要になってしまう。

指摘を受けてテストを削除するなどの修正を行ったが、特に考えさせられたのは、AIが生成したコードを自分がどこまで理解できているのかという点だ。

AIを使えば短時間で実装できるが、その修正が本質的に正しいのかを判断するには、対象コードや設計の理解が欠かせない。

コードをじっくり読むと時間がかかる。一方で、十分に読まなければ問題を見落としてしまう。このバランスは今後も考えていきたい。

参考:VOICEVOX PR #3143

空戦AIチャレンジの開発環境構築

空戦AIチャレンジに向けた開発環境も構築した。

コンテスト関連のコードはモノレポで管理したいと考えているが、プロジェクトごとに使用する言語やバージョン、依存関係が異なる。

Pythonの依存関係管理

Pythonのパッケージ管理にはuvを使っている。最初は共通のuv.lockで管理することも考えたが、各プロジェクトが共通のワークスペースに依存する構成は避けたかった。

そこで、プロジェクトごとにuv.lockを持つ方針にした。プロジェクトをまたぐときは少し面倒だが、依存関係を分離できる方が良いと判断した。

シミュレーターの管理

公式の配布シミュレーターをそのままGitにコミットすると、リポジトリが大きくなってしまう。

そこで、配布物との差分だけをGitで管理し、残りはSIGNATE CLIからダウンロード・展開するPythonスクリプトを用意した。

多少セットアップは複雑になったが、リポジトリを軽量に保ちながら、必要な配布物を取得して環境を再構築できるようになった。

今後はこの環境を使ってベースラインを改善していきたい。

振り返り

今回の開発で特に印象に残ったのは、コードレビューで、自分では気づけなかった設計上の問題を指摘してもらえたことだ。

AIを使えば実装は速くなるが、設計の妥当性や保守性、テストの適切さまで判断するのは簡単ではない。

今後はAIを活用しつつ、生成されたコードを自分でも理解し、修正方針を判断できるようになりたい。

また公開できそうな記録が溜まったらまとめようと思う。


GitHub / ポートフォリオ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?