はてなブログはじめました

もうすっかり普段書くテキストが Markdown ばかりになってしまったので、この機にはてなブログに移行します。

こちらに、入社エントリを書きました。

http://moro.hatenablog.com/entries/2015/08/03

「この機に」といいながら実は3年前にドメインスクワッティングだけしていたのをさっき思い出したのですが。締まらない。。。
とはいえ、今後ともよろしくお願いします!!

株式会社永和システムマネジメントを退職します

本日2015年7月31日をもって、9 年間勤めました株式会社永和システムマネジメントを退職します。

在職中は多くの方々に助けられ、Rails を中心としたたくさんの仕事をしながら育てていただきました。個別のご挨拶ができなくて大変申し訳ありませんが、本当にありがとうございました。これからもどうぞよろしくお願いします。

今後ですが、すぐ他社で働くことが決まっておりまして、8 月 3 日から出社予定です。

以下、思い出話なので「このひと誰?」という人はスルーしてください。

永和ではほぼずっと Ruby や Rails の仕事をしてきており、次の職場でもやはり Ruby / Rails に関わる仕事をする予定です。

この私のキャリアのきっかけとなったのは、もう 10 年も前になる(!!) 2005 年にはじまった Rails 勉強会@東京でした。当時は Rails が"来そう" という噂はありつつも情報が全くなく、みんなで AWDwR の初版を読んでいたのが懐かしいです。

その縁でお会いした @kakutani さんを頼りに永和に入社したのが 2006 年。そこからほぼずっと、Ruby で仕事をしたきたことになります。この9年というか10年の間に、仕事で Ruby を使うというのがすっかり「ふつう」のことになり、2008 年に生まれた娘は完全に Ruby 仕事で養育されていることに驚きます(共働きなので半分ぶんですが)。


入社時のオフィスは芝浦の端っこで、まさに陸の孤島でした。


ランチ環境も過酷で、唯一、徒歩5分程度で食べられたゆで太郎はすでに消失していました。

永和へ入社したあともRails 勉強会にはお世話になり続け、恵比寿はドリコムさん(当時)のオフィスをお借りして、DB 設計やら TDD やらREST やら、いろんなことをあの勉強会で学びまして。「雑談部屋」を懐かしく思い出します。実務経験を積みつつ、尊敬する技術者の皆さんとたくさん知り合えました。

9 年前に「Ruby で仕事してみたいです!!」とワナビー全開で入社し、今回「Rails の実務経験が豊富ですよ」という体で次のキャリアを考えられるようになったその差分は、すべて永和に所属していたあいだに、永和のメンバーと卒業生の人々、社外のコミュニティの皆さんとお客様と一緒に、いろんな経験をさせていただきながら得たものでした。

ほうぼうで講演したり、設計について tweet するときのほとんどは、永和での経験が元ネタになっています。「メタプログラミングしすぎるな」云々は某 2008 年ころにオレオレORMを作ってしまった経験からだったり、「`Time.now`使わない」は 2011 年から延々と保守している某プロジェクトでの毎年の年度マタギでのテスト落ちとの格闘の結果だったりと。そうやって永和で得た知見を社外で話し、またコミュニティの皆さんからもいろんな知見をいただいて、そうやってやってきた 9 年間でした。

そんな中、自分の立ち位置や目先をちょっと変えて力を試してみたいと思い、今回退職することにいたしました。次の職場でもやはり、RubyやRails 関係の仕事をしていく予定ですので、ここを読んでらっしゃる方々には、行く先々でお会いすると思います。その時はどうぞよろしくお願いします。

また、私自身は退職するものの、永和のメンバーまだまだ面白い人がたくさんいますし面白い試みもいろいろありそうです。これからの永和さんがどうなるか、立場は代わりますが、楽しみにしていきたいと思います。

みなさま今後ともどうぞよろしくお願いします。

(いやー、2年半ぶりの記事がこれというのもなかなかよくないですね。いい機会なので、今後はWeb日記力を上げていきたいです...)

SQLアンチパターン -- 苦い経験を思い出させる良書

献本いただきました。ありがとうございます。

本書は、データベース設計や、そのDBをアプリケーションから利用する際によく見られるアンチパターンを、簡潔かついきいきとまとめた書籍です。もちろん、単なる「べからず集」ではありません。そのアンチパターンの背景である現実の問題の説明と、アンチパターンを回避した解法もしっかり紹介されています。さらに、それでもアンチパターンを採用する場合のメリットデメリットもしっかり提示されています。

特に気に入ったところとして、2013年の書籍(原著は2010年)にふさわしく、ORMの存在をしっかり意識した内容になっている点が印象的でした。たとえば、全テーブルにサロゲートキーを貼る(IDリクワイアド: とりあえずID)のアンチパターンも、避けるべきではあるが、ORMの規約であればしたがってよいと紹介するなど、
全体として現場寄り、実践的なノウハウの紹介になっています。

いっぱんに、データベースのスキーマやデータアクセス部分は、アプリケーションの中でも『長生き』する箇所です。それだけに、ある程度以上の経験があるプログラマであれば、紹介されているアンチパターンに悩んだ経験があるはずです。ベテランにはそういった経験のまとめとして、若い人たちは予防の知識として、ぜひおすすめしたい一冊です。

なお、パターン名が英語そのままカタカナ表記であるのは、目次を見ただけではビックリするポイントですね。ただ、チーム内で相談するときなどに目立つ名前が付いているのはむしろありがたいですし、何よりなんかカッコよくておもしろかったです!

SQLアンチパターン

SQLアンチパターン

オブラブ収穫祭で発表してきました

オブラブのイベント「オブラブ収穫祭」で新人教育のトピックを話す機会があったので、ここ一年ほど一緒に仕事している(もうそんなになるんだなぁ) id:akiinyoの事例を中心に「仕事をするにあたって若手に伝えたいこと」を話してきました。

これまでいろんな方々と一緒にお仕事をさせていただきながら、仕事をきちんと終わらせる大事さというのを日々かんじているので、それを話す機会があってよかったです。コレは別に真面目くさってやれということではなく、スライド中にもあるように自分の特長を発揮していく時の基盤として、若い人達の役に立てばいいなあと思っております。

今日は、私がソリッドに実感できることを話すために「受託開発」スコープで話したんですけれど、自社サービスに取り組んでいるみなさんも"お客様"をプロダクトオーナーや企画の人やその他ビジネスを見ている人に読み替えて、なにか役立つものを持ち帰っていただけたら何より嬉しく思います。

参加者の皆さんや他の講演者の皆さん、スタッフをやってくれた永和の同僚たちにとてもとても感謝いたします。

attr_hash_accessorというのを作った

Plain Old Ruby Objectなんだけど、まあActiveModelぽく振舞わせたくて、そうするとよくあるHashでnewしたくなり、eachしてsend("#{key}=", v)するという、Railsを使っている人ならよくあるケースにもう何度も遭遇しまくったのでgemにまとめました。

https://github.com/moro/attr_hash_accessor

某プロジェクトでのアリモノを、別の某プロジェクトの人に渡すために作ったのでまだ自分が満足する程度の機能しかありませんが、よろしければお試しください。

札幌Ruby会議2012に参加して、友情出演とTDDネタで発表してきました

札幌Ruby会議は、約一年ぶりに記事を書くのにふさわしいビッグトピックですね :-)

9/14..9/16に行われた札幌Ruby会議に参加しました。おかげさまで発表の機会もいただけたのでいくつか発表してきました。

まずは2日めの友情出演枠で、Rails3の闇レシピを紹介しています。ちょっと話題が複雑だったので分かり辛かった方も入るかと思いますが、もう少ししたらgemにしますのでよろしければどうぞ。

3日めは自分の発表でTDDについて発表してきました。

書籍やインターネット上にTDDのトピックがたくさんあって、いろんなテクニックが紹介されていますが、私の見た範囲では「なにを考えながらTDDをしているか」についてはあまり触れられていないように見えたので、それをできるだけ丁寧に説明できないかと思ってのセッションでした。

Railsが出始めの頃のチュートリアル記事に対して「『まずこのテーブルがあります』、じゃねーよ。何でそういうスキーマにしたんだよ」とid:habuakihiroさんがおっしゃってたのを覚えています。それの私にとってのTDD版ということでこういう観点もあったらよいのかな、と思った次第です(「まずこういうテストがあって、境界値なんかを列挙します。これをグリーンにします」)。そういう話題をふられたときはイマでもTDD by exampleを紹介しているので、もう少し若きRubyistに距離の近い話があればいいなーと思います。GOOSはいま読んでいます。

自分の発表もさることながら、他の方々の発表や、運営スタッフの皆さん、会場で同席したりすれ違ったり乾杯した参加者の皆さんみんながとてもniceで、楽しいKaigiでした。ご飯もおいしかったし! 舟盛りも作戦どおりに倒せたし!! 夜間休日にあまり外出できなくなって疎遠だった知己にたくさん会えてお話できて、ほんと楽しかった。
みなさまありがとうございました。

またきょうから現実に戻ってきたので、次のKaigiの発表応募ネタを考えながらコードを書いていきたいと思います。また会いましょう!

【宣伝】Rails3レシピブックのPDF版セール、本日11/05までです

すでにご存じの方も多いと思いますが(お買い上げいただいた方も多いと思います!! ありがとうございます!!)、Rails3レシピブックのPDF版が発売されています。発売記念セールということで、本日11/05まで1,800円でご購入いただけます。ふだんは2,800円なので、気になっている方はこの機会にぜひどうぞ。

http://bookpub.jp/books/bp/198

Twitterなどでも何度か宣伝いたしましたが、実際に手元にちゃんと検索できるPDFがあるのはとても便利です。Macを使っているおかげでPDFの取り回しが楽なこともあり、なにか調べたいことがあればすぐ検索できるのがいいです。おもむろにメソッド名とかオプション名のSymbol(:partialとか)で検索してちゃんと出るのは便利ですね。
同僚や後輩から質問された時も、とりあえずPDF版を検索して、出てきたページを紙の本で示しながら説明できたりしていい具合です。

ものすごい宣伝エントリではありますが、実際に自分自身も役立てていますので自信を持っておすすめします。前著183の技のほうも好評でしたが、こちらの190の技のほうでも、紙・PDFともに皆様の開発のお役に立てれば幸いです。
繰り返しますが、11/05いっぱいは1,800円で購入できますので、検討中の方はぜひどうぞよろしくおねがいします。