endeworks での WebApp の作り方
エンド ワークス
ではなくて
エン「デ」ワークスです。
ENgineer DEsign works
エンジニア募集中です。
事前に
特別なことをやっているわけではない。
あぁ、標準サイズなんだなぁと実感してもらえれば幸いです。
endeworks での開発
開発サーバは特に用意していない。
エンジニアのMacBookの中に全部収まっている。
テスト
t/* 以下にテストコードがある。
Test::FITesque が最近のはやり。
Deploy
git のマスターリポジトリから git pull するだけ。
特にツールは使っていない。
FCGI
daemontools でプロセス管理
- プロセス監視機能が入っている svscan
- 気づかずサービス停止という危険性が少ない
- コマンドでのプロセス管理がかんたん
- たとえば
- 複数のプロセスを同時に再起動できる
svc -t /etc/services/*
キャッシング
ORM では行わない
API で行う
人間が明示的に保存削除できるようにしている
pk を key として、行の内容を Value とした kv strage にキャッシング
複数行をキャッシュしたい場合は、pk の配列だけキャッシュする
Registry モジュール
key-val store するだけの singleton モジュール
MooseX::Singleton 使ってたきがするなー。
そのた
- Result 定義をもとにテーブル生成
- DBIC の deploy 機能を使っている
- Form の作成は HTML::FormFu を利用
- all-in-one 過ぎて生成される HTMLL に融通がきかない
- Validator だけ使うのが今のハヤリ
- all-in-one 過ぎて生成される HTMLL に融通がきかない
Pixis::API::*
Model を抽象化してアプリケーションロジックを加えたもの
必ず共通で
Pixis::API::Base::DBIC
を extends している
DB のキャッシュを橋渡しする
MooseX::WithCache
キャッシングのバックエンドを指定すればキャッシュが取り扱うことができるようになる
P::A::B::DBIC
find / update / delete / search
WithCache しているので find では pk に対して Cache を探したりする
Pixis::Registry
PixisRegistry->set(schema => master => $schema);
pixisRegistry->get(schema => 'master);
本体自体はカンタンな構造
Pixis
最新版は
branch roller で開発中
master は今は古いよ