Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Goで社内向け管理画面を楽に作る方法
yudppp
July 13, 2018
Programming
5
8.8k
Goで社内向け管理画面を楽に作る方法
Vironとgoaを使って社内向け管理画面を楽に作る方法の紹介
https://golangtokyo.connpass.com/event/92225/
にてLTさせていただきました。
yudppp
July 13, 2018
Tweet
Share
More Decks by yudppp
See All by yudppp
2019年 HRBrainの技術的挑戦 / hrbain technology challenge 2019
yudppp
3
840
Web開発を支えるマイグレーションツールについて / sqldef introduction for psql users
yudppp
2
1.7k
ISUCON向けのツールを作った話 / isutools
yudppp
1
130
Row Level Securityはマルチテナントの銀の弾丸になりうるのか / Row Level Security is silver bullet for multitenancy?
yudppp
18
9.9k
Webサービス開発に必要な統計学入門 / study of statistics for web developers
yudppp
1
140
メジャーな Live Reloaderの違いをちゃんと調べて見た / Compare major live reloader of Go
yudppp
1
1.6k
今年お世話になったnpm module
yudppp
1
580
カバレッジ95%以上を実現した テストコードの書き方
yudppp
0
2.2k
Other Decks in Programming
See All in Programming
Composing an API with Kotlin (Kotlin Dev Day 2022)
zsmb
0
250
roadmap to rust 2024
matsu7874
1
740
SPA/MPA 議論の俯瞰と 現代における設計のポイント - #tfcon 2022 フロントエンド設計
ahomu
3
1.7k
Reactでアプリケーションを構築する多様化
sakito
4
3.2k
Kueue入門/Kueue Introduction
bells17
0
510
バンドル最適化マニアクス at tfconf
mizchi
3
2.1k
Groovy Roadmap
paulk
7
13k
2022 FrontEnd Training
mixi_engineers
1
280
New Relicを使った Observabilityの実現方法と活用例 / gocon 2022 spring after talk
budougumi0617
0
1.1k
Let's make a contract: the art of designing a Java API
mariofusco
0
160
Git Rebase
bkuhlmann
7
1k
コードの解析と言語習得の心得
jinjin33333
0
130
Featured
See All Featured
Visualization
eitanlees
124
11k
Designing for Performance
lara
596
63k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
3
430
The Cult of Friendly URLs
andyhume
68
4.7k
How to name files
jennybc
39
58k
Raft: Consensus for Rubyists
vanstee
126
5.4k
Designing with Data
zakiwarfel
91
3.9k
Rebuilding a faster, lazier Slack
samanthasiow
62
7.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
14
34k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
181
15k
Art Directing for the Web. Five minutes with CSS Template Areas
malarkey
196
9.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
7
1k
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