ローカル環境でApacheリバースプロキシ+Plack

plackupで起動したアプリケーションをApache経由で動かしてみたので備忘録。
とても簡単。Macにて設定。

ローカルでのテストのため、まずhostsへ以下のように「apache_test」を追記

127.0.0.1       localhost apache_test

次にApacheの設定。
「/etc/apache2/httpd.conf」で以下の記述が有効になっているのを確認。

LoadModule proxy_module libexec/apache2/mod_proxy.so

確認ができたら同ファイルに以下を追記しApacheを再起動 (別ファイルに記述しIncludeしてもよい)

ProxyPass / http://apache_test:5000/
ProxyPassReverse / http://apache_test:5000/

最後にアプリケーションを起動する際にホスト名とポートを指定し起動

plackup -o apache_test -p 5000 Develop/test/app.psgi

これで「http://apache_test/」にアクセスすると、
5000番ポートを使用しているアプリにApache経由でアクセス可能。

Nginxでは設定したことがあったのですが、 最近Apacheを触る機会が増えたのでやってみました。

しかしタイポに気づかず、実際は2時間くらい悩んでました。
さ、寝よう。

ファットコントローラの修正は大変

ブログ開始後早くも全然更新せず。
たぶん慣れというか、習慣化できるかどうかなんだろうな。
最初くらい頑張りたい。ということで、今日は簡単に更新。
最近勉強した内容ではないけれど、MVCモデルで最近改めて思ったことについて。

ファットコントローラはやはりよくない

散々いろんな人が言ってることだし別に言う必要もないと思うけど、 仕事でプログラムをいじっていて最近よく思います。

仕事はというと、今の会社に入社して現在2ヶ月で、 既存サイトの保守がメインタスク。

あるコントローラを最近見ていたのですが、1つのアクションで500行くらいあり、 これがどこで何をやってるかがとても把握しづらい。

変数のスコープはだいたい大きく、 ビューに渡す値はいたるところで入れられていたりしてかなり厳しい。

アクションの最初で宣言された変数が300行目あたりでぴょこんと出てきて ビューに渡すために使われてたり。

破壊的代入も当然のごとくガンガンされていたり。

コード規約やテストを作る文化もないというのを入社後知り、 ある程度覚悟していましたが、なかなかまぁ大変だなぁと。

できる人は余裕で修正できるのかもしれませんが、 自分には無理だなぁと感じました。

テストを作ろう

そんなわけで、こいつをなんとか改善したい。
モデルに処理を移動して、テストコードを作って、
ガシガシリファクタリングしていきたいなと画策中。

以前いた会社では先輩に教わりながらテストを必ず作っていたのもあり、 改めて勉強しようとレガシーコード改善ガイドを入手。
普段Java使ってないのでサンプルはなんとなくでしか理解していませんが、 読み応えのある書籍だなーと読ませていただいてます。

さっきTDDについて調べてたらビヘイビア駆動開発なんて言葉もあるんですね。 ここらへんもいいとこ取り込んでやっていきたいな。

あとモデルも粒度が細かすぎるとわけわかんなくなってしまいがちなの気をつけたいところですが、 そこらへんは名前のつけ方なんかに気をつけて対応していきたいと思っています。 リーダブルコードも読み返そうかな。

眠くてだいぶ雑な文章になりましたが、今日はこんなところで。

レガシーコード改善ガイド (Object Oriented SELECTION)

レガシーコード改善ガイド (Object Oriented SELECTION)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

ブログはじめました

いろいろとブログサービスを使ってきましたが、 技術的なことをちょこちょこと書いていきたいなーと思い 前からよく見ていたはてブを使うことにしました。

仕事で使ってる

個人的に使ってる

なんかをちょろちょろと備忘録的に。
(本当はRubyでプログラム組んでブログ立ち上げようかと思ったけど)
あとフレームワークや他のことも書ければ。 ブログのデザインは気が向いたら変える。

まあゆるーくやっていこうと思います。 炎上したらやめよう。