Strings of Life

PHP/Phalcon/MySQL/JavaScript/RegExp/Ruby/Perl/ActionScript

タグ:勉強会

Symfony勉強会#8に参加してきました。

Symfony勉強会#8では、Symfony初心者向けのハンズオンセミナーが開催されました。Webアプリケーションフレームワークのハンズオンセミナー、私は受講者側でしか経験がありませんが、ハマりどころが無数にあり、主催者の苦労が偲ばれます。

私自身、Symfonyは一応インストール(というかぶっちゃけ、ダウンロードだけ…)はしておいたものの、動作確認はしていませんでした。案の定、会場で動かしてみると動作せず。。。Macで動かすのは諦めてVMのCentOSに環境構築。それでもApacheが上手く動かず、TAの方にPHPのビルトインサーバーの起動方法を教えてもらい、それで何とか動きました。

丁寧にサポートしていただいたTAの方に感謝です。というか、動作確認くらいしておくべきでした。。。


OS、普段はMac + CentOSで事足りてるんですが、新し目のフレームワークを触るときには、標準リポジトリがPHP5.4対応しているOSを使うべきですね(CentOS、サポート期間が長いのは非常に有り難いんだけど、PHP 5.3.3 / MySQL 5.1は古すぎ…)。あと、yumの代替リポジトリ登録で古い情報つかんでハマったので、ソースからmakeしてインストールする練習もしておかないと。

また、sshで接続してvimで編集してたらソースコードのコピペ時にインデントが崩れまくったので、CyberduckでSFTP接続してSublime Textで編集に切り替えました。意外な落とし穴。


本題のSymfonyに関しては、symfony 1とSymfony2は全く別物ということが実感できました。フルスタックのMVCフレームワークという特徴と、フレームワークの名前、開発リーダーくらいしか共通点がありません。

ディレクトリ構造も全然違いますし、symfony 1でお馴染みのsymfonyコマンドは、Symfony2では app/console です。

symfony 1は普通のフルスタックMVCフレームワークですが、Symfony2は、一部モジュールだけを取り出してマイクロフレームワークを作ったり、モジュール単位でライブラリとしての利用も可能です。

Symfony2は、名前空間等のPHP5.3の機能をフル活用し、根本的な設計変更を行なっています。


感心したのは「依存性の注入(DI, Dependency Injection)」という概念。クラスごとの結びつきは最低限にとどめておいて、設定ファイルで実際の動きを制御する。動きを変えたいときは、ソースコードを変えなくても設定ファイルを変えればよいので、変更に強くなります。


今回のSymfony勉強会をきっかけにSymfony2を使うようになるかというと、そうはなりそうにないですね。。。新しいフレームワークを覚えるよりも先に、知識の基礎固めが必要でしょう。しかしSymfony2、コードも洗練されてるし、開発用の機能も豊富。そして、Symfonyユーザー会の方々もカッコ良い。いずれはSymfony2で開発したいな、と思いました。

若手IT勉強会 http://www.wakateit.org/

若手IT勉強会とは、嶋田大輔(@cimadai)氏が中心となって活動している勉強会のことです。今回で第32回でした。「JavaScriptテクニックバイブル読書会」の第2回ということで、若手IT勉強会が元となって企画が立ち上がった書籍『JacaScriptテクニックバイブル』を読んでいこう、という内容でした。

JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技
JavaScriptテクニックバイブル ~効率的な開発に役立つ150の技


著者自らの注釈を聞きながら学べるという大変贅沢な(会|回)でした。なお、『JavaScriptテクニックバイブル』は初級者〜中級者向けの本で、完全な初心者が読むとほとんどわからないと思います。

JavaScriptに関しては、私はjQueryでお手軽に書く程度だったうえ、最近は全く触れていませんでした。参加申し込みを済ませてから『Head First JavaScript』を引っ張りだしてきて、突貫工事で要所を読み終え、JavaScriptのオブジェクト指向について付け焼刃の知識を身につけて参加した、って感じです。

今回はJavaScript初心者が多かったのでゆっくりした進行でしたが、時折Javaをはじめとした他の言語との比較が混じると、ついていけない部分も結構ありました(Javaって、プログラマーの世界ではCと並んで、共通語に近い存在みたいですね。私はCもJavaも経験ありませんが。。。)。


今回の勉強会で学んだことは色々あったんですが、明日からすぐに使えそうなネタは「WebStormいいよ!」ってやつですね。WebStormは有償のIDEです。本書で紹介されている様々なテストツールが、GUIから統合的なインターフェースで利用できるのが便利なところ。

私はPHPerなので、PhpStormをダウンロードしてみました。PhpStormには、WebStormの機能が全て含まれています。その分、WebStormより高い。

懸念点はライセンス
a) Licensee may:

(i) install and use the version of Software specified in License Certificate on multiple computers and operating systems, provided that Licensee is the only user of Software and that Software is not used on more than one machine and (or) operating system at a time, and

(ii) make one back-up copy of Software solely for archival purposes.

(b) Licensee may not:

(snip)

(iii) use the License Key on different computers or operating systems at a time.

「インストールは複数可能だが、アクティベートは1台まで」って仕様っぽいですねえ。私は仕事用とプライベート(勉強)用のPCは分けてるので、この仕様だと毎日アクティベートしないといけなくて大変そう。


次回は通信系とタイマー系かな? WebSocketとかもやるようなので、しっかり予習して、都合がつけばまた参加したいです。

このページのトップヘ