技術用語を比喩から学ぼう ! - 第 7 回「命令型と宣言型」

2021-11-02
How to be a Developer

Author : 吉田 慶章 

builders.flash 読者の皆さん ! こんにちは ! シニアテクニカルトレーナーの吉田慶章です。

2020 年に「比喩シリーズ (初学者が理解しにくい技術用語を現実世界の比喩で紹介する)」を連載していて、計 6 記事を書いて区切りが良く、連載を終えました。今回は約 1 年振りに書いてみたいと思います。実は「比喩シリーズ」は評判が良いらしく ?  (ありがとうございます !) 有償トレーニングのときにお客様から「読みましたよー !」と言っていっていただけることもあります。よって今後も不定期に連載を続けるかもしれません。

もし「こんな技術用語の比喩を聞きたい !」というリクエストがあれば、Twitter のハッシュタグ #AWSウェブマガジン でツイートをお待ちしています😃

Here We Go ===┌(・_・)┘

この連載記事のその他の記事はこちら

選択
  • 選択
  • 第 1 回「疎結合」»
  • 第 2 回「パブサブ」»
  • 第 3 回「イミュータブル」»
  • 第 4 回「ロードバランサー」»
  • 第 5 回「キャッシュ」»
  • 第 6 回「テンプレート」»
  • 第 7 回「命令型と宣言型」»
  • 第 8 回「DNS の名前解決」 »

第 7 回「命令型と宣言型」

比喩シリーズ 第 7 回の技術用語は「命令型 (命令形式)」「宣言型 (宣言形式)」です。

アプリケーションやインフラストラクチャなど、何かしらのリソースを構築するときの手法 (考え方) として大きく2種類あり、それが「命令型」「宣言型」です。

私が担当している初級トレーニングだと、基本的にマネジメントコンソールを使って AWS の各種リソースを構築しますが、よく「マネジメントコンソール以外で構築することはできますか ?」という質問をいただきます。そのときに「AWS Command Line Interface (CLI) や AWS CloudFormation や AWS Cloud Development Kit (CDK) が使えますよー!」と具体的な回答をすることもありますし、そもそもの前提として「命令型と宣言型という手法がありまして !」と紹介することもあります。

最終的には質問の意図によって臨機応変に回答を変えますが、本記事では後者の「命令型と宣言型という手法」に関して、できる限り専門用語を使わずに比喩で紹介します。


比喩 : ヘアカット

本記事では「ヘアカット」という比喩で「命令型」「宣言型」を紹介します。それぞれ以下のように考えることができます。

  • セルフカットをする (命令型)
  • ヘアサロンに行く (宣言型)

1. セルフカットをする (命令型)

まず「命令型」とは、何かしらのリソースを構築するときに「ゴール (構築したい状態)」に向けて、一歩一歩手順を積み重ねていく手法です。当然ながら、それぞれの手順や順番を熟知している必要がありますし、どこまで手順を進めたかという進捗も覚えておく必要がありますが、自由度が高く、考えた通りに構築することができます。

そこで「セルフカット」です。ステイホームを心がけるようになってから、セルフカットに挑戦した方も多いのではないでしょうか (まさに私も挑戦しました💪)。例えば、以下のようにします。

  • サイドを 6mm で刈り上げて・・・
  • 襟足をグラデーションで刈り上げて・・・
  • トップをすいて・・・
  • 毛先を整えて・・・
    etc

このように、一歩一歩手順を積み重ねて、最終的にヘアカットが完了します。手順や順番を熟知していないと変なヘアスタイルになってしまうかもしれませんし、もし場所を間違えて刈り上げてしまったら諦めるしかありません😇よって、セルフカットをすることは「命令型」の特徴にとても似ています。

2. ヘアサロンに行く (宣言型)

次に「宣言型」とは、何かしらのリソースを構築するときに「ゴール (構築したい状態)」だけを宣言して、あとはサービス側 (ツール側) を信頼して構築を全て任せます。それぞれの手順や順番を熟知している必要はなく、ゴールさえ正確に伝えることができれば良いです。

そこで「ヘアサロン」です。雑誌の切り抜きを見せて「こんな感じにしてください !」と伝えたこともあるのではないでしょうか (私も若いときによくやっていました (//ω//) 照)。

このように、雑誌の切り抜きは「ゴール (構築したい状態)」と言い換えることもできるので、あとはスタイリストさんを信頼して全て任せます。自分自身で一歩一歩手順を積み重ねていく必要はありませんし、基本的に間違えることもありません。よって、ヘアサロンに行くことは「宣言型」の特徴にとても似ています。


まとめ

本記事では「ヘアカット」という比喩で「命令型」「宣言型」を紹介しました。アプリケーションやインフラストラクチャなど、何かしらのリソースを構築するときの手法 (考え方) として大きく 2 種類あり、それぞれを「セルフカットをする (命令型)」「ヘアサロンに行く (宣言型)」に当てはめてみました。具体的なサービス (ツール) だと AWS Command Line Interface (CLI) は「命令型」でしょうか。AWS CloudFormation や AWS Cloud Development Kit (CDK)、Terraform や Kubernetes マニフェスト (オブジェクト設定) は「宣言型」でしょうか。

皆さんも比喩を考えてみてくださいね !

この連載記事のその他の記事はこちら

選択
  • 選択
  • 第 1 回「疎結合」»
  • 第 2 回「パブサブ」»
  • 第 3 回「イミュータブル」»
  • 第 4 回「ロードバランサー」»
  • 第 5 回「キャッシュ」»
  • 第 6 回「テンプレート」»
  • 第 7 回「命令型と宣言型」»
  • 第 8 回「DNS の名前解決」 »

builders.flash メールメンバーへ登録することで
AWS のベストプラクティスを毎月無料でお試しいただけます

筆者プロフィール

吉田 慶章 (Yoshiaki Yoshida)
アマゾン ウェブ サービス ジャパン合同会社
AWS トレーニングサービス本部 シニアテクニカルトレーナー

ウェブエンジニア/プログラミング講師などの経験から AWS テクニカルトレーナーに。教えることを本職とし、効果的な学習メソッドを考え続けている。教えることは最高の学習である。Keep on Learning 👍

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する