Skip to content

Instantly share code, notes, and snippets.

@wm3
wm3 / 11-4.md
Last active August 29, 2015 14:04
11-4.md

11.13 表明を使う

4種類の使い方

  • 正しいソフトウェアを書くのを手助けする
  • 文書化の支援
  • テスト・デバッグ・品質保証をサポートする
  • 耐障害性をサポートする

表明を正しいソフトウェアを書く道具として使う

@wm3
wm3 / 11.md
Last active April 1, 2020 09:02
11章 契約による設計:信頼性の高いソフトウェアを構築する 1

11章 契約による設計:信頼性の高いソフトウェアを構築する

テーマ*

  • 信頼性を確保するための手法として
  • 「表明」の概念を説明
  • キーコンセプトは「契約による設計」
  • 例外処理は12章

11.1 基本的な信頼性のメカニズム

@wm3
wm3 / 14.md
Created June 10, 2014 16:55
14章 継承入門前半

14章 継承入門

継承の意味 … 再利用性と拡張性の向上

14.1 多角形と長方形

多角形クラス (POLYGON)

  • クラス定義(の抜粋)
  • rotate ルーチン (メソッド)
@wm3
wm3 / 11.md
Created June 1, 2014 07:51
11章 クラスタリングによる性能向上

11〜12章は今までと少し趣の異なる並列化の話

データベースを適用する上でのポイント

DBを適用する上でのポイント

  • サイズ/性能に余裕を持たせる必要
  • (なぜここでこういう話が?)

複数データベースの連動

@wm3
wm3 / 3.md
Last active August 29, 2015 14:00
3章 SQL から演算へ

3章SQLから演算へ

この章のテーマ

構文解析したツリー〜実行の間の作業…の前半

論理プランと物理プラン

「関係代数」

@wm3
wm3 / 24.md
Last active December 16, 2015 04:59
24-25章.md
  • 今までの説明 → テストの可読性、 有用な診断メッセージ
  • 今回 → 関係あるコードが壊れてる時だけ失敗させる

この章の趣旨を一言で表すと…

「何が起こるべきなのかを正確に指定せよ。余計なことを一切指定するな」

情報の表現ではなく中身をテストする

例: 顧客を検索するためのクラスのモック

@wm3
wm3 / 14-15章.md
Last active December 14, 2015 18:09
実践テスト駆動開発第2回

14章 スナイパーがオークションで落札する

  • 落札する機能を追加する
  • この際に、以前のリファクタリングが成果を上げる

まずは失敗するテストから

エンドツーエンドテストの改善

  • テスト項目
@wm3
wm3 / 1章.md
Last active December 14, 2015 03:09
実践テスト駆動開発第1回

1章 テスト駆動開発のポイントとは?

この章の概要

開発における本書の基本的な考え

  • 開発における「予期せぬ変化を予期する」 (anticipate unanticipated changes)
  • 開発に「入れ子になったフィードバックループ」を形成する
  • ソフトウェアの「 内側と外側の品質」
@wm3
wm3 / gist:4465225
Created January 6, 2013 04:34
The Art of Multiprocessor Programming 読書会 第五回 三〜四章まとめ

3 Concurrent Objects – 並行オブジェクト

https://gist.github.com/3304936

並行オブジェクトにおける correctness の解説(3.1 ~ 3.5)

  • Quiescent consistency, Sequential consistency, linearizable
  • (最適化のために、並行オブジェクトは実際に実行されたタイミングとのズレが生じる。それをどこまで許容するかの線引きを行う、という認識)

付属の特性 (3.6、3.7)

@wm3
wm3 / gist:4463523
Last active December 10, 2015 16:48
The Art of Multiprocessor Programming 読書会 第五回 九章

Linked Lists: The Role of Locking

9.1 Introduction

データ構造への各処理をロックでラップした並列化対応

  • coarse-grained synchronization (粗い同期)と呼んでいる
  • スケーラビリティがあまり良くない