Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
社外秘 Confidential ドキュメントからコードを生成したい on Rails 開発 ラクスル株式会社 宮田 聖也
Slide 2
Slide 2 text
© 2021 RAKSUL, inc. All rights reserved. 社外秘 Confidential 自己紹介 サーバーサイドエンジニア 印刷のラクスルのエンタープライズ向け開発 ● 16 時退勤が夢です 好き:DevOps、エレキギター、フィルムカメラ、 欧州サッカー、クラフトビール 2 @38tter_miya
Slide 3
Slide 3 text
© 2021 RAKSUL, inc. All rights reserved. 社外秘 Confidential よくある Rails 新規開発の流れ Ruby on Rails : MVC (Model - View - Controller) フレームワーク 1. モデル設計 ドメイン知識をモデル定義に落とし込む ER 図等でドキュメント管理する 2. マイグレーション マイグレーションファイルを書く 3. ビジネスロジックの記述 3
Slide 4
Slide 4 text
© 2021 RAKSUL, inc. All rights reserved. 社外秘 Confidential モデル設計:Notion に、 ER 図描きつつ、あーだこーだ(字余り) 4 オンラインでありがちな状況 最近よく使うのは mermaid 記法
Slide 5
Slide 5 text
© 2021 RAKSUL, inc. All rights reserved. 社外秘 Confidential モデル設計:Notion に、 ER 図描きつつ、あーだこーだ(字余り) 5 https://mermaid.js.org/
Slide 6
Slide 6 text
© 2021 RAKSUL, inc. All rights reserved. 社外秘 Confidential 悩み:熱いうちに鉄を打ちたい モデル定義が固まったあとはすぐ開発に取り掛かりたい モデル議論の後 = 開発効率が高い状態 ドキュメントからマイグレーションへの変換 地味にまどろっこしい `rails generate migration` でボイラープレートを生成する感覚で、変換したい ... そこで... 6
Slide 7
Slide 7 text
© 2021 RAKSUL, inc. All rights reserved. 社外秘 Confidential mergration という gem を作りました (mer)maid の ER 図をパースして mi(gration) ファイルを生成 7
Slide 8
Slide 8 text
© 2021 RAKSUL, inc. All rights reserved. 社外秘 Confidential mergration という gem を作りました (mer)maid の ER 図をパースして mi(gration) ファイルを生成 8
Slide 9
Slide 9 text
© 2021 RAKSUL, inc. All rights reserved. 社外秘 Confidential デモ 9
Slide 10
Slide 10 text
© 2021 RAKSUL, inc. All rights reserved. 社外秘 Confidential やっていること 1. mermaid 記法のパース kramdown という markdown パーサーを拡張して mermaid に対応 2. マイグレーションファイルの生成 マイグレーションのテンプレートを用意 パース結果を元にマイグレーションを動的に生成 10
Slide 11
Slide 11 text
© 2021 RAKSUL, inc. All rights reserved. 社外秘 Confidential 所感&これからやりたいこと 「ドキュメントからボイラープレート生成」の開発者体験は良い プロトタイピング、ハッカソン等、開発時間限られる場合にも good 「ドキュメントとコードを同期できる」体験にも近づけたい 編集後の ER 図から差分のマイグレーションファイルの生成 シーケンス図による記述から、コードの雛形を生成 11
Slide 12
Slide 12 text
© 2021 RAKSUL, inc. All rights reserved. 社外秘 Confidential PR, issue, feature request コメント等々 お待ちしています!! 12 https://github.com/38tter/mergration