Perl Beginners #1 参加しました

Perl Beginners #1に参加しました。

僕は名前は特に名乗らなかったけどタイツ履いてマラソンしてそうな格好してたやつです。
はじめてPerlを使っているひとたちと話せて、とても嬉しかったです。
(一年半くらい独学でずっと勉強していたので)

内容はというと、他の方々も言っていたけれど「それって初心者?」というレベルの話題が多かったです。
でも逆に上級者へのステップアップってすごく難しくて、それに悩んでいる人たちって僕以外にも大勢いるんだなあ、と思いました。

以下詳細、というかメモと感想。

ビギナーズセッション 1

Perlのテストがわからない @hsksyuskさん」
モジュール、Webアプリケーションのテストについて、これらを他の人はどうやっているのか? こういうことでよいのか? という内容

我々ビギナーズには回答が無理な内容でした。ですが@ytnobodyさんがこんな感じでやっているよ、と説明してくれました。

  • テストファイルの分け方
    • メソッド毎にファイルを分割する(method.t)
    • 関数同士の強調はまとめる(methodA_methodB.t ?)
    • 複数クラスでのテストは、クラス名を接頭辞につける
    • モジュールが複数の場合
      • A->getの場合、A_get.t
      • A::X->methodの場合、A_X_method.t
  • Amon2の標準テストモジュール
    • compler → useのテスト
    • plack_test → plackの基本的なテスト? 裏方でモックサーバを立ち上げる
    • WWW::Mechanize → ブラウザエミュレートのテスト Webを介したテストでは標準的に使われている
  • デプロイしたあと
    • 環境毎に異なるので回答は難しい
    • 普通はT::W::Mを使うだろう

こんな感じだったかな?
初っ端からこんなレベルかー!? と驚きましたが、僕も知りたいと思っていた内容なのですごくありがたい内容でした。

ビギナーズセッション

@ttak100さん
クローラの作成をしたいが、書籍やネットを参考にしても躓いてしまう、どうやって解決すればいいのだろう? という内容

  • WindowsローカルのApacheが起動しない
    • エラーログなどを確認しよう
    • confの中身次第なので確認しよう
    • Windowsには他のWebサーバという選択肢もある(僕の発言)
  • 日本語が文字化けする

僕はLWPとかFurlでしか処理をかいたことがなく、WWW::Mechanizeはまったく解らなかった。
テストのセッションでW::Mは標準的に使われているとのことで、これも勉強せねばなーと思いました。

LT

cpanmは内部でどういう処理をおこなっているの? という内容
(すみません。。。あれだけ他にもお話しいただけたのにHN失念してしまいました。。。)

これは僕も勉強中で気になっていたことなので、自分で調べた内容について説明しました。

前提:CPAN.pmの設定ファイルから推測した処理内容。設定ファイルには、コマンド(ftpgzipgcc)、他にコンパイラ等の引数(-prefix)などが入っている。

  1. 指定したモジュールをリポジトリから検索
  2. 存在したらftpでダウンロード(wgetだっけ?)
  3. ダウンロードしたtar.gzファイルを展開
  4. 展開したファイル内の設定ファイルに応じた処理実行
    • テスト
    • コンパイル
    • 指定位置にファイルを移動

ちゃんとソースを読んでいないので間違っていないか怖かったけれど、大まかにはあっているとのことでした。
でも補足すると、これはCPAN.pmにもとづいた話で、cpanmは設定ファイルをもたず基本オプションに応じた処理を行うとのことでした。

LT

perlは敷居が高いよね @pootarou」
RubyでいうRailsに該当するPerlのWAFはないのか? という内容

ライブコーディングでblogを作っていました。(す、すげーかっけー)

  • Gifty
    • Railsばりのスケルトンが用意されている
      • でも最近更新していない
      • 依存関係もおおい
  • Dancer
    • 日本では流行っていないようだ
  • Kossy
    • @ytnobodyさん一押し
    • 依存関係があまりない(薄く作ってあるのでコードも読みやすい)
    • ドキュメントが少ない
  • Amon2
    • フレーバーを使えば同じように作れる
  • Mojo
    • 最近更新がないよ

Mojoの話は最初Mojoliciousのことかと思って「えっ」ってなったけれど、前身のMojoのことだったみたい。
僕はMojoliciousの勉強中だったのですが、あまり流行ってないんですね。
でもさっき、ゆーすけべーさんのblogをみたらMojolicious推しだと書いてあったので嬉しい。

LT

「大ざっぱにオブジェクト指向 @ytnobodyさん」
オブジェクト指向は結構簡単で便利なんだよ、こんな感じで出来るよ、という内容

一応、オブジェクト指向の初歩は抑えているつもりだったけれど、最後のModule::Setupは知らなかったです。(雛形を作ってくれるんですって)
それとアクセサについては、次回以降に実際にどれだけ便利なのか、Mouseやその他のモジュールについて質問したいなーと思いました。

2次会

「ガチホモなんちゃら」
Perlの話だけでなく、Wenデザインのおはなし(IE6は糞なんだよ)とか、環境構築のおはなし(人に聞いたほうが早いよ、ってか調べる時間無駄すぎだよ)など色んな話が聞けて嬉しかったです。

まとめ

初めてこういった場に参加できて、しかもぼっちになることもなく大勢の人から沢山の話が聞けて夢のような体験でした。
次回も絶対参加します。(ちなみに平日、休日どちら開催でも構わない派です)
LTも……やってみたいな怖いけど。

その他

あと@ytnobodyさんのホームになるHachioji.pmも、初心者参加全然OKとおっしゃっていただけたので参加したいなと思いました。