アーカイブ:2021年 8月
-
08.29
【関数型言語】「計算モデル」の種類、カリー化
機械が保持している計算モデルは3つのモデルがあります。 命令型モデル アランチューリングが考案した。JavaやCなどで採用される一般的なモデル、「計算」とは「命令を実行する」こと。 命令 計算機の状態を変更する処理のこと。例をあげれ…
-
副作用の例 実行するタイミングによって何の値が返ってくるかわからない処理が記述してある。 時刻を取得する処理 ファイル読み込み DB読み込み 環境変数の参照 グローバル変数参照 乱数生成 Ja…
-
Observerパターンとは? 要は「通知が欲しいとき」のデザインパターンです。どこか1箇所のクラスで監視させておいて値が変わったら全ての依存するクラスに対して通知を行います。 「Observer:観察する側」と「Subject:観…
-
08.28
【リファクタリング】「クラスのよくある命名」
クラスの名前をつける際に、単に「Model」とかだとわからなくなるので、以下の命名を意識すると良い。(クラス名は「名詞」にする。) 業務アプリ層 Action 操作そのもの。(例:ClickAction) Controller M…
-
オープンクローズドの原則とは 「機能を拡張する」(オープン)と「修正を行わない」(クローズド)という一見矛盾するこの二つを同時に要求する内容のこと。 要は。。。 モジュールに新たな振る舞いを追加する際に既存コードを修正せずに新しいコー…
-
08.28
【オブジェクト指向】「SOLIDの原則」の概要
SOLID原則とは? 1990年代後半〜2000年代にロバートCマーチンによって提唱されたモジュール間の接続の概念。SOLIDはオブジェクト指向においてバリエーションを扱う上で守った方が良い概念を集めた原則(「S:単一責任の原則」だけはこ…
-
特徴 値として扱うクラス DB項目を扱う。 ただ、項目に対してビジネスロジックがない場合は基本データ型でも良い。 別インスタンスでも値が同じなら同じものと判断する。 普通のクラスと違って扱いはインスタンスというよりは値に着目する。…
-
Entity(エンティティ) データベースのデータに対するビジネスロジックの置き場所として使うカスタムクラスです。 Entityの特徴 一意性のあるデータの一塊り あるインスタンスは他のインスタンスと重複しない。ユニーク。 SQL…
-
ドメイン駆動設計とは? 高品質のソフトウェア設計をする手法、単純にバグがないと言うよりはビジネス的に成功していると言う意味合いが強い。「ユビキタス言語」と言うチーム共通言語でプログラムを実装する。 ドメインエキスパート 担当業務やシス…
-
Common関数の問題点 共通化するのであれば、Common関数だったりCommonのConstなどを作ってそこに共通処理を記述すればいけます。 ただ、これには問題点があります。 チームで開発していたら「本当にみんなその関数を…