まとめ:
http://kashewnuts-tech.blogspot.jp/2012/09/pyconjp2012.html
2012/09/15(土)
mitsuhikoの基調講演
Cango Cult Programming
使えるDjango1.4
SO101
djangoproject.jp
つかわれてる
Disqus
Instagram
写真
Mozilla
- >Pyramidになる?
bitbacke
requestをURL dispatcher
適したViewに渡す
ルースカップリング
→互いに実装を知らなくていい
迅速に開発
DRY
暗示的より明示的に(Pythonの思想)
一貫性(使用感やデザイン)
オブジェクト管理インタフェース
フォーム処理ライブラリ
管理用ビュー
オブジェクト管理インターフェイス Admin
installed アプリをやらないと管理サイトで認識されない。
CRUDができる。
Zinniaブログエンジン
クイックパブリッシング 簡易投稿
1.0以降
1.4.1が安定版最新
特定環境へのデプロイが楽
開発の運用 DEBUG
True, Falseを切り分けるのはハードコードしない
southなどをどうせ使うのに書くのがめんどくさい
テンプレ化する機能
→templateオプション
テンプレ化されたのはディレクトリになっている
django/conf/project_templateの代わりに自前のテンプレートが使える
django-skel + S3環境
herokuS3を想定している
fab bootstrap
運用までが面倒だがテンプレート
特定環境への
apps
アプリケーションを入れておく
django-skel
アプリケーションはappsとは別に入れる
Django1.4は
{% elif %} だけじゃない
wsgiの設定もskelでできる?→出来ると思う。
gunicornの設定はあった。
context
.pyファイル
Blender2.63
Pytonは本当にBlenderの役に立っているか?
BLUG.jp
Sphinxが好き
神戸ITフェスティバル10/5,6
神戸ITウィーク 9/29-10/7
自分自身のゲームの3DCGソフトだが、
倒産し、債権者にソースコードが渡った。
GPLラインセンス
3DCG統合環境
FreeBSDで動作する。
モデリング、レンダリング、アニメーション、ビデオ編集
キャラクター、映画を作りたい
Pythonを使いたい→少ない
Pythonが入ってるのを知らない。
●Pythonを使っている場面
SCons(エスコンス)
→ビルドツール
→2.33から導入された。今まではautoconfがめんどくさかった。
Add-on
→Boltは形状をナットなど選べる
→画面上で操作して画面で反映されなかった
→2.50から反映されるようになった。
BPy
→Blender Python
標準Add-on。最初から入っている。
リンクしたりアップロードしてたりする。
Release Scripts Themes
Text Editor(テキストエディタ)が入っている。
Blender wikiを読む
Add-onで楽ちん。
実際に役に立っている。
●現在の状況
BPy事件簿
→バージョンが一つ上がりましたよ。0.01がメジャーバージョンアップに匹敵。
C++で書かれている
2.53→2.54でメソッド名Do〜がまるまる変わった。
2.5からPython3に対応した。
現在と将来
→
日本では個人で映像制作
アセット管理、バージョン管理
2.63aは2.64でも変更点がある。
15:30-
unittestをtesting
古川出来るエンジニア
CD, CI
継続的デリバリー、継続的インテグレーション
バージョン管理を含めるとCD
unittestで楽を
Python testing tools taxonomy
Wiki→
http://pycheesecale.org/wiki/PythonTestingToolsTaxonomy
unittests
unittest2
2.7
unittest2がunittestsに取り込まれた。
doctest
コメントのところに
py.test nose
同じような機能
指定したディレクトリの下にあるTestクラスを実行してくれる。
testoob
→unittestの機能拡張、正規表現。XMLが吐ける。
python-subunit
testools
testosterone
→テストステロン?
AssertEqual
第一引数は関数、第二引数は結果
python-subunit
unittestの機能拡張
他の言語を使っても呼び出せる
シェルスクリプトの結果が帰ってくる。
CUIを提供する。
結論
unittestを使いましょう!
拡張じゃなくて素直に使う。
1つのパッケージについて1つのテスト。
更に必要なら細分化する。
makeファイルにテストするコードを書いておく。
細かい処理の結果を取得していく。
細かくテストコードを分けていく。
・Python製ビルドツールのススメ
メタビルド
cmake
DSL
ツールに合わせた特定の記法を選ぶ
ant, maven
→Javaではなく、XMLでかく。(external DSL)
Shinx
→ RestructuredText
デフォルトはmake
DIR HTML
makeの構文やWindowsのバッチの構文を知らないといけない
→Scons(すこんす)を使う
env.commandが実行される
RestからHTMLが生成される
MacOSXであろうが、同じコマンドで実行できるのでハンディ
waf
オブジェクトにどんどんつめていく
関数を定義されてそれを実行する
wscript
wafとかScons
もともとC言語をコンパイルためのシステムだった。
waf
→公式はあるが他の資料はない・・。
node.jsは以前はwafでビルドされていた。
ネストされたディレクトリは使えるかどうか?
makeを意識したので、makeでできることはSconsでできる。
bin/scripts
wafは一個だけ置けばいいよ
バージョン管理に登録しておけばみんなで共有できる
wscript
waf configure
findプログラム
pep8, pyflakes, nose, fabrik をインストールの確認
make configure
一つ一つを関数として定義すればいい。
waf doc
waf test
doc/ディレクトリはSphinxで管理されている。
pep8, pyflakesで構文の確認。
ファイルの最後の空行確認, 複数のimport
緑じゃなくて赤文字で出てくれる。
リターンコードが0以外でかえるので、Jenkinsで。
-
- with-xunit
でやればXMLを履いてくれる。
CIでプロジェクトを回せばテスト結果の推移が見られる。
関数でルールを定義してやれば。
Solr
全文検索サーバー
パーツ、レシピ、egg(規約?)モジュール単位でサポートされている。
buildout
毎回いじらないで。
binの下にダウンロードされる。virtualenvでパスが通る。
レシピのURLを指定すればそこからインストールできる。
機械的にまとめることができる。