Liskov Coffee — SOLID Principles

コードを書くとき、常に2つのオプションがあります。他の開発者が良好で舗装された道路を見つけることができるように、それをひどく書き、そのコードに再び触れるか、高品質の基準に従ってそれを書くことができる唯一の生き物になることを前もって知ってください。

悪いコードに直面したときに気付くのは簡単です。コードの臭いがあると言います。理解するのは難しく、小さな変更で動作が停止し、デバッグは真の悪夢です。一方、優れたコードに直面した場合、理解しやすく、使いやすく、すぐに変更できる自信があります。それは本当に私たちの生活をより良くします!

しかし、優れたコードは魔法ではありません。私たち開発者は、高品質の基準に到達できるようにするために、ベストプラクティスと言語規則の学習に時間を費やす必要があります。

良い始まりは、SOLIDの原則を学び始めることです。

SOLIDは、5つの優れたソフトウェア設計原則をカバーする頭字語です。

  • S —単一責任
  • O —オープン/クローズ
  • L —リスコフの置換
  • I —インターフェイス分離
  • D —依存性注入

この原則は、「プログラム内のオブジェクトは、そのプログラムの正確性を変更することなく、サブタイプのインスタンスで置き換えることができる必要がある」と定めています。

それを学ぶ簡単な方法は、最初に類推することです。コーヒーについて考えてください。さまざまな物質でコーヒーを甘くすることができます。コーヒーメーカーを設計するときは、通常の砂糖、角砂糖、黒砂糖、蜂蜜、または人工甘味料(リストを制限するため)から選択できる必要があります。

最初の誘惑は、これらすべての物質で甘くすることができるコーヒークラスを作成することです。

Coffeeクラスは次のように使用します。

お気づきのように、リストに新しい甘味料を追加するたびに、Coffeeクラスを変更する必要があります。これはスケーリングしません!

また、これらすべての物質が同じ動作をしていることにも気付くでしょう。これは、それらが同じサブクラスまたはインターフェースで表される可能性があることを意味します。リスコフの置換原則を適用すると、次のようになります。

これにより、Coffeeクラスをリファクタリングして簡単にすることができます。

コーヒーマシンの内部コードを再設計し、リスコフの原則を適用すると、次のようになります。

コーヒークラスを大幅に変更することなく、シンプルであることに加えて、新しい甘味料をマシンに追加できるようになりました。だから、まさにそれをしましょう。MapleHoneyと呼ばれるカナダから直接新しい甘味料を追加しましょう。MapleyHoneyはHoneyの拡張であり、継承によって有効な甘味料にもなります。

リスコフの置換原則が示すように、プログラムの正確さを変えることなく、甘味料のインスタンス(サブクラス)を切り替えることができるはずです。予想どおり、MapleHoneyを追加しましたが、コーヒーメーカーは引き続き期待どおりに機能します。

Liskovの原則は、継承とインターフェースを使用して、プログラムを簡素化し、変更に対する耐性を高めることです。

まとめ:

  • 私たちのコードは、開発者として私たちが適用すべきものです。
  • 開発者はSOLIDの原則を学ぶ必要があります
  • リスコフの置換原則は、SOLIDの設計原則の1つです。
  • リスコフの原則は、継承とインターフェースを使用して、プログラムを変更に対して回復力のあるものにします

提案された投稿

Spring Boot での Apache Kafka の構成と使用

スプリングブーツを履いたカフカ

Spring Boot での Apache Kafka の構成と使用

はじめに Apache Kafka は、大規模で高スループット、フォールトトレラントなリアルタイム データ ストリーミングを処理するオープンソースの分散ストリーミング プラットフォームです。このシステムは、プロデューサーがトピックにメッセージをパブリッシュし、コンシューマーがそれらのトピックをサブスクライブしてメッセージを消費するパブリッシュ/サブスクライブ モデルに基づいています。

モバイル開発をマスターする: アプリに最適なプログラミング言語を選択する方法

モバイル開発をマスターする: アプリに最適なプログラミング言語を選択する方法

モバイル開発は、企業が今日のデジタル世界で成功するための重要な要素となっています。モバイル アプリの開発者として、アプリを構築するための適切なプログラミング言語を選択することが不可欠です。

関連記事

ドメイン名に関する情報の検索

Brian P. Hogan 著『Small, Sharp Software Tools』からの抜粋

ドメイン名に関する情報の検索

facebook.com にリクエストを送信すると、コンピュータはドメイン名を検索してそのドメイン名を IP アドレスに変換し、コンピュータが接続できるようにします。

脅威ハンティングのための OSINT の収集

脅威ハンティングのための OSINT の収集

サイバー愛好家の皆さん、こんにちは!OSINT for Threat Hunting シリーズへようこそ。最初の記事では、OSINT の概要と脅威ハンティングにおけるその重要性について説明しました。

仕事週間で学ぶことはあなたが思っている以上に重要です

仕事週間で学ぶことはあなたが思っている以上に重要です

私たちは、自分にとって良いとわかっていることを実行するのに苦労していることによく気づきます。大切な人に愛していると伝えることから、海賊のように話すことを忘れないことまで、すでにそうしたことを行っているため、1日、1週間、または1か月のイベントは必要ないと主張する人が常にいます。

待ちの季節にできること(テクノロジー業界での最初の仕事に就くのを待っているとき)

待ちの季節にできること(テクノロジー業界での最初の仕事に就くのを待っているとき)

新しいキャリアへの転職は、一人でやろうとすると非常に困難になる可能性があります。あなたと同じ学習レベルにあり、同様の目標、粘り強さ、意欲を共有する責任パートナーを見つけることが重要です。