Skip to content

Instantly share code, notes, and snippets.

@wm3
wm3 / amp1-1.md
Created July 4, 2012 17:38
Art of Multiprocessor Programming 読書会 第一回 一章前半

1 Introduction ― イントロダクション

この本のフォーカス

  • 共有メモリ上のコミュニケーションを通じた、
  • 複数プロセッサのプログラミング

非同期処理の難しい所

  • 何の前触れも無く中断されたり遅くなったりして予測できない
  • 本書では原則と実践の両面から解説をする
@wm3
wm3 / gist:3329008
Created August 12, 2012 02:09
Art of Multiprocessor Programming 読書会 第二回 四章後半

4.2 Register Constructions – レジスタの構築

全てのタイプのレジスタは計算可能性の面では同じということをこの節で説明

  • レジスタ構築の流れ(図4.5)

コーディングルールの解説

  • 整合性の特性をフィールド名の prefix で表現: safe なら (s_), regular なら (r_), atomic なら (a_)
tdd
@wm3
wm3 / gist:3768533
Created September 23, 2012 02:00
The Art of Multiprocessor Programming 読書会 第四回 七章後半

7.6 A Queue Lock with Timeouts

tryLock() の実装をしたい

  • BackoffLock では簡単
  • queue lock での実装は難しい

タイムアウト付 CLHLock (図7.15、7.16)

  • 構成
  • QNode#pred フィールド
@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 (粗い同期)と呼んでいる
  • スケーラビリティがあまり良くない
@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 / 1章.md
Last active December 14, 2015 03:09
実践テスト駆動開発第1回

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

この章の概要

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

  • 開発における「予期せぬ変化を予期する」 (anticipate unanticipated changes)
  • 開発に「入れ子になったフィードバックループ」を形成する
  • ソフトウェアの「 内側と外側の品質」
@wm3
wm3 / 14-15章.md
Last active December 14, 2015 18:09
実践テスト駆動開発第2回

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

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

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

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

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

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

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

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

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

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

3章SQLから演算へ

この章のテーマ

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

論理プランと物理プラン

「関係代数」