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

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

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/

Sansan

October 23, 2019
Tweet

More Decks by Sansan

Other Decks in Business

Transcript

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

     BFF (Backend for Frontend)  Python, Django   Kotlin, Ktor
  2. 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
  3. 4

  4. 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
  5. M

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

    8Kotlin9 4. I 5. App Engine o M
  7. Sansan Builders Box  TypeScript  Prettier  Python 

    Black  Kotlin  IntelliJ IDEA r6 6
  8. 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>
  9. Sansan Builders Box 1. 6 r6 6 2. CI 3.

    8Kotlin9 4. I 5. App Engine o M
  10. 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 },
  11. Sansan Builders Box 1. 6 r6 6 2. CI 3.

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

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

    eh 6  S h h  Python Web t
  14. 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
  15. 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
  16. Sansan Builders Box 1. 6 r6 6 2. CI 3.

    8Kotlin9 4. I 5. App Engine o M
  17. Sansan Builders Box o Home Controller Test User Controller Test

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

    Test DB (PostgreSQL) tenant_e04168c-homecontrollertest tenant_de7fbf4-homecontrollertest e04168c de7fbf4
  19. 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
  20. Sansan Builders Box 1. 6 r6 6 2. CI 3.

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

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

    n https://buildersbox.corp-sansan.com/entry/2019/10/01/110000
  23. 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
  24. Sansan Builders Box  h 2   PS h

    e Ih  PS S  8 9  2 h S h