1日目の参加メモは以下にあります。
PyCon APAC 2013 - Day 1 参加メモ - heki1224の適当な日記
写真撮影
http://apac-2013.pycon.jp/ja/
集合写真中央右端の方にいます。
Keynote
・Pythonおそいんだけど?
→CPUそんなに使ってないでしょ?
→原因はIOとかメモリだって。
→もしCPU使い切ってても
→CythonとかPyPy使えばいいじゃん
→CPU使うところはC言語使えばいいじゃんよ。
・マルティスレッド対応してないんだけど?
→pythonは並列処理も並行処理も対応してるよー
・動的型付けよくないと思うんだけど?
→Duck typingのお作法を身につけないとだめだよ
Discipline and the zen of duck typing(是非よめ!)
→Duck typingはインターフェース指向と同じだと思うよー
type()関数とか、isinstance()とか避けようね
→型エラーはコンパイルで出して欲しいんだけど
→それおかしくね?
→チェックしてくれる様々なツールがあるんだから、それ使おうぜ
→名前のエラーは大体2.5%くらい(Dropboxでは)
→テスト書け
→自動で動かせ
dropboxだと1515くらいある
PofEAA and SQLAlchemy
Engine
DataObject
Session
PofEAA本は読んでおくといいよー
・SQLAlchemyはPofEAA実装をしてます
(振る舞い
・Unit of Work
domain logicとentity logicを分離する
・Object states
transient
pending
persistent
detached
expire
scoped_session(普通はこっちを使う)
threadidをスコープとする
request単位でスコープとすることもできるよ
・Identity map
・Lazy load
1:nのn側が呼びされた時に初めてSELECTされる。
(構造
(データソースアーキテクチャパターン
table data gateway
row data gateway
active record
row data gateway with domain logic
data mapper
(講演者の考え
table data gatewayは複雑なSQLがあるなら採用する
active recordが悪者扱いされるのは
いいテーブル設計といいクラス設計は別物
Embedded Valueを使うと解消できるものも多い
table data gatewayとactive recordを組み合わせると良いと思うよ
serviceレイヤ作ってみる
バランスとしては
Simple Active Record + Medium sized classes + Service
Webセキュアコーディングの基本
プレゼン資料参照