- プロダクトマネージャー/PdM
- 26新卒エンジニア職
- カスタマーサクセス/ハイタッチ
- Other occupations (36)
- Development
- Business
- Other
弁護士ドットコムは、昨年から新規事業として、「法律(Legal)」×「IT(情報技術)」を駆使した「LegalTech」事業を展開しています。「LegalTech」第一弾としてリリースしたのが、Web完結型クラウド契約サービス「クラウドサイン」です。この「クラウドサイン」は、弁護士ドットコムで初めてGo言語を使って開発しました。
先日、みんなのウェディングさんと一緒に開催したエンジニア勉強会で、弁護士ドットコムのエンジニアである和田浩一が、「Go言語でのサービス開発」についてお話させていただきました。今回は、その内容についてご紹介したいと思います!
そもそも、「クラウドサイン」とはどういうものか?
「クラウドサイン」は、Web上で契約を結ぶことができるサービスです。これまでの紙による契約締結では、「印紙を貼ったり、郵送したり、コストがかかる」「過去に契約した契約書でスペースがとられる、探すのも大変」「押印や郵送作業などだけで1〜2週間かかる」といった問題があります。これらの問題はクラウド上で契約締結することによって、解決することができます。導入いただいている企業さまの中には、「クラウドサイン」を導入したことによる年間での売上インパクトは「2億円にも上る!」というお話もいただいています。
▼クラウドサインについてくわしくはこちら
https://www.cloudsign.jp/
そんな「クラウドサイン」を立ち上げるにあたって、重要なポイントがありました。それは、「堅牢性」です。契約書といった、ビジネスで重要な書類を扱うサービスなので、セキュリティを非常に重視して考えていました。さらに、契約締結というサービスの特性もあり、「電子署名」といった機能も求められました。「クラウドサイン」の開発担当となった和田は、「とにかく新しいことが必要だ」と考え、「クラウドサイン」に最適な言語の調査に取りかかりました。
見えてきたGo言語の特徴
Go言語を調査した結果、和田は「堅く作れそう」と感じたと言います。
「静的な型が付いていて、変数や関数の定義側と呼び出し側の双方に曖昧さがなく堅牢性を感じました。また、コンパイル時に文法チェックがされるコンパイル型だったことも、堅く作れそうだと感じた理由の一つです」(和田)
また、C/C++を比較的簡単にリンクできることから、電子署名のライブラリをリンクすることができ、工数を抑えられる点も魅力的だったようです。
- 堅く作れそう
- C/C++を意外と簡単にリンクできる
- 特別難しそうなところもなさそう
- 標準ライブラリにWeb用の機能もある
- フレームワークや外部ライブラリもそれなりにいろいろ
これらの理由から、和田はGo言語を採用することに決めました。
「PHPだと使い慣れているので、サービスの立ち上がりは早いでしょうが、変数名をタイポしても気がつかずにそのままになってしまうことがあったり、堅牢性を考えると不安な点があったので、Go言語を採用しました」(和田)
導入してみてどうだったか?
では、実際に使用してみどうだったのでしょうか?
Go言語の良かった点として、和田は「コンパイル時の文法チェックのおかげで、改修した時にバグが入ることがほとんどありませんでした。また、標準でフォーマットを整える機能や、テストを行う機能が付いていて簡単に扱えるため、開発環境をきれいに保つことが楽にできています」と言います。
一方、難しかった点もあります。
「コンパイルが必要なので、コンパイル済みバイナリのデプロイ計画が必要となります。また、テンプレートファイルのの扱いにも工夫がいります。PHPの方が時には便利なこともありました」(和田)
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
「クラウドサイン」はリリースからちょうど1年経ちました。現在もAPIの提供や機能改善など、さらに使いやすくするための改良を続けています。
弁護士ドットコムでは、一緒にサービスを拡大していくエンジニアを募集中です!新規事業にも力を入れていますので、和田のように一からサービスを作り上げていくような機会もあります。ご興味をお持ちいただけましたら、ぜひ話を聞きにきてください!
当日のプレゼン資料はこちらからご覧いただけます。より細かくGo言語についてまとめていますので、ぜひご覧ください!
https://speakerdeck.com/koichiwada/cloudsigntefalsegoyan-yu-tefalsesahisukai-fa