Skip to content

Instantly share code, notes, and snippets.

@cosmic-cowboy
cosmic-cowboy / things_to_do_with_new_mac.md
Last active February 14, 2016 05:53
Things to do with new Mac
@cosmic-cowboy
cosmic-cowboy / RDBMS解剖学 chapter8 トランザクション制御とMVCC.md
Last active August 29, 2015 14:01
RDBMS解剖学 chapter8 トランザクション制御とMVCC

テーマ

  • 二相ロックの効果
  • デッドロック
  • ロック以外の同時実行制御であるタイムスタンプを使った方法
  • 応用としてのマルチバージョン同時実行制御(MVCC Multi - Version Concurrency Control)

二相ロックの効果

通常のロック

@cosmic-cowboy
cosmic-cowboy / RDBMS解剖学 chapter1 データベースの基礎とディスクアクセス.md
Last active August 29, 2015 13:58
RDBMS解剖学 chapter1 データベースの基礎とディスクアクセス

目的

  • プログラムとしてのRDBMSのメカニズムを知ることで的確なRDBMSの活用方法を探る。
  • 主眼は実行エンジンの内部構造の概要を知る。
  • データベースを使うためではなく、データベースを使う際の一連の処理がデータベースエンジンの中でどのように解釈され、実行されていくのかを知る。

データベースの役割

  • 複数のアプリケーションが共有するデータの管理
  • データの格納構造を隠蔽、必要な論理構造だけを提供(カプセル化し、必要なインタフェースを提供って感じ?)
  • 多くのデータを格納
  • データへの同時アクセス、アクセスの効率化に対応
@cosmic-cowboy
cosmic-cowboy / 0_reuse_code.js
Created March 21, 2014 02:39
Here are some things you can do with Gists in GistBox.
// Use Gists to store code you would like to remember later on
console.log(window); // log the "window" object to the console

第5章 ソフトウェアで表現されたモデル

  • オブジェクト間の関連は、想像するのも描くのも簡単。大変なのは実装
  • 詳細な実装上の意思決定がモデル駆動設計を実現する上でとても重大
  • オブジェクト自体に目を向けつつも、詳細なモデル上の選択と実装上の関心事との間にある関係性を絶えず精査する
  • モデルを3パターンの要素に区別する
  • 3つの要素とは、「エンティティ」「値オブジェクト」「サービス」

関連

第2部 モデル駆動開発の構成要素

  • 実装を単純明快なものにしつつ、モデルと歩調の合った状態に保つためにはモデリングと設計のベストプラクテイスが必要
  • モデルと実装の協調が保たれ、互いがもう一方の効果を高めるようになるにはある種の意思決定が必要
  • 標準パターンの共有が齎す効果
    • 設計に秩序
    • チームメンバが互いの仕事を理解しやすく。
    • ユビキタス言語も成長する モデリングについて
  • 優れたドメインモデルを開発することは芸術である。
@cosmic-cowboy
cosmic-cowboy / ドメイン駆動設計 第1部 第3章.md
Last active December 17, 2015 12:09
第1部 第3章 モデルと実装を結びつける

第3章 モデルと実装を結びつける

  • ドメインエキスパートの作成したクラス図
    • ドメインの性質に忠実
    • モデルは知識をとらえていた
  • 実装する開発者
    • アプリケーションのコードと設計に対する洞察が全く得られない
    • モデルは実装のための指針を提供していない
  • モデルについて
  • 動作するソフトウェアの開発を直接支援しないなら、紙に書かれたモデルは何の役に立たない
@cosmic-cowboy
cosmic-cowboy / ドメイン駆動設計 第1部.md
Last active December 16, 2015 11:19
第1部 ドメインモデルを機能させる

第1部 ドメインモデルを機能させる

  • ドメイン駆動開発の基本的な目標を提示
  • 本書で使われる用語の定義
  • コミュニケーションと設計を推進するためにドメインモデルを使用するということがどういう意味を持つのか、見ていく。

モデルとは

  • モデルとは簡素化
  • モデルとは当面の問題を解決する上で関連する側面を抽象化し、それ以外の詳細を無視するという現実へのひとつの解釈
  • プログラムは使用するユーザの何らかの活動や関心と関係がある
  • ユーザがプログラムを適用するこの対象領域がドメイン
@cosmic-cowboy
cosmic-cowboy / ドメイン駆動設計 序文とまえがき.md
Last active December 16, 2015 11:18
ドメイン駆動設計 序文とまえがき

ドメイン駆動設計

DDDを駆動する3つの原則

  • コアドメインに集中する
  • ドメイン、ソフトウェア実践者による共同作業でモデルを探求する
  • 境界づけられたコンテキストの内部でユビキタス言語を語る

これらは極めて簡潔だが、これらを成し遂げるのは容易ではない。
これらを成し遂げようとした際にぶつかる障害に対する解決策が本書で語られるパターンである。
パターンが一体となってDDDが定義され、どうやってDDDが機能させるかが示されている。