Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CloudSignでのGo言語でのサービス開発
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Koichi Wada
November 02, 2016
Programming
0
2.1k
CloudSignでのGo言語でのサービス開発
CloudSignでGoを選択した際の経緯と、Goにして良かったという話です
Koichi Wada
November 02, 2016
Tweet
Share
More Decks by Koichi Wada
See All by Koichi Wada
堅牢なアプリケーション開発を目指して / First steps to build a robust and secure application
koichiwada
0
1.5k
CloudSignの裏話 / Inside Story of CloudSign
koichiwada
1
2.9k
Other Decks in Programming
See All in Programming
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
21
7.4k
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
440
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
610
AI巻き込み型コードレビューのススメ
nealle
2
1.2k
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
130
SourceGeneratorのススメ
htkym
0
200
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
100
高速開発のためのコード整理術
sutetotanuki
1
410
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
990
AgentCoreとHuman in the Loop
har1101
5
240
CSC307 Lecture 05
javiergs
PRO
0
500
Raku Raku Notion 20260128
hareyakayuruyaka
0
360
Featured
See All Featured
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
Site-Speed That Sticks
csswizardry
13
1.1k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
55
Paper Plane
katiecoart
PRO
0
46k
A Soul's Torment
seathinner
5
2.3k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
sira's awesome portfolio website redesign presentation
elsirapls
0
150
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Chasing Engaging Ingredients in Design
codingconduct
0
110
Transcript
CFOHPDPN *OD CloudSignでのGo⾔言語でのサービス開発 2016-‐‑‒11-‐‑‒02 弁護⼠士ドットコム株式会社 クラウドサイン事業部
和⽥田浩⼀一
[email protected]
CFOHPDPN *OD ⾃自⼰己紹介 • 和⽥田浩⼀一(わだこういち) • 所属 •
弁護⼠士ドットコム株式会社 (2015年年1⽉月⼊入社) • 担当 • クラウド契約 CloudSign の開発 • サーバー側 Go • フロント側 JavaScript
CFOHPDPN *OD CloudSign https://www.cloudsign.jp
CFOHPDPN *OD CloudSignの特徴 • 紙の代わりにPDF • ハンコの代わりに電⼦子署名 •
Webとメールで処理理が早い • 郵送費、印紙代不不要 • 契約書をクラウド上に保管 • 近くに弁護⼠士がいる(運営) • 2015年年10⽉月 サービス開始 • 2016年年10⽉月31⽇日時点 導⼊入企業数 3,800社 • 累累計契約締結件数 35,000件
CFOHPDPN *OD サーバー側実装 • Goでやってます • なぜGoなのか? •
よく聞かれます
CFOHPDPN *OD 私を取り巻く環境と職歴 • 弁護⼠士ドットコム … PHP • 私の前職
• ブログ検索索 … PHP • Twitter関連サービス … PHP • 写真共有サービス … PHP • その前 • WebじゃないところでC++, Javaなど • なぜ使い慣れたPHPではなくGoなのか?
CFOHPDPN *OD 開発開始時の状況 • 新しい独⽴立立したサービスの新規開発 • 契約書などを扱うので堅牢牢性が要求される
• 電⼦子署名を扱う必要がある • 新しいことが必要そうだ • それなりに⾃自由度度がある
CFOHPDPN *OD きっかけ • あるインフラエンジニアの⼀一⾔言 • Goでやりましょうよ •
噂 • このエンジニアは⾃自作のツールをGoで書いてるらしい • 有名どころのツールがGoで書かれてるらしい • 有名どころのサービスがGoを採⽤用しているらしい • 電⼦子署名なんかもいるし、ついでに新規技術を取り⼊入れるの はモチベーション⤴ Αͬ͠ɺௐͯΈΑ͏!
CFOHPDPN *OD 調査(試作)の結果 • 堅く作れそう • 静的型付 -‐‑‒ 変数や関数定義に曖昧さがなくなる
• コンパイル型 -‐‑‒ コンパイル時に⽂文法チェックがされる • C/C++を意外と簡単にリンクできる • 電⼦子署名のライブラリを呼び出せる • 特別難しいということもなさそう • 標準ライブラリにWeb⽤用の機能もある • フレームワークや外部ライブラリもそれなりにいろいろ Go!(࠾༻)
CFOHPDPN *OD ⾔言語⽐比較(社内/担当者のスキルに対する) ։ൃॳ ݎ࿚ੑ ӡ༻ੑ ݁ PHP ˕
˚ ̋ ϝσΟΞ͚ Go ˚ ˕ ̋ ࠓճ࠾༻ Scala ˚ ˕ ˚ ݟૹΓ
CFOHPDPN *OD 主だった使⽤用ライブラリ • Revel -‐‑‒ Webフレームワーク • https://revel.github.io/
• Genmai -‐‑‒ DBアクセス, ORM • https://github.com/naoina/genmai • AWS SDK • https://github.com/aws/aws-‐‑‒sdk-‐‑‒go/aws • Gomail -‐‑‒ メール • http://gopkg.in/gomail.v2 • Draw2d -‐‑‒ 画像⽣生成 • https://github.com/llgcode/draw2d
CFOHPDPN *OD Goの良良かったこと(1) • コンパイル時に全部の⽂文法チェック • 未使⽤用の変数名、使ってないライブラリが残らない •
必要なところを間違って消してもすぐわかる • 改修時に不不注意のバグが⼊入るということがほとんどない • ⽂文字列列、クロージャ、⾮非同期処理理なんかも普通のスクリプト ⾔言語と同じ感覚で扱える • これがC/C++だったら… (((;゚Д゚)))ガクガクブルブル • ⽐比較的簡単にC/C++のプログラムをリンクできる • CGO • Makefileいらず • GoとC/C++のソースを置いておくだけ
CFOHPDPN *OD Goの良良かったこと(2) • go fmt • 標準でソースをフォーマットするツールが付いている
• ソースがいつもきれい • go test • 標準でテストを⾏行行う機能が付いている • *_̲test.go を作ればテストできる • 推奨されているスタイル -‐‑‒ 短くわかりやすく • 名前は短く、スコープは⼩小さく • if エラーならすぐ return • etc.
CFOHPDPN *OD Goで難しかったところ • コンパイルが必要 • コンパイル済みバイナリのデプロイ計画が必要 •
画⾯面⽤用のテンプレートファイルの扱い • コンパイル済みバイナリには含まれない • 置き場と読み込みをマネジメントする必要がある • 成熟してない点 • フレームワーク、ORMを選ぶのが難しい • ライブラリのバージョン管理理 • 型システムに慣れが必要 • interface{}、埋め込み • PHPの便便利利機能に対応するものがなかったり • カタカナひらがな変換など → 対応表を⾃自作
CFOHPDPN *OD 今後 • CloudSignは… • さらに使いやすくするため改良良を続けていきます •
昨⽇日(11/01)無事⻑⾧長期署名機能をリリースすることが できました。 • メディアサイト以外の領領域でGoの採⽤用が広がるかも…
CFOHPDPN *OD ͋Γ͕ͱ͏͍͟͝·ͨ͠