今日で仕事納めだったので、振り返っておく。今年はGoのコードをたくさん書けた1年間だったと思う。去年の後半から始まって、今年の3月末にリリースが完了した。モバイルアプリ用のpush配信周りの実装を担当したが、APNSに関連してHTTP/2を使ったやりとりとかも経験できて面白かった。周囲の特に上司の理解と協力もあって、社内でGoを使ったプロジェクトの実績が作れたのは大きかった。前例ができたからか、以降「Goでやります」と言いやすくなったし、リプレースのプロジェクトにもつながったと思う。自分のチームに配属になったのが6月からで、それからGoを教えて、社内で使うツールを作ってもらった。年末を目処にそこそこ使える形のあるものはできたので良かったと思う。研修が始まる前には、プログラミング自体を経験したことがない、という人にGoを教材としてプログラミングを教えることが正解なのかどうか、かなり悩んだ。現状Goでの、プログラミングが未経験という人に向けた情報が少ないと思う。参考になる事例も見当たらず、本当に研修を全うできるのか?という不安があった。言うと(本人にも伝えたが)途中で辛くなって、Railsでなんかパッと動くやつを課題に設定した方が、研修としては面白かったのでは?とか思ったこともあって、モチベーションが低かった時もあった。最終的には、そこそこのコードは普通に書けるねという感じになってきているし、良かったと思う。研修をしてわかったことは、新人でもGoで書いたコードは普通に質が高いというか、誰が書いても同じようなコードになるのが不思議だなと。瑣末なところはもちろん色々あるんだけど、おかしなコードを書いているってことは感じたことがない。リプレースRailsで作ったサイトをリプレースした。小規模なサイトだったので、Goで一から作ろうということになって、3サイトをリプレースした。リリースしてからリソースのグラフをたまに見ているが、Railsで起きていた徐々にメモリ消費が増えていくということもなく、安定している。サーバーのスペックを落としても充分さばけると思うし、お客さんの費用に直結するので、省リソースでサイトが運用できるというのは良いことだと思う。ついでに社内のサービスと接続するためのAPIクライアントも作れたので、ますますGoでプロジェクトを進めやすくなった。社内ツールもろもろchatops(ってもう死語?)とかその辺でslackのbot作ったりとか、他にも細々としたツールを作っていて、なんか作る時にはGoで作るようにしている。ポータビリティというか、コンパイルしてコピーして動くっていう手軽さは大きい。goaGoでウェブアプリケーション作るときに、あまり大きな(リフレクションを使うような黒魔術的)フレームワークは採用したくない。チーム開発する以上ある程度のルールは必要で、goaを使えばその辺を解消できると思う。基本的なバリデーションとか細々した実装がそこそこあってちょっとしんどい、みたいなところがラクできそう。goa自体はAPIサーバーを前提としていると思うけど、管理画面とかHTMLを返したいし、その辺を独自ジェネレーターとかDSL拡張とかで対応できないか試行錯誤しているところ。lambdaで動かしたりしたい。おわりに特にまとめはない。Goをやるぞ!と言って実際に実績が積めているのは大変嬉しいことだし、もっと社内でも普及活動をしていこうと思う。modへ移行する2018年振り返りと2019年やりたいこと月別アーカイブはてなブログをはじめよう!kentaro_kawanoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。