2014年12月31日水曜日

2014年の振り返り

今年も大晦日になったので、振り返りをしてみたいと思います。

Keep

  • JJUG CCCでGradleとGroovyの紹介するセッションで話せた
去年の振り返りで、GroovyをJavaを使っている人にリーチ出来るようにしたいという内容がありました。

縁があってJJUG CCCでお話できる機会がありました。詳細はこちら -> JJUG CCC 2014 Fallに参加してきました #jjug_ccc

うまく紹介できたか分かりませんが、いろいろ学ぶことが出来たので、次の機会でも活かしていきたいと思います。

Problem

  • Rubyに触れる機会が少なく、Rubyのgemを作らなかった。
Rubyに触れるのもserverspecのコードを保守くらいで、ほとんど触ることがありませんでした。
渋谷Ruby会議やyokohamarbに参加して機会を増やしても、やはり書かないとダメですね。
最近、hubotを触ることが多いので、rubotyも併せて学んでいければと思います。

Try

  • FuelPHPのプロジェクトを作って試してみる。
今のお仕事ではメインの言語がPHPになったので、利用しているフレームワークでHerokuにデプロイするまでを試してみたいと思います。
また、TDDBCではPHPのTAも出来るくらいになりたいと思います。

おわりに

今年は、転職をしたのが一番の大きな出来事でした。
環境も変わったので、求められるスキルセットも変わってきているので、今後の学ぶべき内容や参加する勉強会も変わってくると思います。
来年は、基礎となる部分の深化を重点的にしたいと思います。特にミドルウェア、インフラ周りの発展が目覚ましいので、基礎となる部分を理解しておく必要があると思います。
また、Webアプリケーションについてもどのようにサービスを連携させるとうまくいくのかはAPIの設計がキモになってくると思うので、転職祝い等で頂いた本を読んで活用したいと思います。

2014年12月18日木曜日

[書評] Gradle徹底入門

はじめに

このエントリーは Java Advent Calendar 2014 の 15日目として書かれたものです。

14日目は、@bitter_foxさんの「Load to an Author -Contributing OpenJDK-」です。

16日目は、@zephiransasさんの「Lambda-behaveでテストを書こう」です。

Gradle徹底入門とは


Gradle徹底入門
http://www.shoeisha.co.jp/book/detail/9784798136431

まずはじめに、献本して下さった@nobusueさん、ありがとうございました。

この本を読んでまず思ったのは、これまで手厚くサポートされたビルドツールの本を見たことがありませんでした。
過去に日本語で発売されたantやmavenの本でここまで詳しく、且つプロジェクトのプロセスにまで踏み込んだ本は、無いと思います。

個人的にこの本を読んで欲しいのは、未だにEclipseでビルドして、手作業でdeployしてるような残念なプロジェクトに配属されている人です。
読んで世の中には便利なツールがあることを知ってほしいと思います。

JJUG CCC 2014 FallでGradleで始めるGroovy expandというセッションを行う機会にも恵まれまして、この本の紹介をさせて頂きました。
そのセッションでは、Groovy, Gradleの入門編ということで導入に関する箇所を紹介いたしました。

今回は、どういった場面でこの本を使っていくと良いかを紹介したいと思います。

パターン

まず、そもそもGradleの名前だけ知っていて、ちょっと興味がある人の場合は、まず「導入編」だけを読んでどういったものかを知ってほしいと思います。

AndoridStudioを使い始めて、Gradleの世界に連れて来られた人は、「導入編」、「第9章 Androidプロジェクトでの運用」を読んでひとまず記号や文字列が何を意味しているのか知って、次にAndroid Pluginの更新に追従できるように頑張ってください。

今までAntしか使ってこなかった人は、「導入編」、「基礎編」、「実践編」、「第11章 Jenkinsとの連携」、「第12章 アーカイブの作成とファイルの公開」「第14章 ほかのビルドツールからの移行」を実際に書きながらやっていくといいと思います。

Mavenを使っていてGradleに興味がある人は、おそらく2種類だと思います。

まずは、今のプロジェクトがMavenのレールから外れてしまってどうにかしたい場合ですが、利用してるMavenプラグインが少なく、Antや他のスクリプト言語と併用しているような場合は、この本を全部読むことで何とか出来る可能性があります。

次に、どうしても特殊なMavenプラグインに依存していて、Gradleのサードパーティプラグインにも無いような場合は、全部読んだ後に「第13章 エキスパートへの道」を実践してみてプラグインを自作する価値があるかを決めてください。

Javaのライブラリのソースを見たらGradleのプロジェクトだった場合は、「基礎編」を重点的に読んで、タスクがどういった手続きを表しているのか、どういったプラグインに依存していて設定されているのかを知る武器を手に入れてください。

特にGradleはGroovyのDSLを作りやすい機能を活用して省略や簡略化されているのおり、同じ内容でも表現が違う場合があるので、「基礎編」や付録に付いているGroovyリファレンスを読んでください。
それでも足りない場合は、Groovyを知らない人のためのbuild.gradle読み方書き方入門を見てください。

おわりに

この本では、Gradle 2.0を基にしています。
今後のバージョンアップについて不安になっていらっしゃる方もいると思いますが、2.x系であればこの本に書かれている内容のAPIが変わることは無いでしょう。
また、APIにも実験的要素であれば、しっかりドキュメントにも載っているので、使う際には確認しておくといいと思います。

おそらくページ数の多さで迷っている人がいるのであれば、今後もJavaのプロジェクトでMavenのレールから外れる可能性が高かったり、AndroidStudioの様にGradleでしかビルドが出来ないプロジェクトに関わるような可能性があるのであれば、是非購入して役立てて頂ければと思います。

また、まだ公開されているプラグインの数が少ないので、自分の困っていることを解消したいと思ったら、プラグインを作って見て公開するまでの手順も載っていますので、挑戦してみてはいかがでしょうか。

2014年12月12日金曜日

しょぼちむさんがKotlinをやらない理由を考えてみた

はじめに

このエントリーは しょぼちむ Advent Calendar 2014 の 12日目として書かれたものです。

11日目は、@uemmra3さんの「扶養~ 」です。

13日目は、@yy_yankさんの「Kotlinアイドルのあるべき姿」です。

Kotlinとは

みんなお世話になっているウィキペディアから引用すると、こういう言語です。
Kotlin(ことりん、コトリン)は、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、静的型付けのオブジェクト指向プログラミング言語である。

プロジェクトのページは、http://kotlinlang.org/
レポジトリは、JetBrains/kotlin

デモはこちらから出来ます。

日本でKotlinと聞くと、やはり自称Kotlinエヴァンジェリストこと@ngsw_taroさんの存在を忘れてはいけません。

今年のアドベントカレンダーは、Kotlin Advent Calendar 2014です。
21日には、我らがしょぼちむさんが記事を書いてくださるみたいです。
楽しみですね。

なぜか

しょぼちむさんが、Kotlinやると宣言したのは、ちょうど1年前の模様です。
かわいいKotlin勉強会に行ったら生活変わった!  Kotlin Advent Calendar 2013
この一年で、私も幾つかの勉強会でそれらしい(中の)人とお会いすることが出来ました。

Clojureの勉強会で発表するほど積極的になられたのは、素晴らしいことだと思います。

とはいえ、やはりKotlinアイドル(?)がここまで頑なにKotlinのレポジトリを作らないのも、気になるところではあります。

そこでGitHubで「Kotlin」を検索してみると、いろいろヒントがありそうです。

一番スターが多いのは、やはりKotlin本家ですね。Githubでは、スターを付けた人を「Stargazers」と呼んでいるみたいです。

では、本家のStargazersを見てみましょう。

日本の方もかなりスターを付けているみたいですね。

しかし残念ながらやはり頑ななアイドル、2014年12月12日午前0時では、見かけることが出来ませんでした。

そこまでしてやらないとなると、やはり確固たる意思みたいなものを感じます。

ということで、本題のなぜやらないのかを考えてみました。

  • Clojureでスクショに魅力を感じた。
  • VBAで手一杯だった。
  • うらがみさんが教えてくれなかった。
  • ClojureやJavaを使っての女子力アップに忙しかった。

思いつくだけでも、これくらいありますね。

その他にもありそうですが、どれもKotlinより優先順位が高いと判断されてしまった模様です。

残念です。

いつの日か

そこで、まずはKotlin本家のスターをつけることから勧めたいと思います。

あなたとKotlin、今すぐアイドル。

JVMアイドルへの道も一歩から。

見守ってあげましょう。

Kotlinのレポジトリが作られるその日まで。

2014年12月1日月曜日

退職しました



2014年11月30日を持って7年間在籍した会社を退職しました。

転職理由

転職活動の時に作った資料には、こんな事書いてました。

新しい技術に挑戦できる環境で、技術力がある人と一緒に仕事をしたかったからです。

きっかけは、Java8がリリースされた時に対する会社内での受け止められ方を知った時でした。
Java8がリリースされた後、様々な媒体から資料を得たり、勉強会に参加して実際に触れてみたりした内容を社内で共有しても、反応が返って来ませんでした。
導入されるのは後かも知れませんが、準備しておかなければ、実際に決まってから取り組んでも遅いということを提案いたしましたが、その後の反応は芳しくありませんでした。
また、技術についていろいろと相談したいことがあったとしても、相談出来る人が社内におらず、意見を求める事が難しい状況でした。
さらに、新しい技術について検証を行う際も、与えられた開発環境では検証を行うことが出来ず、十分な結果を得ることが出来ませんでした。

理由として、今後エンジニアとして生きていく事を考えた際に、今の環境では手詰まりとなる危機感が一番大きかったと思います。
会社が周辺環境の変化についていけてない状況を改善する方向性を打ち出さ無かったのは、決定的でした。

経緯

入社した2007年は例年に比べて採用状況がよくなっていた模様で、大学を8年もやっていた人間にはまたとない機会でした。
しかし、よくなっていたとはいえスタートラインに立てただけの人間には、やはり厳しい状況でした。

2007年の1月になって、今の会社が内定を出してくれたお陰で職を手にすることが出来ました。
配属後は、勤怠を中心とした、給与、人事の業務管理システムの開発を担当することになりました。
主にJavaで作られたWebアプリケーションである自社パッケージを、顧客の就業規則等に併せてカスタマイズを行うのが業務でした。
とある会社の勤怠管理システムの案件では、要件定義から保守運用までの各工程に携わってました。

20人にも満たない会社だったので、必然的に一人で出来る事を増やさないと仕事が回りませんし、教えてくれる人もいない方が多かったので、自ら学ばなければならない状況だったので、初めの4年は暗中模索の状態でした。

2011年の東日本大震災は、五反田で被災して、徒歩で帰宅したのを覚えてます。震災の影響とか関係なく炎上してました。
その案件が終わった後すぐに別の炎上してる案件に突っ込まれたので、いろいろ考えさせられました。

振り返ってみて自分の中で何か変わったキッカケは、Seasar Conference 2009 WhiteS305-2: テスト駆動開発のこころ (TDD はじめの一歩)にあるのかなと思います。

当時は、Seasar2に触ったことがないのにも関わらず、Javaのイベントで気軽に行けそうだと思って参加してました。
2011年にTDDBC横浜に参加して、和田さんの講演を聞いて以前に参加してたのを思い出してました。

その後、アジャイルサムライ読書会の横浜道場に参加するようになって変わった実感がありました。
アジャイルサムライに出会ってからの3年は、とても勉強になりました。
たくさんの師匠に出会って、イベントに参加したり、講師をさせてもらったり等業務だけでは知り得なかった事を体験することが出来ました。

その3年で最も会社の中で実感したのは、アジャイルサムライの一節として出てきた「誰もがこの働き方を気に入るわけじゃない」でした。
社内勉強会等開催してもう一人の仲間を探したり作ろうとしてましたが、結局、出来ず仕舞いでした。
そして、転職理由へと繋がってしまいました。

これから

独りのエンジニアとして、何が出来るのか、何が足りないのか、何がしたいのか、何になりたいのかを考えた結果の転職でした。
小さな会社だった為か、裁量がある程度もらえたおかげで、いろいろ試行錯誤出来ましたし、勉強しなければ生きていけない環境だったので、量が質に転化するまで経験出来たのは、感謝しています。
本当にありがとうございました。

次の会社は、12月1日からです。
一ヶ月位有給休暇しようとしましたが、残念ながら11月末が納期だったので結局1日くらいしか消化出来ませんでした。
まぁ、自分のようなダメ人間が社会復帰するには時間がかかるのは分かっているので、良かったのかも知れないです。

最後に、例のリストはこちらです。ご査収ください。