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

【TECH x GAME COLLEGE #7】ゲームの品質を向上させるサーバー共通基盤の作り方

Takehata Naoto
November 07, 2018
870

【TECH x GAME COLLEGE #7】ゲームの品質を向上させるサーバー共通基盤の作り方

TECH x GAME COLLEGE #7の発表資料です。

発表内容(connpassページより):
スマートフォンをはじめとした、いわゆる「ソーシャルゲーム」の開発・運用ににおいて、 サーバーサイドプログラムの安定は必須となっています。 サイバーエージェントグループの一社であるアプリボットでは、 これまで約8年間、様々なソーシャルゲームの開発を行ってきました。

その間に様々な技術を使う中で、 認証やユーザー管理をはじめとする全てのゲームで使う共通機能や、 開発開始時から必要になる機構をまとめた「サーバーサイド共通基盤」を作り、 現在のプロダクトはそれをベースに開発をすることで 大幅な開発工数の削減、品質の安定化を実現しています。

今回は実際に共通基盤の開発をしている中で得た、

共通基盤として作っておくべき機能
技術選定の考え方
精度の高い共通基盤を開発するための進め方
作った共通基盤を組織で浸透させていく方法
作った共通基盤をメンテナンスし発展させていく方法
といったノウハウについてご紹介します。

https://techxgamecollege.connpass.com/event/103223/

Takehata Naoto

November 07, 2018
Tweet

Transcript

  1.  )70 1 2 1 1 647 1 1 U

    @ 74 K C ## # ##( # # # # S . . E J C J CEDEC2018
  2.  2201 00. /2 / 0 7 a b H

    : c gh P 2201 ./ 00. /2 / 0
  3.    • Kotlin • SpringBoot • MyBatis •

    KotlinTest • Gradle • gRPC Kotlin  SpringBoot     
  4. ( ) - - B:L - P - - -

    C D C A P - - R - - E R - - I E
  5.  • ) () D • D ) • D

    B D • D • M D • D ) D
  6.  • (' •   • %" • "

    & •  !#$ • )
  7.    - 3 DG 1 . 1- S

    3 - K G 1- 4 2. 33 2F
  8. @Controller @RequestMapping("/user/*") class UserController() : BaseController() { @PostMapping("/update/name") fun updateName(@RequestBody

    request: UpdateNameRequest): UpodateNameResponse { val response = UpdateNameResponse() //  return response } } • I • BC
  9. &

  10.    • ( )(3/" '% • "$ 

    & ' % •  *+2,3."!  #& -012)&#& $  
  11.      •  !#"  

    •   • 
  12.      •  !#"  

    •   •  
  13. ' 5:8/41( -   • 2=70<&,(*%  ! •

     )&"#.9;(* 3>6> !) +$#
  14.      •  !#"  

    •   • 
  15.  *!& • #(. (+*  ' / • 

    (0/ " $', $&1$-% • 3968(749) 2:5
  16.      •  !#"  

    •   • 
  17.   var message: String = null   

    var message: String? = null   null 
  18. var user: User? = User() user.name &#$  "% !

      if (user != null) { user.name }    
  19.  • ## B8ELSI24**&(%<! K PSNQSD • !"#<< <69271A7.@ •

    24 -JKCSMRG0!"#>? ; /54 • $)'+,8<= :.0-HOPRF3@= .9 24
  20. )! #& (ms) *#'+# (ms) gRPC 2.92 3.6 REST 7.16

    12.78 20183    • ")($%")($ • )! #& *#'+# 
  21. / / : K - ) PU J f e

    cgab ( 0 / 0 1 2C 3 1 8 : .: C R - ) K ( 0 / 0 1 1 : : C
  22.   •   -02/12) •  Spring! &(*.+2,#

     • Kotlin #&JUnit$&% '"$
  23. K 2 2 /: B 2 892 0 1 8:

    - 0 88 2- . 8 2 /: 2 0 2 2 :892 0- 2 1 2 /:
  24.  • 45-=8<0( 6;1.3 "! ,$ • *%  *

    , • +#29:</* '& +)++#703
  25. S  • A E ) ) • ( (

    - ( ( 3 G3 J •
  26. Example  A   !   A 

    !! A    A     
  27. a ) ( E F E F EK EK )

    ( E F S e EK E F E ( E F E F
  28. a  • 4.8 88 0/3 8 8240 • T

    R • A 3 . 82 - 4.8 /8 5 4 48 18: -:
  29.     • - 5 5 3 A

    0 • - 5 .    
  30.   •   –  – String Template

    –  –   – etc… •  – Null – valvar 
  31. U a cC 2 b R 1::7 0 77 2

    : - 7 # ## 28 2 ./ 8.
  32.     • 3 3 J ) •

    ) 3 R J I - • 3 C MP ( ) B G
  33.