10000人以上のプロフェッショナルが集まるコミュニティに参加してディスカッションに参加しませんか?
無料サインアップでコンテンツにアクセスが可能になります。

VRC、100万行以上の未使用コードを削除

>We deleted over a million lines of unused code and prefabs from VRChat's codebase. This won't change anything for you, but the engineer responsible wanted to share their relief with anyone who also works in software.

Please clap.


笑いました。

ソフトウェア業界で働くすべての人と共有したいとのことなのでここで……。


ちなみに皆さんは何かコード整理の思い出はありますか?

私はコンパイル元ソースがなくなっているのでどうにもできないコードをたまたま発見してしまったことがあります(絶望)


ソース:

https://docs.vrchat.com/docs/vrchat-202512

(編集済み)
8

コメント

コメント一覧

リリースノートにある通り、100万行がなくなってもユーザには関係ないんですよね。

その苦労を上回るメリットがあるはずで、そこが何なのかが知りたいですね。どんな負債がたまってたんだろう。


私自身、自分と同い年くらいのアプリをリファクタするプロジェクトが何回かありましたが、始めるまでが一番苦労でビジネスオーナーかシステムオーナーが覚悟決められてたら大変だけどうまくいくイメージです。


逆になんの技術使うかとかどこのクラウドにするかとか、インフラの話ばかりしてフラフラしてるプロジェクトはだいたい失敗します。

シンプルに、

・可読性向上によるメンテナンス性向上

・ソースコードのサイズ削減によるディスク容量削減

・ビルド時間の短縮

・ビルド後実行モジュールのサイズ削減

・ロードモジュールのサイズ削減による実行時メモリ利用の効率化/パフォーマンス向上(ただしコンパイル時に最適化で一度も通らないロジックはスキップされている場合はこれらの効果はなし)

などではないですか。

DB!A0yn)%m、GFBzsJZ82N)aXea +YbFcN4Xplw。bjP0m4(ty1fB?^,0DMH+W%j1ZFW-

投稿者

想像できるのはコメントアウト行を削ったとかですかね……。ならばコメントアウト行を検索して削除で消せるので納得できます。


ただコメントアウト行が思いもかけぬ遺産になってることもあるのでこの辺は良し悪しかなとも思います。

gitでベースコードの履歴を管理してるモダンなプロジェクトならば関係ないのか……?

脱線して申し訳ないのですが、御社では git 管理をせずコード履歴の代わりにコメントアウトで過去のコードを残しているのですか…?

VSCodeでその関数が他から参照されているか確認できます。

参照されているか確認→参照されていなければ削除を地道に繰り返していったのかなと...。

使われてないと思って消したら別システムとの連携で使われていてシステムが壊れる罠もあります。

実行時に到達不能なコードをdead codeと呼ぶのですが、それは各種の静的解析ツールで検出できますよ。

https://understand.techmatrix.jp/blog-post-10/


これは実はコンパイラの最適化の段階でも似たような事が行われてて、デッドコードはコンパイルせずに実行モジュール(.exe等)にはそのロジックは含まれなくなります。


どの企業でも部署や機能単位でやってそうですが、この企業はそれをやらずにずっと抱え込んでいたのかもしれません。前述のようにコンパイル時には含まれないので、プログラム実行時には問題ないから、クリティカルという問題でもなかったのかも。

あと、その名の通り静的解析はコンパイル時(またはその前)の解析で、その時点で把握できるデッドコードの検出になりますが、それ以外にも実はプログラム実行時に呼び出されるロジックの存在もありえます。「絶対に呼び出されない」という真のデッドコードは静的解析だけでは検出不可で、不要なコードが増えて行ってしまったのかもしれません。

コミュニティ
企業一覧
求人
給料