2015年振り返り

仕事全般

2013年にA社を退職したあと、しばらくフリーランスをやっていたのだけど、紆余曲折あって2014年の途中から古巣に戻って、現場でコードも書きつつ経営にもコミットしてました。良いこともあったし盛大に失敗したこともあったけど、そこそこ充実してた1年だった気がする。

github-contributions

毎日コードを書く…というのは残念ながら無理だった。が、自分が書かなくても仕事がまわる状況になってきたという意味では正しいかたちなのかもしれない。

来年はもう少しプライベートでコードを書く機会を増やしたい。

Scala

仕事面では、去年から開発が続いているScalaプロジェクトが2本あり、無事にローンチすることができた。安定して運用もできている。どちらもスマートフォン向けゲームのバックエンドだったので、ひたすらJSONを返すAPIの実装だった。

自分は開発初期の基盤設計や開発方針・環境整備・テスト周りを整えるなどの作業が中心で、実際の実装はチームに任せっきりだった。一部設計がイケてなくて迷惑を掛けたかもしれない。

開発方針は、関数型の側面はあまり出さずPlay + ScalikeJDBCでDDDという方針にした。混乱もなく概ねうまくいったと思っているが、リポジトリに実装したメソッドの戻り型がほとんどTry[A]になっていて、引きずられるようにサービスレイヤーもTryだらけになっていた気がする。これで良いのかと若干の不安は残る。

なお、開発後期はずっとコンパイルの遅さとテストの遅さに悩まされる日々だった 1

プライベートではScalaz, Finagle, Finch, http4sなどを弄って遊んでいた。http4sにはしょうもないPRを送ったりするなどしていた。来年も引き続きScalaは使っていきたい。

Python

Pythonで直接何かを開発していた訳ではないが、Scalaの仕事をしているときに、sbtのタスクがあまりにも使いにくくてInvokeというPython製ツールで代用していた。Invokeで書いたタスクはのちにFabricに全面移行したけど、今年は間接的にPythonをよく読み書きした気がする。ああ、AnsibleもPythonだった。

Ruby

APIや管理画面の開発に使った。もうRuby(とRuby on Rails)は長いこと使っているのだけど、限られた時間のなかですぐ形にして出すという要求には強いなと改めて思った 2

あとRakeが何だかんだいって便利。

Rubyは来年も変わらず手に馴染むツールとして使ってると思う。

Golang

社内でも使われている言語なので把握くらいはしておこうと思いつつ、全然できていない。

Haskell

すごいH本を読みながら細々と家でコード書いたりしている。モナ◯や型クラスなどの概念はScalaで把握していたのでそこで躓くことは無さそう。ただ独特の構文に慣れるには書く頻度を増やさないとダメだ。

OCaml

Haskellをやりつつ最近はOCamlに浮気している。Real World OCaml読んで年越し予定。まだかじった程度だけど悪くなさそう。

C++

自分がC++を書くことが当面無さそう。ただ仕事でC++プロジェクトに少しだけ関わる雰囲気が出てきたので、ビルド周りなどを調べてた。Bazel良さそう。

Ansible

今年はよくAnsibleのYAMLを書いていた気がする。慣れていない初期は書いては実行し、失敗し、の繰り返しで正直嫌いになりかけた。

社内のプロジェクトは全てCircleCIから自動的にプロビジョニングするようになっていたけど、CircleCIからの多段SSHがとても不安定で、一部プロジェクトではCircleCIからAnsibleを実行するのは止めたようだ(直近関わっているプロジェクトでは多段SSHでプロビジョニングしているが安定はしてる。ただし遅い)

まぁ文句ばかり言ってるがChefよりは使いやすいと思っているので、きっと来年も使っていると思う。

Docker

本番環境で運用してみたいと思いつつ、出来ずにいる。

開発に必要なミドルウェアの提供やテスト環境の再現をするために一部プロジェクトで利用してる程度になって留まってしまっている。来年はもう少し活用の幅を広げたいなぁ。

Electron

眺めていただけ。フロントエンドの技術には置いて行かれている感がある。やばい

健康

概ね健康体を維持できているが、昔より疲労を覚えることが多くなってきた。単に運動不足だろって気もするが、なるほどこれが老いか。

あと天皇誕生日にウイルス性胃腸炎という一足早いステキなクリスマスプレゼントを頂いた。おかげで今年の最終出社日が22日になってしまい、年末年始の休日数だけは過去最高になった気がする。

学問

関数型言語を本格的に触り始めた影響で、数学や論理学を再勉強しはじめている。あまり捗っていないけど、これからも少しずつ勉強していくと思う。

  1. 結局CircleCIを捨てて、AWSにc4.2xlargeインスタンスを借りてDroneを動かす感じにしてしまった。 

  2. 4人で半年くらいかけて1サービスがローンチできた