2014年半分過ぎたので所感書いた

どうもこんばんは。ドラフトになってる記事が積もりに積もってるのですが、今年も早くも半年が経過したということで所感を書きます。

謎の立ち位置

一応自分の立ち位置としては効率化業務みたいな感じなのですが、他のチームのに比べるとフワッとした立場なので別の業務に駆り出されることも多いです。去年の10月から1月くらいはビジネス的には重要なプロジェクトでありながらも、正直「これ自分がやんのか( ꒪⌓꒪)ウボァー」というテンションになってしまうプロジェクトに徴兵されてました。 Javaプロジェクトだったんですが、せめてテストくらい楽しく書こう!というのでSpockを入れてみました。その様子はサイバーエージェントのエンジニアブログに寄稿してあります。

Javaプロジェクトでテストをたのしく書くための試み|サイバーエージェント 公式エンジニアブログ

まあ概ねうまく回ったと思います。おかげさまで最近はJavaのテストは専らSpock使ってGroovyで書いてます(ただし、Groovyをメインストリームで使おうとは思わない)。

加えて、最初JSの要件があったのでTypeScriptでJS基盤書いてましたが、要件吹っ飛んだのでお蔵入りになりますた。

あとはChef書いたり、Vagrantで環境用意したり、ディプロイスクリプトとか運用系のものを用意したりというまあいつもの雑用ですね。

最近はもう開き直ってサイボウズのプロフィール欄に「雑用系ぷろぐらみゃー」って書いてます。

某Mock

ソーシャル上では「某Mock」と言ってますが、去年の11月くらいからJavaテンプレートを使ってるプロジェクトのモックサーバをScalaで書いています。先述のテンション↓なプロジェクトをやりながら片手間で始めて、某クロエなプロジェクトに放り込んだらいつの間にか既成事実化してました。おかげさまで導入プロジェクトは10を突破したようです(ご愛顧ありがとうございます)。

サイバーエージェントでは数少ないScalaプロジェクトでして、少しはScala勢力の地位向上に貢献できたのかもしれません。某MockはPlayとかfinagleとかの上に作るのではなく、Netty上に直で書きました。何かのフレームワークに縛られて、コアな部分が自分のコントロール下に置くのが難しくなることだけは避けたかったわけです。ちょっと大変な印象があるかもですが、Nettyは優秀だしScala自体がパワプルな言語なのであんまり苦労はしてないです。 Scalaといえば、今回始めてScalazをまともに実戦投入しました。Scalazはハラオチするまでが恐ろしく苦行でもあるんですが、Haskellとかを行ったり来たりしてるうちに欠かせないライブラリになってきました。Applicativeな書き方最高ですね。

今年の目標の一つに関数型文化に移行するってのがあったんですが、オブジェクト指向と関数型を自分の中でうまく消化できてきて、良いスタイルができつつあるなーと感じています。

あ、一応8月にOSS化を目指しています。たぶん、その頃に大っぴらにお話をする機会があるかと思いますのでまたその時にでも。

新たに使い始めてる技術

色々あるので簡単にまとめてみました

Gradle

まあプログラマブルに書けるのが良いですが、軽くはないんですよね。とはいえ新たにJavaプロジェクトを始めるならMavenよりGradleでしょう。そして最近流行りのものはDSLから逃れられないのでしょうかw。既存をGradleに置き換える必要は特段な事情がない限りやらなくていいと思います。

IntelliJ IDEA

ついにeclipseからの完全移行を果たしました。連休中にコツコツとキーバインドの設定をしつつ、連休明けにeclipseがあぼ〜んしたタイミングで万を持して移行しました。移行して2ヶ月、たまに迷ったりすることもあるんですけど慣れました。しかしGradleのプラグインだけはまだダメダメですね。

Ansible

構成管理のアレです。Chefに比べれば覚えること少なくて良いと思います。アプリ寄りのエンジニアにしてみたら、四六時中書くものでもないのでシンプルな方が絶対いい。

Fabric

以前はCapistrano使ってましたが、Fabricいいなぁと思い始めてます。pythonド素人レベルなんですけど、そんな自分にとっても見通しいいんですよね。

Docker

先日1.0.0がさらに盛り上がってますよね。たぶん次のプロジェクトでは積極的に使っていきそうな気がしてます。

CircleCI

軽くて安いアイツです。Docker対応がβですが出ました(サインアップしたけどレスなくてまだ使えてないけど)。

gulp

対Gruntですね。Gruntfileよりは書きやすいので良いかなぁという感じです。JavaとJS両方やってる人はとっつきやすいと思いますね。

golang

Scalaは好きだけど、現実的に流行りそうな気がするのはこれなんじゃないかなぁと。イマイチ「func」が好きになれないというか痒いんですが、それなりに楽しめそうです。

次の半年

さて、次の半年ですが某Mockをやりながらですが何か巨大なミッションが降ってきました。飽き性な自分にはピッタリだと思うので、モヒモヒしながらやっていこうと思います。