探す技術部開発基盤グループのシム(@shia)です。メインレポジトリを開発しやすい環境に改善するために様々な試みをしています。検出し、削除した方法を紹介したいと思います。10年以上にわたって運用されている巨大なウェブアプリケーションです。巨大かつ古いアプリケーションには昔は使っていたが、現在は使われてない依存性などが技術負債として溜まっています。事業的観点から技術的負債を完全返却するのはコストとのバランスが悪いことも多いです。メインレポジトリも例外ではなく、その規模から使ってないと思われる依存性を探しだすのも大変な状況でした。するか人が頑張るより機械に頑張らせたほうが楽ができるし、何より確実です。遅延ロード仕組みに乗りました。リストを逆引きします。ソースコードをコンパイルして得られる命令の集合を指します。ツリー構造で成り立ちます。含まれている状態です。説明や「Rubyのしくみ」という本がおすすめです。いうイベントが不定期に開催されるので参加してみるのも良いも思います。するという仕組みが試験的に導入されました。実行する時まで中身の読み込みを遅延させることで、アプリケーションのローディングが早くなるメモリーの使用量を減らすということを狙っています。今回は「初めて実行する時まで中身の読み込みを遅延させる」ために用意された仕組みに興味があります。コードを見てみましょう。実行される前に呼ばれる関数です。中身が空なら(まだ実行されたことがない)、中身をロードしてるのがわかります。マクロで宣言されてないと使われません。初回実行のみ特定の関数を呼び、そこで必要なロギング作業すれば良さそうです。パッチ上記のコードからどういう感じのパッチを書けばよいのか理解できると思うので実際のパッチを見てみましょう。ターゲットとして書かれてるので注意してください。ロギングのコストは発生するので注意する必要はありますが、仕組み自体のコストは実質ゼロに近いことがわかっています。リストを得ることができます。テストを完走させ、そのログを利用することにしました。リストを作成できます。利用すると簡単に得られます。5つのプロジェクトがあります。リストを作成し、必要のないものをなくす作業を進めました。41個見つかりました。数を大幅に減らすことができました。するファイルの数が大量に減ったため、アプリケーションの読み込み時間が最大1秒程度速くなりました。探す方法を紹介しました。この方法は使用されてないコードを探すのに以下のような利点を持っています。プロジェクトコードを簡単に追跡できるんじゃないかと期待しているので、次回にご期待ください。NEWS技術部の笹田(ko1)と遠藤(mame)です。f...技術部の笹田です。インタプリタの開発をしている笹田です。インタプリタを開発している笹田です。使ったセキュリティログ検索基盤の構築サービス特性にあった検索システムの設計戦略クックパッド採用説明会「クックパッドはサービスの作り手を採用したいんです。/*}*/スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。