久しぶりのえんとりー
めがねのひとに触発されてオレオレポリシー。
Re:Catalystアプリオレオレポリシー
仕事も個人もCatalystなんで、特にポリシーは分けてない。
会社のみんなも俺のポリシーでやればいいのに。
・MyApp::Pluginとかは作らない。
だってそのアプリでしか使わないならMyApp.pmに書けば良いじゃない。
もしMyApp.pmが長くなってきたらそのとき考える。
他のアプリでも使いそうだったら全部C::P::Hogeにする。
CPANにあげなくてもC::P::Hogeにする。
そういうのはrun_script.plの中でPERL5LIBに足してパス通す。
・設定系は全部myapp.yml
connect_infoもフォームのセレクトボックスも、
DBには入れたくないけどハードコードしたくないのは全部myapp.yml
・myapp.ymlはリポジトリに入れず、myapp.yml.orgを入れる
myapp.ymlは動いてる環境に合わせて。myapp.yml.orgはデフォルト
更新があったらスクリプト使ってマージ。
・データベースの更新用にscript/updatedb.plとsql/update/を用意
sql/update/の下にSQLファイルを作って、updatedb.pl走らせればおk
・テンプレートはDreamWeaverで編集
タグとか打ってらんねーよ!
・ログは全部C::P::Log::Dispatch
・開発サーバは./script/run_script.pl ./script/myapp_lighttpd.plで
・本番サーバは./script/myapp_fcgi_starter.pl startで。
場合によっては/etc/rc.d/init.d/にシンボリックを置く
まぁ こんな所かな?
とりあえず「catalyst.pl MyApp」でできない部分。
MyApp/
+html_template/ # DreamWeaverで作ったテンプレート用ディレクトリ
+Templates/ # ttのファイルに変換するコマンド使って全部変換する
index.dwt # DreamWeaverのテンプレート これを元にheader.ttとfooter.ttを作る
+static/
+css/
+images/
+lib/
+MyApp/
+CRUDBase/ # C::P::CRUD使うときの継承元
+Common.pm
+Groups.pm
+Main.pm
menu.yml # 外に出してないC::P::MenuMaker用の設定ファイル
myapp.yml # myapp.ymlはsvnに入れない
myapp.yml.org # こっちを入れる
+run/ # ログ・セッション・キャッシュ等のファイル置き場
DEBUG.MyApp # 本番時は/var/run/myappや/var/log/myappに出す
session
+script/
dbic_console.pl # MyApp::Schemas::MyAppを使ってDBICでほにゃる用のコンソール
grant.pl # updastedb.plの部品
myapp_lighttpd.pl # typesterさんのC::H::Lighttpdを元にprocsとか設定できるようにしたやつ
myapp_fcgi_starter.pl # ./myapp_fcgi_starter.pl [start|stop|restart|status]でFCGIプロセスを立ち上げる
run_script.pl # /usr/lib/やMyApp/libに無いけど取り込みたいモジュールのパスを通す。startup.plみたいなもの?
updatedb.pl # MyApp/sql/update/以下のreleaseほげほげのファイルを使ってDBをアップデートする。
updateseq.pl # updatedb.plの部品
+sql/
base.sql # ベーススキーマ update以下にファイルが貯まってきたらここに統合
+update/ # SQLのアップデートファイルがいっぱい
release-YYYY-MM-DD-NN.sql
+template/ # TTのテンプレート置き場 root以下は嫌いです。html_templateからスクリプト使って吐き出される。
MTのバージョンあげたいなー
デザインも変えたいなー
というかブログ放置するならなくしちゃえばいいのにって思った。

コメントする