Slide 1

Slide 1 text

Goで社内向け管理画⾯ を楽に作る⽅法 golang.tokyo #16 LT

Slide 2

Slide 2 text

⾃⼰紹介 • yudppp • 株式会社HRBrain所属 • 好きな⾔葉: 冪等性 • 好きなキーボード: HHKB • Go歴4年 • ○△□ - https://blog.yudppp.com/

Slide 3

Slide 3 text

4年間GoでWebサービスの 開発をしています。

Slide 4

Slide 4 text

それに合わせて 社内向けの管理画⾯も ⾊々作り続けてきました。 (社内向け≠エンジニア向け)

Slide 5

Slide 5 text

Revel

Slide 6

Slide 6 text

goji + html/template

Slide 7

Slide 7 text

Echo(API) + Node.JS

Slide 8

Slide 8 text

Echo(API) + SPA(VueJS)

Slide 9

Slide 9 text

go-zoo/bone(API) + Node.JS

Slide 10

Slide 10 text

chi + html/template

Slide 11

Slide 11 text

APIサーバー作って JavaScript側で管理させたり

Slide 12

Slide 12 text

薄めのRoutingとhtml/templateで 頑張ってました。

Slide 13

Slide 13 text

簡単な⽅法あればいいなと ⽇頃思ってました、、

Slide 14

Slide 14 text

また管理画⾯でJS書きたくない

Slide 15

Slide 15 text

・・・

Slide 16

Slide 16 text

GopherJSでもWasmでもないです

Slide 17

Slide 17 text

https://tech.camobile.com/entry/viron_20180201

Slide 18

Slide 18 text

Viron • C.A. Mobile製のOSS • Swagger.yamlを与えると管理画⾯が⾃動で できる • フロントコードの実装は全く書かなくて良い (全く書けない)

Slide 19

Slide 19 text

GoでSwaggerといえば、

Slide 20

Slide 20 text

goa • Go⾔語で書かれた独⾃のDSLを書くことで、 データ構造やバリデーションコードとハンド ラを⽣成する • Swagger.yamlも⽣成される。 • https://goa.design

Slide 21

Slide 21 text

全体像 デザインする ⾃動で⽣成される ⾃動で⽣成される DBと繋ぎこむ

Slide 22

Slide 22 text

全体像 デザインする ⾃動で⽣成される ⾃動で⽣成される DBと繋ぎこむ ͜Ε͚ͩ΍Ε͹؅ཧը໘͕Ͱ͖Δ

Slide 23

Slide 23 text

Demonstration • ベースの構成は既に作っています。 • 記事の管理が既にあります。 • Descを設定できるようにしましょう。 • https://github.com/yudppp/viron-goa

Slide 24

Slide 24 text

Pros • リソースの管理画⾯だけなら作れる • 最初さえちゃんと作ればその後は簡単に追加 できる • そもそもSwagger.yamlあると⾊々嬉しい。

Slide 25

Slide 25 text

Cons • JavaScriptを書けないので難しいことができ ない • 最初の使い⽅に癖があるので⾃社向けにしか 向かなそう

Slide 26

Slide 26 text

まとめ • ⾃動で管理画⾯できていくのは未来感があっ て楽しい。 • 細かい所には⼿が届かなかったりするが、簡 単なリソース管理には向いている

Slide 27

Slide 27 text

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