実践プログラマー コンテキス
すごい広島 IT初心者の会
構成
- 自己紹介
- コンテキス
- まとめ
自己紹介
カキギカツユキ
ネット通販の会社で業務システムの開発運用してます
あと、売掛金・買掛金管理業務してます
ぼっち情シスです
クソザコトレーダーです
コンテキス
コンテキストはこれらの原則の中で最もわかりにくいものだが、実は最も根本的なものである。
エリック・エバンスのドメイン駆動設計
コンテキストこそが重要
コンテキストは王様である。DDDを実践する際には、特にそれがいえる。実践ドメイン駆動設計
種類
- ハイコンテキストとは互いに大きな共通理解を持っている状態。
- ローコンテキストとは互いに共通理解が少なく、全ての物事を明確に表現する必要がある状態。
- 社会的コンテキストは他の人の言動や思考を理解し、自分の考えや意図を相手に理解してもらえる環境。
- コンテキストマーケティングとは、マーケティングに取り入れられる1つの考えで、費者の目線から背景事情、思考を読み取ってマーケティング活動を行うこと。
- コンテキストメニューはソフトウェアの操作メニューを表示させる方法で、選択している操作対象に合わせてメニュー項目が変化するプログラムです。
構成要素
文脈
- コンテキストは、明示的または暗黙の前提を指す。
- コンテキストは、言葉では伝わりにくいまたは言語化が難しい概念を指す。
このような「当然正しい」と考えられている事柄をー明言されていようといまいとー英語ではアサンプション(assumption)と言います。
— 論理的に考える方法 小野田博一(著)日本実業出版社
プログラマのコンテキスト
設計のコンテキスト
状況
コンテキストは何か?
あらゆるものごとは特定のコンテキスト内で発生します。このため「万能の解決策」などというものは存在ません。「ベストプラクティス」と銘打たれた記事や書籍を考えてみてください。ここで考えるべき質問は「誰にとってベストなのか?」です。前提条件は何で、短期的な結果と長期的な結果は何でしょうか?達人プログラマー
- 「要はバランス」-> 「コンテキストに依存する」
- 「コンテキストに依存する」-> 暗黙・明示的前提に依存する -> ロジカルシンキング・クリティカルシンキングの適用
演繹
帰納
- 「コンテキストに依存する」-> 言語化が難しい概念に依存する -> ドメイン駆動設計の適用
具体例
コンテクストあるいはコンテキスト(英: context)は、一般的に「文脈」や「状況」といった意味を持つ英語[1]であり、専門分野では次のような用語や修飾語として使われることがある。
言語学
コンテキスト (言語使用) - 言語使用、言語変種、談話要約に影響を与えるコミュニケーション状況の関連する制約。コンピューティング
コンテキスト (計算機科学) - 計算機科学(情報工学)におけるコンテキストは、何らかのタスクによって使用されるデータの最小セットである。タスクによる計算資源の使用状況などを意味する。
コンテキストスイッチ - プロセスやスレッドの状態を保存したり、後の時点で保存した状態を復元して実行を再開したりすることを可能にするための処理過程。
コンテキストメニュー - グラフィカルユーザーインターフェイス(GUI)において、クリックなどのユーザー操作が実行された状況(位置やタイミングなど)によって異なる内容が表示されうるメニュー。
コンテキストアウェアネス - 世の中の情況を捉える技術や、それらに関する概念。
コンテキスト(context)とは、文脈、前後関係、事情、背景、状況などの意味を持つ英単語。ITの分野では、利用者の意図や状況、環境などの総体を表したり、同じ処理や記述でも状況に応じて動作などが異なる場合に、その選択基準となる判断材料や条件などを指す場合が多い。
context
The setting in which a word or statement appears that determines its meaning. Statements about a model can only be understood in a context.
(単語や文が現れる設定は、その意味を決定します。モデルについての発言は、コンテキスト内でのみ理解することができます。)Domain-Driven Design Reference
プログラミング
Strategy Pattern
Dependency Injection
Spring Framework
public static void main(final String[] args) {
MessageSource resources = new ClassPathXmlApplicationContext("beans.xml");
String message = resources.getMessage("argument.required",
new Object [] {"userDao"}, "Required", Locale.UK);
System.out.println(message);
}
境界付けられたコンテキスト
言葉の意味が一意に決まる範囲を明確にするための設計手法が境界付けられたコンテキストです。1つの言葉に2つの意味があるならば、コンテキストを分けて、2つのユビキタス言語を作ります。つまり、モデルが2つに分かれます。
Software Design 2024年3月号 ドメイン駆動設計[実践]ガイド
ビジネス
ビジネスコンテキストとは
「ビジネスコンテキスト」とは、ビジネスの世界における関連データや周辺情報のことである。物事を判断・決定する際の根拠となる主な情報に関連する、言葉では伝わりにくい背景やデータのことをいう。クライアントが明確に発しない言葉の背景や意図、これまでの経緯も「ビジネスコンテキスト」と呼ばれる。
weblio