Upgrade to Pro — share decks privately, control downloads, hide ads and more …

さらば,APIコントローラ / OthloTech#45 年度末LTパーティー

さらば,APIコントローラ / OthloTech#45 年度末LTパーティー

Naoki Ikeguchi

March 25, 2019
Tweet

More Decks by Naoki Ikeguchi

Other Decks in Programming

Transcript

  1. #OthloTech

    View Slide

  2. 去年のプロコンプロダクトの話する
    Siketyan
    @ OthloEvent#45 年度末LTパーティー @ 名古屋ギークバー
    今さら

    View Slide

  3. 去年のプロコンプロダクトの話する
    Siketyan
    @ OthloEvent#45 年度末LTパーティー @ 名古屋ギークバー
    今さら

    View Slide

  4. さらば, API コントローラ
    Siketyan
    @ OthloEvent#45 年度末LTパーティー @ 名古屋ギークバー

    View Slide

  5. 自己紹介
    • 春から も 豊田高専 情報工学科
    • C# + WPF で GUI を書く
    • C# + ASP.NET Core で API バックエンドを書く
    • Java や PHP も書く
    • JetBrains 信者
    • Vim と Sublime Text を使う
    • 2~4スペースインデント派
    • Nuxt.js をはじめました!!!!!!!!!!!!!
    Twitter: @siketyan

    View Slide

  6. 春ですね

    View Slide

  7. API コントローラ,書いてますか?

    View Slide

  8. API コントローラ書きがちな環境
    • Laravel : PHP
    • ASP.NET (Core) : C# (.NET)
    • Express : JavaScript (Node.js)
    etc...

    View Slide

  9. 書くのだるくないですか?

    View Slide

  10. API バックエンド書く手順
    1. まずはモデルを書きます
    2. つぎにマイグレーションを書きます
    3. そしてコントローラを書きます
    4. さいごにルーティングをします
    5. 必要があればミドルウェアを書いたりします
    6. できあがり
    (Laravelの場合,一例)

    View Slide

  11. API バックエンド書く手順
    1. まずはモデルを書きます
    2. つぎにマイグレーションを書きます
    3. そしてコントローラを書きます ←ここだるくない?
    4. さいごにルーティングをします
    5. 必要があればミドルウェアを書いたりします
    6. できあがり
    (Laravelの場合,一例)

    View Slide

  12. 春は別れの季節

    View Slide

  13. API コントローラとおさらばしよう

    View Slide

  14. ちなみに結論からいうと

    View Slide

  15. まだできてないです

    View Slide

  16. じゃあどうするのか

    View Slide

  17. モデルだけ書いて,終わりたい

    View Slide

  18. Modelized
    No more Controllers, just Models.
    (仮)

    View Slide

  19. 理想

    View Slide

  20. [Route(“/user”)]
    [Provide(typeof(SqlProvider))
    [Deny(HttpMethod.Put | HttpMethod.Delete)]
    public class User : IModel
    {
    [Key]
    [UniqueId]
    public string Id { get; set; }
    [Fillable]
    [Required]
    [MaxLength(256)]
    public string Name { get; set; }
    }

    View Slide

  21. これを書くだけで
    コントローラもルーティングもできちゃう
    (予定)

    View Slide

  22. Modelized(仮)で
    API コントローラにおさらばしましょう
    (一通り実装したらOSSとして公開予定です)

    View Slide

  23. ご清聴ありがとうございました

    View Slide