リファクタリングの基礎と効果的なソフトウェア劣化対策のポイント ~デモ付~<オンラインセミナー> | セミナー | 日本テクノセンター
https://www.j-techno.co.jp/seminar/seminar-61762/
2024年5月24日(金曜日)に、日本テクノセンターにて有料のオンラインセミナーを担当します。
基本は、マーチン・ファウラー著「リファクタリング」 になるわけなのですが、
ファウラー氏の「リファクタリング」がかつてクラス(オブジェクト指向)への移行をベースにしていたのと、発刊以降の変遷(組み込みシステムの発展や関数型など)を考えたとき、もう少しベタな実装に沿って講義するのもよいでしょう、ということで、主にC言語、C++をベースにして「リファクタリング」を実践していきましょう、というセミナーです。
以下、目次にあると通り、
- 価値(バリュー)からスタートするという、DevOps的考え方
- ルールとしてリファクタリングするのではなく、価値を創出するリファクタリング場所の見つけ方(あるいはリファクタリングしなくて良いポイント)
を原著の「リファクタリング」に追加して、其の後では CUnit/CppUnit などを含めて具体的なデモを使い解説する予定です(Google Testなどの最近の mock を扱ってもよいのですが、組み込みシステムを考えると、古い CUnit あたりが妥当かなと)。
問い合わせなどは、日本テクノセンター経由でして頂けるとありがたいです(ツイッターでもいいけど)。
目次
1.リファクタリング実施の背景と現実
(1).なぜ、リファクタリングをしなければいけないのか?
(2).リファクタリングすると、どのような価値が生まれるのか?
a.コスト面
b.メンテナンス面
c.運用面
(3).リファクタリングする場所を見つける
a.リファクタリングの定番:コードの不吉な臭い
b.修正するときにあちこち手をいれる
c.バグが怖くて手が出せない
(4).修正とバグによる堂々巡り
(5).堂々巡りにならないためのポイント
2.リファクタリング前の準備
(1).テストコードとの組み合わせ
a.関数やクラスの抜き出し
b.抜き出せない場合の対処法
(2). 変更とテストのサイクル作りとそのポイント
(3). 開発環境のリファクタリング機能の効果的な活用
3.リファクタリングのパターンと実施ポイント
(1). コードが読みづらい場合
(2). コードが長すぎる場合
(3). 変更がやりづらい場合
(4). やたらにコメントを付けないとわからない場合
(5). 人に説明がしづらい場合
(6). 複雑すぎるクラスを整理する
4.実践リファクタリング<デモ>
(1).長い関数を整理してみる
(2).テストコードで動かしながら試す
(3).変数名を変更する
(4).関数やクラスに分割する
(5).機能を追加する
(6).できあがったコードを再び整理する
チラ見せ

