新規事業の開発メンバーが1人→n人に増えるのを支えた技術 / Technology that supported growing number of engineers in new business

13d936e697fe0f4fa96f926d0a712f6c?s=47 Sansan
October 23, 2019

新規事業の開発メンバーが1人→n人に増えるのを支えた技術 / Technology that supported growing number of engineers in new business

■イベント
Sansan Builders Box 2019
https://jp.corp-sansan.com/sbb2019/

■登壇概要
タイトル:新規事業の開発メンバーが1人→n人に増えるのを支えた技術

登壇者:
新規事業開発室 加藤耕太

▼Sansan Builders Box
https://buildersbox.corp-sansan.com/

13d936e697fe0f4fa96f926d0a712f6c?s=128

Sansan

October 23, 2019
Tweet

Transcript

  1. None
  2. Sansan Builders Box  o  Ih P  6

     Agenda
  3. & 2 y6 6yo 2 o y6 4 10 6

    o 6 to
  4. None
  5. Sansan Builders Box M Sansan Eight DSOC CSIRT CTO /

    CPO 150  
  6. B2B t o t 1 4

  7. Sansan Builders Box    PdM: Product Manager

  8. Sansan Builders Box   TypeScript , Next.js, React, Redux

     BFF (Backend for Frontend)  Python, Django   Kotlin, Ktor
  9. Sansan Builders Box o / n App Engine Frontend App

    Engine BFF App Engine Backend Cloud SQL Cloud Storage Cloud Tasks Cloud Functions a d Stackdriver Cloud Build CI / CD / ConvertAPI
  10. 4

  11. Sansan Builders Box  6 6 ID:1 6 ID:2 6

    Ih 2 ID:1 6 S  o 6 6 S  3,000 6 Ih n
  12. Sansan Builders Box  h 2  h n

  13. Sansan Builders Box 2019-10 2019-04 2018-12 1 4 6 o

  14. Sansan Builders Box 1 4 o he 2 Ih 6

    2 6
  15. Sansan Builders Box o Facebook 6e

  16. M

  17. Sansan Builders Box 1. 6 r6 6 2. CI 3.

    8Kotlin9 4. I 5. App Engine o M
  18. Sansan Builders Box 6 r6 6 r6 6 n 6

    r6 Ih 1 1.
  19. Sansan Builders Box  TypeScript  Prettier  Python 

    Black  Kotlin  IntelliJ IDEA r6 6
  20. Sansan Builders Box  VS Code  .vscode/settings.json  IntelliJ

    IDEA  Save Actions Plugin  .idea/saveactions_settings.xml n { "editor.formatOnSave": true, "python.pythonPath": ".venv/bin/python", "python.formatting.provider": "black", "python.linting.pylintEnabled": false, "python.linting.flake8Enabled": true } <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="SaveActionSettings"> <option name="actions"> <set> <option value="activate" /> <option value="organizeImports" /> <option value="reformat" /> </set> </option> <option name="configurationPath" value="" /> </component> </project>
  21. Sansan Builders Box  r6 IhPR 6 o  Ih

     r6 6 6 h  6 S
  22. Sansan Builders Box 1. 6 r6 6 2. CI 3.

    8Kotlin9 4. I 5. App Engine o M
  23. Sansan Builders Box h I Cloud Build 8TypeScript9 1 2.

    CI
  24. Sansan Builders Box  GCP CIy6  YAML o Ih

    Docker  Cloud Build
  25. Sansan Builders Box  cloudbuild.yaml  next.config.js Cloud Build o

    t steps: - dir: frontend-service name: 'gcr.io/cloud-builders/nodejs/yarn' args: ['install'] - dir: frontend-service name: 'gcr.io/cloud-builders/nodejs/yarn' args: ['build'] const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin') ... webpack(config, options) { // TypeScript Ih if (process.env.NODE_ENV === 'production' && options.isServer) { config.plugins.push(new ForkTsCheckerWebpackPlugin()) } return config },
  26. Sansan Builders Box  Cloud Build h  : https://cloud.google.com/cloud-build/docs/run-builds-with-github-checks

     PS 2 I
  27. Sansan Builders Box 1. 6 r6 6 2. CI 3.

    8Kotlin9 4. I 5. App Engine o M
  28. Sansan Builders Box y6 6yo 6 S1 o y6 Kotlin

    Python → Kotlin 1 + 3. Kotlin K
  29. Sansan Builders Box  S Ih P   Ih

    eh 6  S h h  Python Web t
  30. Sansan Builders Box   Standard 2 o  

    Google App Engine o Java 11 (Beta) Java Kotlin Scala Go 1.12 Go Node.js TypeScript Kotlin • 6 h • • https://cloud.google.com/appengine/docs/standard/runtimes?hl=ja
  31. Sansan Builders Box a Python → Kotlin App Engine Frontend

    App Engine BFF (Python) App Engine Backend (Kotlin) App Engine Frontend App Engine Backend (Python) o Kotlin S 2 Python BFF S a Before After
  32. Sansan Builders Box  6 P

  33. Sansan Builders Box 1. 6 r6 6 2. CI 3.

    8Kotlin9 4. I 5. App Engine o M
  34. Sansan Builders Box →DB→ Ih 6 6 h 6 S

    Ih aJSON Ih o 1 4. o 4
  35. Sansan Builders Box o Home Controller Test User Controller Test

    Admin Controller Test DB (PostgreSQL) tenant_homecontrollertest tenant_usercontrollertest tenant_admincontrollertest
  36. Sansan Builders Box CI oID Home Controller Test Home Controller

    Test DB (PostgreSQL) tenant_e04168c-homecontrollertest tenant_de7fbf4-homecontrollertest e04168c de7fbf4
  37. Sansan Builders Box  json-fuzzy-match o P  #uuid #string

    e 6s6 I JSON JsonStringAssert.assertThat(response.content).jsonMatches(""" { "id": "#uuid", "title": "Example Book", "price": "9.99", "currency": "USD", "amount": 10, "timestamp": "#string" } """.trimIndent()) https://github.com/orangain/json-fuzzy-match
  38. Sansan Builders Box  h S h

  39. Sansan Builders Box 1. 6 r6 6 2. CI 3.

    8Kotlin9 4. I 5. App Engine o M
  40. Sansan Builders Box 6 h S h 6 eh h

    GitHub pushIh 2 oIhe 1 5. App Engine n
  41. Sansan Builders Box  GitHub pushIh 2 o 2 n

    n https://buildersbox.corp-sansan.com/entry/2019/10/01/110000
  42. Sansan Builders Box  6 n h 2 h

  43. Sansan Builders Box GCP o 3

  44. Sansan Builders Box  App Engine Flexible oIh  Flexible

    2 n S 1o 8 r 2o 9 h  o n Ih 2 o S h S P  6 S  8 9 PS h e Ih
  45. None
  46. Sansan Builders Box  h 2   PS h

    e Ih  PS S  8 9  2 h S h
  47. Sansan Builders Box  6  Ih  S M

  48. Sansan Builders Box  P h Ih

  49. Pt P

  50. Sansan Builders Box We are hiring!! https://jp.corp-sansan.com/recruit/midcareer#engineer

  51. None