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
Goで社内向け管理画面を楽に作る方法
Search
yudppp
July 13, 2018
Programming
5
10k
Goで社内向け管理画面を楽に作る方法
Vironとgoaを使って社内向け管理画面を楽に作る方法の紹介
https://golangtokyo.connpass.com/event/92225/
にてLTさせていただきました。
yudppp
July 13, 2018
Tweet
Share
More Decks by yudppp
See All by yudppp
型安全なDrag and Dropの設計を考える
yudppp
5
940
未知のプログラミング言語にChatGPTと共に挑む
yudppp
0
480
SaaSフロントエンド開発の現場で求められる技術 / Technologies for SaaS Frontend Development in the Field
yudppp
2
250
2019年 HRBrainの技術的挑戦 / hrbain technology challenge 2019
yudppp
3
1.4k
Web開発を支えるマイグレーションツールについて / sqldef introduction for psql users
yudppp
2
3.5k
ISUCON向けのツールを作った話 / isutools
yudppp
1
310
Row Level Securityはマルチテナントの銀の弾丸になりうるのか / Row Level Security is silver bullet for multitenancy?
yudppp
23
33k
Webサービス開発に必要な統計学入門 / study of statistics for web developers
yudppp
1
330
メジャーな Live Reloaderの違いをちゃんと調べて見た / Compare major live reloader of Go
yudppp
1
1.9k
Other Decks in Programming
See All in Programming
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
320
Rails Girls Tokyo 18th GMO Pepabo Sponsor Talk
yutokyokutyo
0
130
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
150
高速開発のためのコード整理術
sutetotanuki
1
420
Sekiban + Microsoft Orleans のアクターをAWS対応しました / Sekiban + Microsoft Orleans actors are now supported on AWS.
tomohisa
0
110
個人開発は儲からない - それでも開発開始1ヶ月で300万円売り上げた方法
taishiyade
0
110
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために
junkiishida
1
130
iOSアプリでフロントエンドと仲良くする
ryunakayama
0
110
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
810
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
190
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
320
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2.1k
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
230
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Music & Morning Musume
bryan
47
7.1k
Utilizing Notion as your number one productivity tool
mfonobong
3
220
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
450
Evolving SEO for Evolving Search Engines
ryanjones
0
130
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
58
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.6k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
130
Transcript
Goで社内向け管理画⾯ を楽に作る⽅法 golang.tokyo #16 LT
⾃⼰紹介 • yudppp • 株式会社HRBrain所属 • 好きな⾔葉: 冪等性 • 好きなキーボード:
HHKB • Go歴4年 • ◦△□ - https://blog.yudppp.com/
4年間GoでWebサービスの 開発をしています。
それに合わせて 社内向けの管理画⾯も ⾊々作り続けてきました。 (社内向け≠エンジニア向け)
Revel
goji + html/template
Echo(API) + Node.JS
Echo(API) + SPA(VueJS)
go-zoo/bone(API) + Node.JS
chi + html/template
APIサーバー作って JavaScript側で管理させたり
薄めのRoutingとhtml/templateで 頑張ってました。
簡単な⽅法あればいいなと ⽇頃思ってました、、
また管理画⾯でJS書きたくない
・・・
GopherJSでもWasmでもないです
https://tech.camobile.com/entry/viron_20180201
Viron • C.A. Mobile製のOSS • Swagger.yamlを与えると管理画⾯が⾃動で できる • フロントコードの実装は全く書かなくて良い (全く書けない)
GoでSwaggerといえば、
goa • Go⾔語で書かれた独⾃のDSLを書くことで、 データ構造やバリデーションコードとハンド ラを⽣成する • Swagger.yamlも⽣成される。 • https://goa.design
全体像 デザインする ⾃動で⽣成される ⾃動で⽣成される DBと繋ぎこむ
全体像 デザインする ⾃動で⽣成される ⾃動で⽣成される DBと繋ぎこむ ͜Ε͚ͩΕཧը໘͕Ͱ͖Δ
Demonstration • ベースの構成は既に作っています。 • 記事の管理が既にあります。 • Descを設定できるようにしましょう。 • https://github.com/yudppp/viron-goa
Pros • リソースの管理画⾯だけなら作れる • 最初さえちゃんと作ればその後は簡単に追加 できる • そもそもSwagger.yamlあると⾊々嬉しい。
Cons • JavaScriptを書けないので難しいことができ ない • 最初の使い⽅に癖があるので⾃社向けにしか 向かなそう
まとめ • ⾃動で管理画⾯できていくのは未来感があっ て楽しい。 • 細かい所には⼿が届かなかったりするが、簡 単なリソース管理には向いている
Appendix • https://cam-inc.github.io/viron-doc/ • https://goa.design/ • https://github.com/yudppp/viron-goa • https://blog.yudppp.com/posts/viron_and_goa/ •
https://techblog.istyle.co.jp/archives/246