タグ

ブックマーク / papix.hatenablog.com (6)

  • PerlでスナップショットテストをするTest::Snapshotのご紹介 - Masteries

    このエントリは, 「Perl Advent Calendar 2020」の9日目の記事です. qiita.com 昨日のエントリは, id:xtetsuji さんの「xargs や find と合わせて使う・代わりに使う Perl」でした. qiita.com 実は最近異動をしていた id:papix です. 異動後もPerlをモリモリ書いている日々ですが, 移動先のチームのプロダクトで同僚の id:mizdra が導入していた Test::Snapshot が便利だったので紹介します. metacpan.org Test::Snapshot Test::Snapshotは, その名の通り「スナップショットテスト」を提供するモジュールです. スナップショットテストとは, 予め「スナップショット」と呼ばれる期待値を生成しておき, テストを実行する際には実行結果とスナップショットを比較してテス

    PerlでスナップショットテストをするTest::Snapshotのご紹介 - Masteries
  • 頼りがいのある(かもしれない)Database Migration Utility, Anegoを作っています - Masteries

    PerlでWebAppなどを作っている際, データベースのマイグレーションをするのであれば, 例えば@sugyanさんのブログに書かれているSQL::Translator::DiffでDBスキーマに追従させる方法のような手段を使ったり, 或いはこれと同じくSQL::Translator::Diffに基づいたGitDDLやGitDDL::Migratorなどを使う手があると思います. この辺りの方法を参考にしながら, Reactioなどでは独自のマイグレーションの仕組みを作って実践しているのですが, だいぶ安定して使えているし, そろそろ他のプロジェクトでも使いたくなってきたので, モジュールとして切り出してみることにしました. なお名前は, Kansai.pmでAnegoのプロトタイプコードに様々なアドバイスを下さった@karupaneruraさんとそのORM「Aniki」に敬意を表して(

    頼りがいのある(かもしれない)Database Migration Utility, Anegoを作っています - Masteries
  • App::cpanminusやCartonでDeveloper Releaseなモジュールをインストールする - Masteries

    Perlのモジュール管理システムCPANでは, バージョンナンバーに「_」が含まれるものはDeveloper Release(試験的なリリース)として扱われるようになっています(詳細はここなどを参照). 「機能的にまだベータクオリティだが, CPANにアップしておく」という場合に用いられます. 例えば, 最近個人的に着目しているAnikiというORM(Mobile Factoryのkarupanerura師製)もCPAN上にDevelopment Releaseされています. ▲ metacpanにおけるAniki-0.02_02の様子. _が入っているのでライブラリ名が赤字になっていて, Developer Releaseであることがわかる(通常は黒色). 例えばAnikiの場合, 現時点ではCPANへのリリースが全てDeveloper Releaseになっているので, cpanmコマン

    App::cpanminusやCartonでDeveloper Releaseなモジュールをインストールする - Masteries
  • supervisorctlについて調べてみた - Masteries

    Supervisorの操作は, supervisordコマンドではなくsupervisorctlコマンドで行います(supervisordは, 単にSupervisorそのものを立ち上げるコマンドになっています). supervisorctlを使ってコマンドを叩くことで, Supervisorそのものや, それが立ち上げている各種プロセスを操作することができます. この辺り, 割とゆるふわに使っていた部分があったのですが, そりゃイカンよなというわけで, 多少気を出して調べてみることにしました. なお, 調査時に利用したSupervisorのバージョンは3.1.3です(記事投稿時の最新版). supervisorctlのコマンド一覧 supervisorctlから使うことが出来るコマンドは, supervisorctl helpでその一覧を確認することができます. # superviso

    supervisorctlについて調べてみた - Masteries
  • Nginxと名前解決の話 - Masteries

    Nginxでは, serverコンテキストのlocationコンテキストにおいて, proxy_passディレクティブを利用することで任意のホストにアクセスを転送することができます. 例えば, serverコンテキストにおいて, location / { proxy_pass http://127.0.0.1:5000; } みたいに書いてあげれば, localhostの5000番ポートにアクセスを転送することが出来ます. Webサービスでは, こういう感じでNginxが443番(HTTPS)や80番ポート(HTTP)で受けたアクセスを5000番ポートなどで動いているWebアプリケーションに転送している訳です. で, このproxy_passディレクティブは, IPをそのまま書くのではなく, 次のようにドメインを書くこともできます. location / { proxy_pass http

    Nginxと名前解決の話 - Masteries
  • DockerでオレオレVPSを作った話 - Masteries

    Docker Advnet Calendar 2014の6日目の記事となります. 今日は, 「DockerでオレオレVPSを作った話」というタイトルで, 最近作った「Pocker」という名前のアプリケーションを紹介したいと思います. どうしてそのようなアプリケーションが必要になったのか, その中でのDockerの使い方や, 利用したテクニックなどについてお話できれば, と思っています. あらすじ 自分は昔から「さくらのVPS」を愛用していて, 趣味で作った小規模な自分用ウェブアプリのようなものを, VPSの上に複数個設置していました. さくらのVPSは非常に安価で, しかも価格が固定という事もあり, 小規模なウェブアプリを共存させるには最適だったのですが, 1つのVPSに複数のWebサービスを設置してくると, 「ゴミが溜まってくる」という問題が出てきます. つまり, うまく管理していないと

    DockerでオレオレVPSを作った話 - Masteries
  • 1