EuroPythonについて
EuroPythonは,
EuroPythonは,
筆者が参加した EuroPython 2011は6月20日?26日の6日間,
なお,
Pythonの海外イベントの雰囲気を知ってもらい,
travel: 旅行
本カンファレンスには,
項目 | 金額(円) |
---|---|
EuroPython | 23,245 |
ホテル宿泊費(6泊) | 34,819 |
往復航空券 | 82,500 |
航空保険料・ | 36,600 |
イタリア出入国税等 | 3,700 |
成田空港施設使用料 | 2,040 |
成田旅客保安サービス料 | 500 |
手配旅行に係る取扱料金 | 5,250 |
合計すると188,654円になります。実際のところ,
往路は成田-ローマ-フィレンツェとすべて空路で移動しましたが,
EuroPython 2011
keynote: 基調講演
EuroPython 2011は,
GOOD API DESIGN: 優れたAPIデザイン
最初に講演したのはAlex Martelli氏です。
Alex Martelli氏は,
本講演の資料と動画はGOOD API DESIGNで公開されています。
最悪のAPIデザインのアンチパターン
最悪なのはAPIを提供していないことであり,
- stackoverflowにスクレイピングの質問ばかり繰り返される
- スクレイピングが増えることで,
システムにレンダリングの負荷が増える - 表面的なちょっとした変更がユーザのアプリケーションを動かなくしてしまう
- 自分たちの競合に参入するきっかけを与えてしまう
プログラマの出発点はここからです。
- そうだ! APIを提供しよう
- 使いやすくてシンプルなAPIにしよう
- ドキュメントをちゃんと書いて,
更新し続けよう
デザインのないAPIは, APIではない
その次に良くないことは,
- 面倒になって改善しようとしなくなる
- (変更によって)
既存ユーザのアプリケーションを動かないようにしてしまう - 新旧の2つの実装を提供すると,
メンテナンスの負荷が増える
この問題に立ち向かうアプローチは次の2つの視点から考えます。
- どう使いたいかを考える
- 自分が利用者だったら何をどうしたいだろうか
- (とは言っても)
単純に利用者の立場だけで考えるわけでもない
- いまの実装を忘れる
- 少なくとも2つ3つの実装を考えて,
その中から共通項を探す - 何が変更されると困ったことになるか
- APIにずっと残っている中核は何か
- 少なくとも2つ3つの実装を考えて,
APIのデザインは大変ではあるものの,
APIのデザイン
APIをデザインするにあたり,
- システムの論理的なアーキテクチャの低レベルAPIを1つだけ公開する
- 低レベルAPIは使い方が分かり難くても,
パフォーマンスが良くデバッグしやすいなら構わない - その他のAPIは低レベルAPIから構成する
(システムの内部処理を使わない)
APIの変遷
優れたAPIを設計してもユーザに新しいAPIへ移行してもらう必要があります。大きな変更はユーザを離反させることにつながるため,
- 新旧APIが動作するリリースを1つ以上提供する
- チュートリアルとドキュメントを準備する
- 旧APIに新しい機能を追加しない
一貫性のないAPIデザインのアンチパターン
引数の順番や命名規則などが一貫性のないものになってくるときがあります。
- 人は時間と共に考え方が変わるから
- もともとの要件とは違うようになったから
- 別のメンバーが違う方法で実装したから
そんなときにデータディクショナリを作ると良いと提案されていました。それは,
簡単に言うと,