2013年5月14日火曜日

PHPerがNetBeansを使いたくなる7つの理由

PHPerの皆様、日頃のコーディングには何をお使いでしょうか。
PHPの方はVimやEmacsよりもテキストエディタを使ってる人が多いイメージなのでSublime Text2でしょうか。
かく言う私もこのエントリーを電車の中でSublime Text2を使って書いてます。


「Sublime Text 2はじめました!」に贈る日本語での情報のリンク集


しかしながら開発をするなら僕は断然IDE派です。
ユニットテスト、補完、リファクタリング、どれをとってもIDEはプログラマーをサポートしてくれます。
また静的型付けな言語以外ではIDEの恩恵を受けにくいのではないかと考える方もいらっしゃるかもしれません。
しかしそれは杞憂です。
特にPHPは動的言語の中でもIDEの恩恵を受けやすい言語です。
つまりPHPを書く上でIDEを使わない手はありません。
どうでしょう少しはIDEに興味が湧いて来ましたか?
そこでオススメのIDEがこちらです。

NetBeans

なんとNetBeansはFuelPHPのサポートされたプラグインが有志によって開発されています。
本日はそんなNetBeansの素晴らしさをちょっとした使い方とFuelPHPの使い方をご紹介したいと思います。
(決してJava Day Tokyoのセッション中ではありません)

※対象はNetBeans7.3のPHPプラグインです
ダウンロードはこちら<<

1 NetBeansの補完について
NetBeansのdefaultのコード補完はControl+スペースです。
例えば下記の画像のように標準のメソッドを呼ぶことができます。






また当然プロジェクトの名前空間、スコープ内のメソッドや変数も呼ぶことができます。
引数も保管し、defaultの値を指定している場合は引数を選ぶこともできます。



この他にもメソッドの上で/**とするとコメントのテンプレートを生成してくれます。
これは引数、返り値を見た上でテンプレートを作成してくれますので大変便利です。
//○○をXXする関数
と書くよりも



を書くほうが情報も多く、メンテナンス性も向上します。
またこのようにメソッドにコメント使うことコード補完時に参照され、情報として表示されます。



さらに!!
html、CSSやJSも補完してくれます。
強力にhtml5やCSS3を保管してくれます。
さらに詳しいことはこちら

コードの補完


2 NetBeansのバージョン管理ソフトウェア対応と使い方について
NetBeansはdefaultでSVN、Mercurial、Gitをサポートしています。
プロジェクト内のコードであればGUIベースで以下の通りでcommitすることができます。


Gitの場合のリモートリポジトリもGUIベースで行えます。
通常時(Conflictした時やマージの時)はCUIを使った方が楽なことも多々ありますが通常使うには十分です。
またNetBeans内でのバージョン管理とバージョン管理ソフトウェアの連携がとても強力です。
こちらの画像のようにNetBeansはdefaultで更新履歴を持ちます
(初期設定は7日分ですが任意にツール→オプション→その他→バージョン管理→履歴 から保管する日にちを変更できます)

さらにバージョン管理ソフトウェアを使えばコミットしたリビジョンも比較できます。
例えば差分は次のとおりに比較できます。

履歴を選んで差分を確認


右クリックの「履歴をから戻す」を使うとまるごと戻すことも可能も可能です。
この機能は非常に協力ですのでぜひぜひご活用ください。

3 FuelPHPのプラグインの導入
これだけでも使うには十分すぎるNetBeansの便利さですが今一番熱いPHPのWEBフレームワーク、FuelPHPに対応しています。
蛇足ですが標準でZend、Symfony、Doctrine2をサポートしています。
またテンプレートフレームワークとして使われることの多いSmartyもサポートとしています。
そしてプラグインもプロジェクトの作成も選ぶだけ。

日本語に完全対応したGUIですから非常にスムーズですね!!

4 FuelPHPの補完
そして当然FuelPHPの補完もバッチリ!!
例えばコントローラーでの補完。
モデルの呼び出し
setterやgetterの呼び出しもサポート。
当然ORMもご覧のとおり。



5 ユニットテスト
さてここまで読まれた読者さまなら一度は聞いたことがあるのではないでしょうかユニットテスト。
別名では単体テストと呼ばれ、メソッド単位で行われるテストですがPHPではPHPUnitと言うツールを使います。
NetBeansはこちらも対応済み。
ただしPHPUnit本体の導入は別途必要です^^;
WindowsユーザでXAMPP(ローカルにWEBサーバ環境を立てる)を使ったPHPUnitの導入はこちらのチュートリアルが参考になります。
そして本題のユニットテスト。


戻り値が不正の場合は
わかりやすく赤くなってくれます。
そしてFuelPHPはユニットテスト(PHPUnit)に完全対応!!
当然、ユニットテストできます。
例えばすでに作成済みのViewModelのメソッドをテストしたい場合このとおりです。
まずメソッド作ります。
そしてメソッドはやっぱりテストコードを作りたいですよね。
まずは右クリックして…



あら不思議!テストコードがまるっとできます!!
この状態でメソッドを変更すれば当然赤くなるので安心してリファクタリングできますね!!
またTDDっぽく機能追加する場合はテストコードを変更して赤(エラー)から緑(成功)を目指して修正することもできます。
今流行?TDD【テスト駆動開発】も可能です。

6 ちょっと便利なショートカット
私は実はdefaultのキーマップからEclipseに変更していますw
なのでフォーマットはControl+Shift+Fです。
defaultではAlt+Shift+Fです。
オプションのエディタのタブでフォーマットの設定も行えます。
また保存時に自動的にフォーマッターを走らすことができます。
統一感のある美しいソースになるのでフォーマッターは是非ともご活用ください。
またメソッドを選択時にF3で行われるメソッドの参照先への移動(メソッドジャンプ)も非常に便利です。
その他にも四角選択(矩形選択)や一括置換も非常に便利で協力です。
是非、お時間があるときにはNetBeansのオプションのショートカットキー一覧を見てみて下さい。

7 NetBeansの組み込みブラウザの使い方
NetBeansといえばきしださん。
きしださんの「きしだのはてな」がすごく情報が詰まってます。
NetBeans使いは是非一読ください。
そして組み込みブラウザにも詳しく書いてありますのでこちらを御覧ください。

NetBeans7.3(Beta)に組込みブラウザがついて想像以上にすばらしい


ここまで読んでくれた皆様、NetBeansに興味が湧いて来ましたでしょうか?
開発環境は好みで選ぶべきですが「よくわからないけどEclipseを使ってる」や「みんなが秀丸だから秀丸を使ってる」って方は非常に損をしていると思います。
日本語対応しているNetBeansの機能の豊富さを知らずに開発するのは残念です。
ですので一度でも試していただけたらと思います。

ウサギィに遊びに行ってきた(1年振り 通算2回目

さて僕の東京観光3日目は海鮮丼で有名?なウサギィに遊びに行って来ました!
ウサギィといえば

ウサギィシールやウサギィパーカーなどのグッズ販売

海鮮丼

などが有名ですがちゃんとした開発会社ですw
またスタッフは皆さん個性的な人ですが社長の町さんは非常に聡明な方です。
今回は私の時間調整がうまく行かず町さんにはご迷惑をお掛けしまして大変申し訳ありませんでした。

そして本題の町さんと二人っきの(///のトークですがやはり気になるのはこれ。

オープンセミナー2013@岡山 

実は僕がウサギィさんの話が聞きたくて実行委員長に提案しました。
しかしながら肝心な当日が別のイベントと被ってしまいお会いすることができず…
なら終わって出来立てホヤホヤの感想を聞かせて貰おう!!と思い訪問させて頂きました。

まず登壇自体は話はちょいちょいいただくけどなかなか行くことが出来ないとのことだったので実際に聞かれた方は貴重な体験だったようです。
またウサギィさんはここ最近、かなりtwitterで有名になった反面、苦労も耐えないそうです。
知名度が上がるというのはメリットもある反面、非常に繊細な問題なんだなとおもいます。

またエンジニアの在り方、それをサポートするために会社の在り方ついてもお話を聞かせて頂きました。
その中で社員に自由を与えることと会社の規律を作ることが相反することが多々有って難しいとのことでした。
確かにクリエイティブな仕事や受注ではなく社内的な作業というのは評価を反映することは難しいですね。
また歩合だけでエンジニアの心を掴むのも難しい。
なので色々と試行錯誤されてるとのことでした。
実際に社員もクライアントも満足できる会社というのは非常に作るのが難しく、継続が大変なのだとよくわかりました。
こういった経営層側かの視点ってのは社員で働くにも重要で、沢山の視点を持つことは大切ですね。
また何かと苦労されているだけに言葉には力がありました。
しかしながら同世代の方がこれだけ色々考えている話を聞くと負けてられないと思っちゃいますね!
また来月、今度はゆっくりウサギィ にお伺いをしたいと思います。

JJUG CCCに参加&セッションしてきた

5月11日にJJUG CCCに行って来ました。
これがJavaのイメージとは反してゆるく、でもしっかり技術の場所でした。
私自身は東京で開かれるイベントは何個か参加経験があります。
ですが今回は登壇もあったので緊張してばかりだったので余裕がなくツイート控えめでした(´・ω・`)
なのでセッションの面白さについては多くの方がブログにしてくださってるのでそちらを!
会場の雰囲気を是非感じてみて下さい。
実際にあの会場でしか掴めない刺激やコネクションがあるので若い人こそ来てほしいですね。

ということで僕のセッションの資料はこちら。



正直なところ、情報量としては非常に少ない内容ですがtwitterまとめで少しは伝わったのかなとおもいます。

JJUG CCC 2013 Spring R2-6 [BOF] 地方における勉強会事情 

今回の私のテーマとしては

  • 地方圏と都市圏の勉強会の違いを伝える
  • 勉強会のメリット(楽しさ)を伝える
  • 少しでも参加する(聴衆・スピーカー・スタッフなど含む広義的な意味で)人を増やす
  • 一つの場所で完結するんじゃなくて多くのコミュニティ、地方とつながるきっかけ作り

でした。
また実際のところ、地方が抱える問題というのはどの地方でも同じように抱えています。
それを打破するべき施策と言うのはとても大切で今回のパネルディスカッションのように意見を交換しながらより良いものを考えていくという機会は非常に意味があったなと思っています。
そして一番驚いたのは会長である鈴木さんの腰軽さ。
僕達の提案に足して孫正義もびっくりの「今年中にそれ、やりましょう」の連発。
実際に話題になったのは

  • 各地方JJUGによる同時勉強会開催
  • Ustなどを活用して同時開催のセッションを共有する
  • 女性や若い世代が参加しやすい環境つくり
  • 地方に講師を積極的に派遣する

などです。
これらに関しては今年度から積極的にリソースを割いて行くとのことですから非常に楽しみですね!
こういう提案に対してトップが行動の速いというのはすごいことです。
逆にいうと今までJJUGの中での情報共有自体がまだまだ少なかったのかもしれません。
ですので若い人に伝えたいことですがJJUGにはすごく多くのチャンスが詰まってます。
またJavaは成熟してきた技術ですからOSS一つにしても多くの先人の知恵が詰まっています。
これを機会にぜひぜひJJUGに参加して積極的に自分の意見をアウトプットしてほしいです。
そうすることでより良いコミュニティに成長いけるはずです。

ということで私自身、多くの方との情報交換はとても参考になりました。
またこれだけの規模で何かを伝えると言うのは大きな人生の財産になりました。
しかしながらまだまだ経験不足なところもありますので日々精進していきたいなと思います。
そして機会があれば今度はちゃんと技術の話でみなさんにアウトプットしたいですね!!
と以上のとおり、本当に基調講演から懇親会まで楽しい一日でした(*´ω`*)
スタッフの皆様、最後になりましたが本当にありがとうございました&お疲れ様でした。

プログラマーが行くべきたった一つの場所 in サムライズム

行って来ました、株式会社サムライズム
サムライズムはあの有名な元赤帽で元twitterの中の人でtwitter4jの山本さんが興された会社。

さてサムライズム、山本(以下イケメン)さんお一人でされてる会社です。
そんなサムライズムにお邪魔するキッカケですがJJUG CCCに参加するのに前泊入りする場所がなくてtwitterで右往左往してると



と優しいお言葉が。
我らが #軍団長 みずきさん会社訪問した際に大好評だったサムライズム、これは行かないわけがありませんよね!!
サムライズムといえばJetBrainsの代理店。
てなわけで取り扱いソフトについてはこちら #ステマ
商品を選んでみんなもサムライズムで発注して最新IDEをGETだぜ!


と一泊の恩はこれくらいで返したことにして本題。
プログラマーがサムライズムに行く理由。

まずはイケメンさんの魅力がすごい。

イケメンさんと会話してると

  • 遊び心を大事にしてる
  • 常に余裕を感じる
  • レスポンスが超早い
  • 自分の楽しそうと感じた未来のビジョンに対する行動が速い

と感じます。
これって簡単に見えてなかなかみんな出来てることじゃないですよね。

まず遊び心ってクリエイティブな事する人はすごく大事。
プログラマーは創造する仕事だから常に遊び心を持って色んなアイディアを産みたいものです。
遊び心豊富なところはtwitter、講演内容、色んなところで見つけれます。
まだご存知が無い方はtwitterをウォッチしてみてはいかがですか?

@yusuke

そして余裕。
これって色んなところで感じれて、その人の持ってる雰囲気にすごい影響を与える。
仕事だっていっぱいいっぱいの人に頼めないしフリーランスなら足元見られちゃうでしょ?
プライベートの場合は余裕がある人はやっぱ話しかけやすい。
質問も臆すること無くスーッと出来る。
こういう大人の余裕がイケメンたる所以なのかもしれません。
 
で大事なところなんだけど物事のレスポンスが超早い。
質問してもすぐレスポンスが帰ってくるから会話が弾む。
でも一つ一つの回答がすごい練られてるから常に物事を考える癖付けがついてるんでしょうね。
さすがマルチスレッドの異名は伊達じゃないですね!

そして最後は行動力。
これって頭がいい人ほど失いやすいところだと思う。
考えればリスクだって見えてくるし色んな選択肢が思いつくから最適解を常に模索しちゃう。
それ自体は悪いことじゃなくてむしろ大切なことなんだけどそこでついつい二の足を踏みがち。
だけどイケメンさんの話を聞いてると

そーだい「あーこれ楽しそうですね!」

イケメン「だから次はこんなことしたくて○○の勉強会(関西)行くんだ。」

みたいな感じで常に何かの行動が決まってました。
こういうアグレッシブさはよく聞くプログラマー像に足りない箇所だと思います。


と非常に刺激的な方なのでみなさんもサムライズムに遊びに行ってみては如何でしょう?
 


と僕の身内の知りたいところであろう宿泊状況ですが

  • 夜は静か
  • 寝袋さえあれば2~3人はいける
  • 飲み物はコーラ、レッドブル、コーヒー
  • 侍の朝はレッドブルから始まる
  • 椅子が超いいから俺も欲しい

と抑えるところは抑えてるのに超シンプルな感じです。
ただ椅子が一つしかない感じなので複数人で遊びに行かれる場合は事前に人数を相談した方がいいかもしれません。
※ソファーになる布団セットがある上に部屋も整理されてるので無理ではないですが念の為に

ということでサムライズム。
僕の関東一発目にして刺激的な夜を経験できました(///

それでは興味が出た方はこちらからサムライズへ!!