2025年5月10日
今週の活動
- リファクタリング 既存のコードを安全に改善するの第3章を読んだ
- 第3章「コードの不吉な臭い」
- リファクタリングの判断の基準となるコードの特徴と、それぞれのコードに対するリファクタリング方法が説明されている
- Qualitas Corpusの構成システムの調査結果を踏まえて、提案手法の適用対象とするシステムを分類
- リアルタイム性
- ゲーム
- MegaMek
- ターン制のストラテジーゲーム
- リアルタイムの物理計算や敵の行動決定プロセスが存在
- 戦闘の場面では高速な応答性が求められる
- Freecol
- 植民地建設シミュレーションゲーム
- マップの描画や敵の意思決定においてリアルタイム処理が必要
- マルチメディア処理
- jOggPlayer
- 音声再生アプリ
- バッファリングやデコードの遅延がユーザー体験を低下させるため、タイミング制約がある
- Sunflow(マルチメディア処理)
- レンダリングシステム
- 3Dグラフィックスの高速処理が必要
- ネットワーク通信
- JGroups
- P2Pによるグループ通信ライブラリ
- ノード間の同期やメッセージ配信において低レイテンシーが要求される
- QuickServer
- ソケット通信を提供するフレームワーク
- 多数の同時接続を効率的に処理するためのリソース管理とスケジューリングが必要
- 並行性・並列性
- JBoss
- エンタープライズアプリケーションサーバー
- 多数の同時リクエストを処理するための並行処理モデルが実装されている
- Tomcat
- Webサーバー
- 複数のクライアントからの同時接続を処理するためのスレッドプールとノンブロッキングI/Oが実装されている
- Hadoop
- 分散コンピューティングフレームワーク
- 大規模データをノードに分散させ、並列処理
- Azureus(Vuze)
- BitTorrentクライアント
- 多数の同時接続と非同期でのデータ転送を管理
- コード品質メトリクスに関する研究の調査
- Halsteadの複雑さの尺度(Halstead complexity measures)
得られた成果
- SonarQubeによる解析処理の自動化はシェルスクリプトで行うのが最も簡単
直面した課題
来週の計画
- シェルスクリプトを用いてSonarQubeの解析処理を自動化
- リファクタリング本の第4章を読み、ここまでの成果を文書にまとめる
- 引き続き、コード品質メトリクスに関する研究を調査
- コード品質メトリクスの計測方法を検討