「良いアプリケーション」とは?ソフトウェア開発において,要件が一定であることはありえません。仕様の変更や拡張など,変更が常につきものです。変更の「コスト」がかさむと,費用対効果が低く,書いても楽しくないアプリケーションを開発しなければならなくなります。このような事態はぜひとも避けたいものです。運用コストを下げ,生産性を上げるようなアプリケーションとは,どういったものなのでしょうか。アプリケーションは,変更に耐えうるべきです。,「⁠どんな」変更が「いつ」起こるかなど,だれも予想がつかないため,ある特定の変更を予測してアプリケーションを設計すると,その開発は失敗する可能性が高まります。したがって,どんな変更が起こってもかまわないように,変更の選択肢を残しておくことが重要です。選択肢を残すことで,現時点での成果を出しつつ将来の変更にも対応できる柔軟さを持った,良いアプリケーションへと育てていくことができます。設計の重要性アプリケーションは,コードで構成されています。コードを構成することが「設計」といえます。オブジェクト指向設計は,オブジェクト同士の依存を管理することです。オブジェクトが依存していると,それだけ変更しなければならないオブジェクトも増えます。良いアプリケーションには,変更に耐えられる柔軟性が必要でした。貧弱な設計では,変更に耐えられません。アプリケーションが成長するにしたがって,開発コストが高くなってしまいます。そのため,適切なオブジェクト指向設計を身につけることが,良いアプリケーション開発のための第一歩なのです。オブジェクト指向設計の基本原則オブジェクト指向設計には,よく知られている原則がいくつかあります。「単一責任の原則」は,変更がかんたんでメンテナンスしやすいコードを書くための原則です。書くコードは,見通しが良く,合理的で,利用性が高く,模範的である,という性質を持つことで,変更が容易になります。このようなコードを書くためには,まず単一責任のクラスを設計すべきです。「オープン・クローズド」は,継承を使った結果得られるコードです。階層構造を正しく書くことによって拡張が容易で,利用性の高いものになります。「リスコフの置換原則」は,階層構造の派生型は上位型と置換可能であるべき,という暗黙の契約を定義します。Rubyらしく言うと,オブジェクトは自身が主張するとおりに振る舞うべき,ということです。「インターフェース分離」や「依存性逆転」といった原則もあります。そのほかにも,「⁠DRY原則」や「デメテルの法則」といったものも存在します。「適切な設計視点」を身につけるために本書『オブジェクト指向設計実践ガイド』は,オブジェクト指向設計の名著として高く評価され続けている書籍の翻訳版です。上記の原則を用いながら,良いアプリケーションを書くためのプログラミングルールを明確に示しています。本書をとおして,いま一度設計のルールを考えてみませんか。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。書店・販売店の皆様へデベロッパアドミニストレータWEB+デザインライフスタイルサイエンスニュース&レポートメールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。