タグ

ブックマーク / aligach.net (8)

  • ノーフレームワークのレガシーPHPがCIに乗るまで

    ついに仕事で触っている PHP のコードがほんの一部のテストとは言え CI に乗った。 正直これは感動ものだ。 今回はここに至るまでの長大な物語をダイジェストでお届けしようと思う。 有史以前PHP 3 で作られた 1 URI : 1 スクリプト + 共通関数 時代 当然のように PHPHTMLSQL 混在まともなテスト環境がなかったので似た環境をどうにか作るパスとか絶対で埋め込みまくりなのでとりあえず共通のパス情報の変数に差し替えまくりテスト環境用のコードと番環境用のコードが違うオール目視 つらかった。 みなさんの予想通りバージョン管理なんてものは存在しなかった。 素朴なPHPを徐々にclassにclass になれば phpdoc を書きやすくなるいきなり実行しないようにすればテストしやすくなる これは後から気づいたんだけど、結局フロントはロクに自動テストできてない一時期 p

  • 実はCapybaraってよく分からないんです

    というか、この辺の用語がいつも混乱してとても困っていたのでいったん整理。今回のターゲットは何やら最近 JavaScript を含む Web アプリのテストでよく名前を聞く capybara-webkit からスタート。 間違ってたら突っ込んでください! 間違ってなかったら褒めてください! 名前capybara-webkitCapybara の driver. Capybara のテストを WebKit を通じて実行できる。WebKit と言えばみんな大好き、Google Chrome や Safari のエンジンですね。capybaraテスティングフレームワークに対して Web アプリのテストを書きやすくする語彙を提供してくれる( DSL や Driver で実装されている )。driver は default で rack_test で、JavaScript を含む場合は Seleniu

  • LLでお手軽Webサーバ、そしてkanazawa.js v1.6.5のご紹介

    ここ何年かずっと Web のフロントエンドの人にももっと Web サーバが手軽に使えるといろいろ捗るんじゃないかと思っている。なのでその紹介。 なお、分かっている人は読む必要ないし、とても冗長な記述になっています。 で、その前に、 kanazawa.js v1.6.5 に行きますkanazawa.js v1.6.5 - もくもく会とたまにLT - : ATND 12/17(土) ITビジネスプラザ武蔵でボクと握手! スケジュールに入ってないけど、このネタでデモります! デモらせろ! なぜ Web サーバかいちいちサーバにアップしなくても手元で番と同じパスでアクセスできる1<a href="./index.html" とか書かなくても <a href="./" でよい2ついでに LL で開発もできちゃうかもWebサーバの選択肢Apache, nginx など格的なもの主に個人向けなシンプ

  • ちょっとテストとか価値とかについて思ったこと

    昨夜カフェでこんな話をしていた。 自分はこんなことを喋った。 テストがあると安心とりあえず Selenium だけでもあると違うと思うけど、HTML をテストするときはデータの違いでテストが丸ごと落ちたりしやすいから使いどころ難しいんだよね。サイボウズさんはよく Selenium ベースで回せたよなー1。最近教えてもらって納得したのは、スローテスト回避にムキになって mock でかくするのは末転倒っぽいこと。テストコードのメンテコストを下げるために fixture replacement が効いたので最近 mock ざっくり捨てたお。相手はこんな話をしていた(誤解あったらごめん。というかボカす必要あるかな)。 テストコード(のメンテ)がプロダクトコード変更の足を引っ張らないかRSpec より Cucumber の方がクライアントの納得や価値に繋がらないかぶっちゃけ細かいテストが揃っている

  • ブラウザのリロード自動化2011秋

    ※ 2011秋っていうのは自分用に書いてあるだけで、決して 2011 年の当の最新情報ではないです1。 何年も前からいろんな形でくり返し出てきてる話だけど、みんなもっと楽しようぜ。いったいオレたちは何回リロードすればいいんだい? まとめということで今回はブラウザのリロード自動化の話。どういう形でこれを実現しているのか調べてみた。 Rubyist 的には LiveReload がイチオシなんだけど、まだ開発途上な部分がアレコレあって Windows 環境にはややつらい。2それでも Windows で動かしようのない npm 依存のものよりはマシだし、使い勝手はいいと思う。 以下の記事もあわせて読みたい。 nodejuiceがヤバい2011LiveReloadが超気持ちいい2011背景View や CSS、効果系の JavaScript の編集は細かい変更を目視で確認しながらくり返すことにな

  • ようやく Rails3 アプリを一つリリースした。

    リリースしたものよりもそこに至る過程や理由が自分にとって大事なのでそれを残しておこうと思う。 ※ なんかこれしか書いてないとリリースしたものがどうでもいいように聞こえるけど、そんなことないよ! 付き合い続ける気があるからこその Rails だもの。 Rails の採用に関してオレフレームワークとの決別と人材採用のコストダウンこれまで、PHP 4.2 以降で使えるオレライブラリ、オレフレームワークで小規模なものを作ったり、PHP 3 時代からのレガシーというか遺跡級のシステムの漸進的リプレイスなどを行っていたが、どうも限界を感じていた。なんか仕事が後ろ向きな感じもしていた。このままだとずっと時代に追いつけずに終わりそうという危機感もあった。 また、Google App Engine の登場以降感じていた「うちに必要な技術はこれだよ」と具体的にはっきり言えること、それによって生み出すことのでき

  • 今さらSinatra最低限メモ

    今度は Sinatra. 次もすぐに動かせるように公式のドキュメントを圧縮する感じで、自分の欲しい情報だけ。アプリを書く以前のレベルで、まずはページを表示できる状態を目指す。 実は昨日の kanazawa.js の成果その2 環境今回の環境は MacOSX 10.5Ruby 1.8.7Sinatra 1.1.3Ruby 1.9.2Sinatra 1.2.0で確認した。Sinatra のバージョンが合ってないことに特に意味はない。 インストール(ry 動かし方1ファイルの場合は

  • 複数バージョンの LL を入れる話を集めてみた

    意外なことに Perl, Python は複数バージョン入れるツール自身が元の言語で書かれています。Perl はシステム標準に入っているディストリビューションが多いからまだ分かるけど、Python でこの戦略を採用するのはちょっと大胆な気がします。 ※ Python は virtualenv だけでも複数バージョンを切り替えて使うことができます。ただし、インストールや動的な切り替えまでは面倒みてくれません。そんなときに pythonbrew が便利なようです。 rvmrvm の記事はもう書いてあります。 rvmを使ってREEへの移行を考える - あーありがち(2010-07-17) BundlerBundler の記事ももう書いてあります。 Bundler 0.9.26 を触ってみた - あーありがち(2010-07-19) perlbrewgugod's App-perlbrew at

  • 1