読書メモ
読書メモ、対象がでかいし、ダラダラ読んでたのであまりまとまってない 全般的にいわゆる DDD 本(エリック・エヴァンスの本)のエッセンスが提示されている章。議論はそれなりに花が咲きそうだけど、結論はエヴァンス本読めになりそう。以下は個人的におっと…
クラウドによるセキュリティの原則を説明。その構成要素についても解説している。 クラウド的考え方によるメリット クラウドの提供する可能性(機能)を余すとこなく活用できる設計 12 Factor App Cloud Native 3 つの R(後述) 12 Factor App + PaaSでの稼働…
読書会に参加するので、まとめておくだけ 2.1 ビジネスルールの観点における完全性の問題 不正なデータ入力によって損失が発生してた 不正なデータに対するサブシステムの振る舞いが異なっている 2.2 浅いモデリング 最初にモデリングできたと思ったあとに深…
日本でモブプロが話題になってから約 3 年、日本で出版されてから 1 年半くらい経過したでしょうか、やっと 『モブプログラミング ベストプラクティス』を読み終わった。
第四部 コンポーネントの原則 SOLID 原則 = レンガを組み合わせて部屋を作る コンポーネントの原則 = 部屋を組み合わせて建物を作る §12 コンポーネント コンポーネント = デプロイの単位 Java : jar Ruby : gem .NET : DLL コンポーネントの歴史 アプリケー…
§10 ISP: インターフェース分離の原則 必要としない機能をもつモジュールに依存しない どうしても必要な場合はインターフェースを間に挟む §11 DIP: 依存関係逆転の原則 ソースコードの依存関係が具象ではなく抽象を参照しているのが最も柔軟 安定した抽象に…
§9 LSP: リスコフの置換原則 1988年 Barbara Liskov S 型のオブジェクト o1 の各々に、対応する T 型のオブジェクト o2 が 1 つ存在し、 T を使って定義されたプログラム P に対して o2 の代わりに o1 を使っても P の振る舞いが変わらない場合、 S は T の…
§8 OCP: オープン・クローズドの原則 1988年 Bertrand Meyer ソフトウェアの構成要素は拡張に対しては開いていて、修正に対しては閉じていなければならない(『アジャイルソフトウェア開発の奥義』) = ソフトウェアの振る舞いは既存の成果物を変更せずに拡張…
第三部 設計の原則 クリーンなコードを書くための原則「SOLID 原則」 変更に強い中間レベルのソフトウェア構造 理解しやすい中間レベルのソフトウェア構造 コンポーネントの基盤として、多くのソフトウェアシステムで利用できる中間レベルのソフトウェア構造…
§6 関数型プログラミング プログラミング以前から存在する(1930年代の Alonzo Church のラムダ計算) 関数型言語の変数は変化しない 並行処理の問題は可変変数がなければ発生しない 変数が変更するコンポーネントと不変のコンポーネントを分離して、可変コン…
§5 オブジェクト指向プログラミング オブジェクト指向設計とは何でないか 関数とデータの組み合わせ o.f() vs f(o) - オブジェクト指向が生まれる前からやってる 現実の世界をモデル化 - 何を言っているんだお前は カプセル化 境界線の外からはデータが見え…
第二部 プログラミングパラダイム パラダイム ≒ プログラミングの方法 3つのプログラミングパラダイム §3 パラダイムの概要 3つのプログラミングパラダイム 構造化プログラミング オブジェクト指向プログラミング 関数型プログラミング パラダイムのやってい…
表題の通り §2 2つの価値 プログラマーがステークホルダーに提供する2つの価値 振る舞い 構造 振る舞い 多くのプログラマーが価値だと思いこんでいるもの 機能仕様書とか要求文書とか 構造 = アーキテクチャー 振る舞い = ソフトウェアを簡単に変更できる手…
以前からちょっとずつ読んでいたけど、そのまとめメモ このメモもちょっとずつ更新予定 Clean Architecture 第一部 イントロダクション 正しいソフトウェア 少ない人数でソフトウェアを動かせる 少ない人数で保守・開発できる §1 設計とアーキテクチャ 設計…
表記のとおりです。 1ヶ月くらいかかっちゃいました。 Amazon.co.jp: すごいHaskellたのしく学ぼう!: Miran Lipovača, 田中 英行, 村主 崇行: 本amazon.co.jp 内容的にはAmazonのカスタマーレビューが詳しいですが、自分なりに書くとこんな感じです。 Funct…
このようなリストに対する標準的な再帰パターンでは、再帰を明示的に書くよりも、畳込みを使うほうがよいでしょう。そのほうが読みやすく理解しやすいからです。foldrの呼び出しは誰が見ても畳み込みですが、明示的な再帰を読むには考える時間が必要です。 …
第四章 再帰が重要な理由 問題を大きな問題からより小さな問題に分解する これ以上分けられない基底部まで分解する 基底部では解を明示的に定義する 大きな問題は関数を自分自身に再帰的に適用することで部分問題を再帰的に解いていく 最終的に解を部分的な…
表記のとおりです。 一応、簡単なHaskellのプログラムは書けるかもしれないような気がするようになりました。 第一部のあたりは具体的にプログラムを書きつつ遊ぶことができるので、それなりに身につく感じがします。ただ、内容的には深堀りはしていないので…
第10章 エンティティ 変数 型コンストラクタ データコンストラクタ フィールドラベル 型クラス クラスメソッド モジュール定義 基本的な形 module Repository where 特定のエンティティのみエクスポートする module Repository (findById, save) where デー…
単なる読書メモ 代数的データ型 定義の仕方1 - 構造体っぽい ラベルなしコンストラクター -- Student型の定義 data Student = Student String String -- インスタンス化 student = Student "Paul" "Smith" -- パターンマッチ printStudent:: Student -> IO()…
単なる読書メモ 無名関数 書き方 \n -> n * n 使い方 map (\n -> n * n) [1,2,3,4] 関数合成 書き方 before lineCount:: String -> Int lineCount s = length $ lines s after lineCount:: String -> Int lineCount = length . lines 部分適用 例:5の倍数を…
『ふつうのHaskell』の読書メモ 標準の関数まとめ 関数 型 動作概要 == a -> a -> Bool 第一引数と第二引数を比較した結果を返す lines String -> [String] 改行文字コードで区切ってリストに変換 words String -> [String] 単語に分解する length [a] -> In…
単なる読書メモ 正規形 第一正規形(1NF) 第二正規形(2NF) 第三正規形(3NF) ボイスコッド正規形(BCNF) 第四正規形(4NF) 第五正規形(5NF) 第六正規形(6NF) 高いレベルの正規形は、それより低次の正規形の要件を満たす 設計時に目指す目安はBCNFあるいは5NF 2NF…
やっとコップ本読み終わった。 700ページというサイズに途中ダラダラ読んでしまったため、ほとんど内容が頭のなかに残ってない。長い本は1日100ページとか理解はどうでもいいからスピードを高めつつ読みたい(どうせ後でまた読みなおすので)。 とりあえず、覚…