mike-neckのブログ

JavaかJavaFXかJavaEE(なんかJava8が多め)

読書メモ

クリーンアーキテクチャーの読書メモ(8)

§9 LSP: リスコフの置換原則 1988年 Barbara Liskov S 型のオブジェクト o1 の各々に、対応する T 型のオブジェクト o2 が 1 つ存在し、 T を使って定義されたプログラム P に対して o2 の代わりに o1 を使っても P の振る舞いが変わらない場合、 S は T の…

クリーンアーキテクチャーの読書メモ(7)

§8 OCP: オープン・クローズドの原則 1988年 Bertrand Meyer ソフトウェアの構成要素は拡張に対しては開いていて、修正に対しては閉じていなければならない(『アジャイルソフトウェア開発の奥義』) = ソフトウェアの振る舞いは既存の成果物を変更せずに拡張…

クリーンアーキテクチャーの読書メモ(6)

第三部 設計の原則 クリーンなコードを書くための原則「SOLID 原則」 変更に強い中間レベルのソフトウェア構造 理解しやすい中間レベルのソフトウェア構造 コンポーネントの基盤として、多くのソフトウェアシステムで利用できる中間レベルのソフトウェア構造…

クリーンアーキテクチャーの読書メモ(5)

§6 関数型プログラミング プログラミング以前から存在する(1930年代の Alonzo Church のラムダ計算) 関数型言語の変数は変化しない 並行処理の問題は可変変数がなければ発生しない 変数が変更するコンポーネントと不変のコンポーネントを分離して、可変コン…

クリーンアーキテクチャーの読書メモ(4)

§5 オブジェクト指向プログラミング オブジェクト指向設計とは何でないか 関数とデータの組み合わせ o.f() vs f(o) - オブジェクト指向が生まれる前からやってる 現実の世界をモデル化 - 何を言っているんだお前は カプセル化 境界線の外からはデータが見え…

クリーンアーキテクチャーの読書メモ(3)

第二部 プログラミングパラダイム パラダイム ≒ プログラミングの方法 3つのプログラミングパラダイム §3 パラダイムの概要 3つのプログラミングパラダイム 構造化プログラミング オブジェクト指向プログラミング 関数型プログラミング パラダイムのやってい…

クリーンアーキテクチャーの読書メモ(2)

表題の通り §2 2つの価値 プログラマーがステークホルダーに提供する2つの価値 振る舞い 構造 振る舞い 多くのプログラマーが価値だと思いこんでいるもの 機能仕様書とか要求文書とか 構造 = アーキテクチャー 振る舞い = ソフトウェアを簡単に変更できる手…

クリーンアーキテクチャーの読書メモ(1)

以前からちょっとずつ読んでいたけど、そのまとめメモ このメモもちょっとずつ更新予定 Clean Architecture 第一部 イントロダクション 正しいソフトウェア 少ない人数でソフトウェアを動かせる 少ない人数で保守・開発できる §1 設計とアーキテクチャ 設計…

『すごいHaskellたのしく学ぼう』を読んだ

表記のとおりです。 1ヶ月くらいかかっちゃいました。 Amazon.co.jp: すごいHaskellたのしく学ぼう!: Miran Lipovača, 田中 英行, 村主 崇行: 本amazon.co.jp 内容的にはAmazonのカスタマーレビューが詳しいですが、自分なりに書くとこんな感じです。 Funct…

『すごいHaskell』第6章メモ

このようなリストに対する標準的な再帰パターンでは、再帰を明示的に書くよりも、畳込みを使うほうがよいでしょう。そのほうが読みやすく理解しやすいからです。foldrの呼び出しは誰が見ても畳み込みですが、明示的な再帰を読むには考える時間が必要です。 …

『すごいHaskellたのしく学ぼう!』読書メモ〜4章

第四章 再帰が重要な理由 問題を大きな問題からより小さな問題に分解する これ以上分けられない基底部まで分解する 基底部では解を明示的に定義する 大きな問題は関数を自分自身に再帰的に適用することで部分問題を再帰的に解いていく 最終的に解を部分的な…

『ふつうのHaskellプログラミング』読み終わった

表記のとおりです。 一応、簡単なHaskellのプログラムは書けるかもしれないような気がするようになりました。 第一部のあたりは具体的にプログラムを書きつつ遊ぶことができるので、それなりに身につく感じがします。ただ、内容的には深堀りはしていないので…

『ふつうのHaskell』第10章〜第11章

第10章 エンティティ 変数 型コンストラクタ データコンストラクタ フィールドラベル 型クラス クラスメソッド モジュール定義 基本的な形 module Repository where 特定のエンティティのみエクスポートする module Repository (findById, save) where デー…

『ふつうのHaskell』第九章

単なる読書メモ 代数的データ型 定義の仕方1 - 構造体っぽい ラベルなしコンストラクター -- Student型の定義 data Student = Student String String -- インスタンス化 student = Student "Paul" "Smith" -- パターンマッチ printStudent:: Student -> IO()…

ふつうのHaskell 8章

単なる読書メモ 無名関数 書き方 \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 2章〜3章

『ふつうのHaskell』の読書メモ 標準の関数まとめ 関数 型 動作概要 == a -> a -> Bool 第一引数と第二引数を比較した結果を返す lines String -> [String] 改行文字コードで区切ってリストに変換 words String -> [String] 単語に分解する length [a] -> In…

データベース実践入門3章

単なる読書メモ 正規形 第一正規形(1NF) 第二正規形(2NF) 第三正規形(3NF) ボイスコッド正規形(BCNF) 第四正規形(4NF) 第五正規形(5NF) 第六正規形(6NF) 高いレベルの正規形は、それより低次の正規形の要件を満たす 設計時に目指す目安はBCNFあるいは5NF 2NF…

やっと読み終わった本と今後読んでいく本

やっとコップ本読み終わった。 700ページというサイズに途中ダラダラ読んでしまったため、ほとんど内容が頭のなかに残ってない。長い本は1日100ページとか理解はどうでもいいからスピードを高めつつ読みたい(どうせ後でまた読みなおすので)。 とりあえず、覚…