Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CloudSignでのGo言語でのサービス開発
Search
Koichi Wada
November 02, 2016
Programming
2.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CloudSignでのGo言語でのサービス開発
CloudSignでGoを選択した際の経緯と、Goにして良かったという話です
Koichi Wada
November 02, 2016
More Decks by Koichi Wada
See All by Koichi Wada
堅牢なアプリケーション開発を目指して / First steps to build a robust and secure application
koichiwada
0
1.6k
CloudSignの裏話 / Inside Story of CloudSign
koichiwada
1
3k
Other Decks in Programming
See All in Programming
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
280
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
Railsバージョンを4倍にした話
optim
0
920
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
610
Seven New Principles of Software Engineering
yegor256
0
440
Next.js: The final boss of Web Performance
guaca
0
380
まずはコードより業務と向き合う:テーブル解体のためにPdMを呼んだ話
sakawe_ee
0
140
Crash Auto Pipelines
veronikapj
1
350
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
180
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
340
はじめてのPLATEAU
nokonoko1203
1
350
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.1k
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2.2k
Product Roadmaps are Hard
iamctodd
55
13k
Optimizing for Happiness
mojombo
378
71k
Become a Pro
speakerdeck
PRO
31
6.3k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
560
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
520
Automating Front-end Workflow
addyosmani
1370
210k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
Statistics for Hackers
jakevdp
799
230k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
610
Are puppies a ranking factor?
jonoalderson
2
4.1k
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 ͋Γ͕ͱ͏͍͟͝·ͨ͠