Hatena::Groupcatalyst

dann@catalyst このページをアンテナに追加 RSSフィード

2008-02-13

catstarter

22:57 |  catstarter - dann@catalyst を含むブックマーク はてなブックマーク -  catstarter - dann@catalyst  catstarter - dann@catalyst のブックマークコメント

自分用にカスタマイズしたのは、テンプレートとかも含めて、明らかにstarterの範囲を超えているので、テンプレートとかは別に切り出して管理しようかなと。今のところ、素直にCatalystの構成にあわせて、以下のような形にしようかなぁと。

catastarter.pl
catshare/
  Capfile
  config/
    templates/
  root/
    templates/
    static/
      css/
      js/
      images/
  lib/

ただ、一つのファイルにまとまっているのが、starterの魅力でもあるような気も... そうすると、上記構成からstarterスクリプトを自動生成か、と段々違う方向へ...

Rails to Catalyst

22:25 |  Rails to Catalyst - dann@catalyst を含むブックマーク はてなブックマーク -  Rails to Catalyst - dann@catalyst  Rails to Catalyst - dann@catalyst のブックマークコメント

Railsでいいなぁと思うことを全部Catalystでもやりたいなぁと思っていた。大体、Catalystでも殆ど実現できるようになったんじゃないかなぁと。Railsだとデフォルトで全部入りだから、自分で組み合わせる必要ないのだけれど、Catalystだとプラグイン含めて組み合わせを考えないといけない。

これは、欠点のようで欠点でない。時代には流行があって、少し時間がたつと、このORマッパだめだよねとかそういうことになる。そんなときでも、Railsに比べればずっと移行はしやすいと思う。全部がプラグインみたいな仕組みは、自由度が高すぎるというのはあるけれど、その自由度があるから息の長いフレームワークになるんじゃないかという気がする。

これは、Perlだから成り立つ仕組みでもある。この何でもプラグインみたいな仕組みは、CPANと相性がとてもよくて、CPANがあるからCPANのモジュールをベースに拡張がどんどんされていく。ここが強烈で、それがPerlのフレームワークらしいところなんじゃないかと思う。時代にあわせて進化していける仕組みがあるというのが一つの大きな魅力になっている。

Railsの規約とかDeploymentとか、すばらしいところだけを盗んできて、後はCatalystCPAN使ってWebアプリを作るっていうのが、一番やりたいことを短時間でできて、将来にわたって割と使えるものになるんじゃないかなぁと思っています。そんなこんなで、Catalystとたわむれている今日この頃です。

# こう考えると、Rubyにはgemsがあるけれど、CPANほど成熟していないから、Railsが生まれたんじゃないかという気がする。

application serverのIPの設定の共有@capistrano

21:37 |  application serverのIPの設定の共有@capistrano - dann@catalyst を含むブックマーク はてなブックマーク -  application serverのIPの設定の共有@capistrano - dann@catalyst  application serverのIPの設定の共有@capistrano - dann@catalyst のブックマークコメント

erbのテンプレートとRoleに定義する部分で共有したかったのだけれど、Rubyを忘れているので全然書けなかった。結局、以下のように書けばよいだけだった。erb中ではbindingで変数がbindされるので、これで参照できる。

appserver_ips = ["192.168.0.30", "192.168.0.31"]
webserver_ips = ["192.168.0.30"]
dbserver_ip = "192.168.0.30"

# Role definition
role :app, *appserver_ips
role :web, *webserver_ips
role :db,  dbserver_ip, :primary => true

starterにも反映済み。これで、appserver_ipsの配列中にIPを追加すれば、mod_proxy_balancerの設定ファイルに、アプリケーションサーバーのIPが設定されることになる。これで、また一つ自動化された。

後はLVSとかの設定ファイルの生成とかやってくのもいいのかもなぁ。まぁ、自宅サーバーで使う必要は全くないのだけれど。それにしても、capistranoによる自動化は強力だなぁ。

migration

21:37 |  migration - dann@catalyst を含むブックマーク はてなブックマーク -  migration - dann@catalyst  migration - dann@catalyst のブックマークコメント

Railsのmigrationの機能をまんま使うようにすればいいんじゃないかという気がしてきた。Table定義もそっちに移すかなぁ。Table定義をRubyで書くというのはけど微妙かなぁ。Railsのdatabase.ymlとCatalystyamlファイルにDB定義を2種類書くっていうのも、微妙な気もするし。要検討。

ゲスト



トラックバック - http://catalyst.g.hatena.ne.jp/dann/20080213