こんにちは。Gemcookのバックエンドエンジニアのbeatsこと栄です。
11月も半ばとなり、肌に吹く風の冷たさから冬が近づいていることを実感している今日この頃です。
先日GemcookのバックエンドチームがGoのOSSを公開しました。
複数のエラーを1つのエラーにまとめることができるライブラリです。
まとめたエラーは整形表示(Pretty-print)することが可能で、プリントデバッグしたい時等にも役立ちます
今年の9月にフロントエンドチームがOSSを公開しましたので、本年度2つ目のOSS公開となります。
開発のモチベーション
「痒いところに手が届くライブラリが欲しい」が今回の開発のモチベーションです。
Gemcookのバックエンド開発は基本的にはGoで書いています。
今回開発したライブラリと似た機能を持ったものは既にいくつか存在しており、以前はそれらを利用していました。
利用する中で不満こそ無かったのですが、もう少し自分達の開発のユースケースに合った機能を持った痒いところに手が届くライブラリが欲しい、という声はメンバーから頻繁に挙がっていました。
既存のライブラリにプルリクエストを出すことも検討しましたが、本当に自分達のユースケースに合わせるのであれば1から作っても良いのではというテックリードからの助言もあり、開発プロジェクトスタートに至りました。
開発の所感
「普段とは別の意識を持ってコードを書くのが大変だった」が今回の開発の所感です。
普段の開発ではユーザーに利用されるアプリケーションの機能を実装する為にソースコードを書いていますが、OSS開発はエンジニアがソフトウェアを実装する為に利用するソースコードを書く必要がありました。
世界中のエンジニアが利用する可能性があるということは、勿論自分達の想定していないような使われ方をすることも有り得ます。
どのくらい汎用性を持った構成にしたら利用しやすいか?標準ライブラリと組み合わせて利用された時にお互いが正しい挙動をするか?等、これまでの開発では強く意識したことは無かった点に目を向けながらコードを書くのは思っていた以上に大変でした。
ですが、大変であった分、公開完了した時の充実感や達成感は非常に大きいものでした。
バックエンドチームとしても私個人としても良い経験ができ、技術の引き出しも増えたと感じています。
最後に
OSSは公開することがゴールではありません。
これまではGemcookメンバーだけで開発をしていましたが、これからは世界中のエンジニアと共にメンテナンスを継続していき、より良いOSSを目指していこうと思います。(エンジニアの皆様、是非フィードバックやプルリクエストを!)
現在Gemcookでは一緒に働く仲間を募集しています。
アプリケーション開発やOSS開発に興味のある方の御応募をお待ちしています。