◀︎其の1はこちら
◀︎其の2はこちら
◀︎其の3はこちら
◀︎其の4はこちら
◀︎其の5はこちら
◀︎其の6はこちら
◀︎其の7はこちら
◀︎其の8はこちら
◀︎其の9はこちら
◀︎其の10はこちら
◀︎其の11はこちら
◀︎其の12はこちら
こんにちは!
ラジコード編集部です 😊
アジャイルサムライを読む連載記事その12です!😃
前回は第4部 アジャイルな計画づくり の「第11章:現場の状況を目に見えるようにする」で、プロジェクトの全容と進捗を目に見える形にまとめておくとおくとステークホルダーにもチームにとっても有益であるということがわかりました
それでは第5部 アジャイルなプログラミング の「第12章 ユニットテスト:動くことがわかる」「第13章 リファクタリング:技術的負債の返済」を読んでいきましょう。
よろしくお願いします!🙋♂️
本シリーズは「アジャイルサムライ − 達人開発者への道」を1〜5部を1~2記事に分け要点を解説していくシリーズです。全13記事を予定しています。
もくじ
計画づくりや期待マネジメントに時間を費やしても正しいエンジニアリングを実践しなければ、アジャイルな開発プロセスは機能しません。
様々なエンジニアリングの中でも「必ず実践すべき」プラクティスは次の4つです。
- ユニットテスト
- リファクタリング
- テスト駆動開発(TDD)
- 継続的インテグレーション
第12章 ユニットテスト:動くことがわかる
ユニットテストはメソッドレベルの小さな粒度、変更を加えるたびに書き、期待通り動くことを確認します。
CircleCIなどで自動化して簡単に実行できるようにしておけば、変更を加えるたびにテストを走らせて即座に確認ができます。
テストコードを書くメリットは以下の通りです。
- 素早いフィードバックが得られる、デバッグ時間を大幅に削減できる
コードに変更を加えてテストが失敗したら「どこを壊したか」がすぐにわかる。 - 極めて低コストにリグレッションテストを実行できる
テストが自動化されていれば、手作業で再テストする必要がない。簡単なテストを自動化すれば浮いた時間を複雑なテストのために使える。 - 自信を持ってデプロイできる
自動化されたテストが動いていると安心してコードをリリースできる。また複雑な機能の開発やテストに目を向けられる
ユニットテストは他のソフトウェアエンジニアリングを支える核となります。
自動化されたユニットテストを健全な状態に保ちながら、次章のリファクタリングについて学んでいきましょう。
第13章 リファクタリング:技術的負債の返済
開発速度を優先したり、知識不足など様々な理由からかつてシンプルだったコードは何かしらの負債を抱えています。
ひとつひとつの変更は無害に思えますが、気づかずにひっそりと積み重なった結果負債として大きな被害をもたらすことになります。
前へ進むためには、技術的負債をこまめに返済していく仕組みを用意しないといけません。ソフトウェアの整合性を保ちながら、設計を少しづつ改善していく手法が必要です。
リファクタリングとは、ソフトウェアの動きを変えることなく、少しづつ継続的に設計を改善していく手法の総称です。
コードをリファクタリングするときは、コードの意図をつかみやすくしたり、変更がしやすくなるように設計を改善します。
わかりづらいメソッド名や変数名をわかりやすい名前に変更することもリファクタリングです。
積極的にコツコツとリファクタリングすることでコードの質と保守性が向上します。
積極的で継続的なリファクタリング
ソフトウェア開発で一番大変なのはきれいな設計を保ち続けることです。
継続的なリファクタリングでコードの手入れが行き届いていれば、新機能を追加するときもきちんと設計されたコードをベースに開発を進めることができます。
理想的なリファクタリングは、毎日の開発のなかでリファクタリングを行うことです。負債が小さいうちに対応すると負担も少なくなります。
- 変数名やメソッドの名前変更
- 変数のインライン化
- メソッドの抽出
まずはこれらを実践するとコードの可読性とメンテナンス性を改善できるはずです。
以上「第5部アジャイルなプロジェクト運営:第12章 はじめてのユニットテスト」「第13章 リファクタリング:技術的負債の返済」の解説でした。
ユニットテストは自動化し改善の基盤を作り、継続的なリファクタリングで保守性を保つとよいということが分かりましたね。
次回は「第14章:テスト駆動開発、第15章 継続的インテグレーション」を読んでいきましょう😌
- アジャイル宣言の背後にある原則
- アジャイルソフトウェア開発宣言
- アジャイルサムライ − 達人開発者への道
オーム社 (2011/7/16)
著者:Jonathan Rasmusson 著/西村直人・角谷信太郎 監訳/近藤修平・角掛拓未 訳
月額固定・定額制でアジャイル開発を提供する「サブスクエンジニア」サービスを提供しています。よろしければご覧ください!