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

シューマイ_Tech_Lead_Engineerから最新技術を学べ_Rails編_登壇資料.pdf

 シューマイ_Tech_Lead_Engineerから最新技術を学べ_Rails編_登壇資料.pdf

More Decks by 最新技術のエンジニア勉強会!シューマイ! ~Tech Lead Engineer~

Transcript

  1. (C) Link and Motivation Group 2 リンクアンドモチベーション 江上 真人 役割:

    テックリード&EM 趣味:料理 twitter: @MasatoEgami やってること: - モチベーションクラウドシリーズの設計・ 開発 - 性能改善プロジェクトのPM (※) 当社調べ。2019年6月時点。 はじめに 自己紹介
  2. (C) Link and Motivation Group 5 すべての組織が、これで変わる - モチベーションクラウドシリーズ -

    2016年リリース モチベーションクラウドは、組 織 状 態を診 断 ・ 改 善 することができる、 国 内 シェア No.1 (※)の組織改善クラウドサービスで す。 2019年リリース コミュニケーションクラウドは紙の社 内 報 やイントラネットに 代 わる、 社 内 コミュニ ケーションプラットフォームです。 2019年リリース チームワーククラウドはミドルマネジメント・ チームマネジメント強 化を実 現する、オー ルインワンコラボレーションツールです。 (※) 当社調べ。2019年6月時点。 モチベーションクラウドシリーズのご紹介 あらゆる組織の エンゲージメント向上をめざすクラウドSaaSです
  3. (C) Link and Motivation Group モチベーションクラウドシリーズの価値 モチベーションクラウドシリーズには 二つの価値があります 7 お客様にとっての

    モチベーションクラウドシリーズ 社会にとっての モチベーションクラウドシリーズ 組織状態を可視化し 離退職を防ぐ等、経営改善をする 楽しく働く人を増やし 世の中からブラック企業なくす
  4. (C) Link and Motivation Group Railsのレールに乗ってたら鈍行だった話 1 問題になった場所 12 1.

    Railsが非効率な書き方になってる 2. APIから情報返しすぎてる 3. 統計情報を毎回計算してる 4. 非同期処理が直列になってる 5. 大量処理を同期的にやってる 6. ロックでエラーになる
  5. (C) Link and Motivation Group Railsのレールに乗ってたら鈍行だった話 1 問題になった場所 13 1.

    Railsが非効率な書き方になってる 2. APIから情報返しすぎてる 3. 統計情報を毎回計算してる 4. 非同期処理が直列になってる 5. 大量処理を同期的にやってる 6. ロックでエラーになる
  6. (C) Link and Motivation Group DBのindex問題への対応(見つけ方) 28 1. データベースのslow.logをみる 2.

    EXPLAINで検証しつつ、適切なindexをはる ※mysqlだとlog_queries_not_using_indexesをONにすればindex を使っていないクエリをslow.logに吐くことができる だれか Gemとか知ってたら逆に教えてください
  7. (C) Link and Motivation Group そのほか問題になった場所への対応 29 1. Railsが非効率な書き方になってる 2.

    APIから情報返しすぎてる 3. 大量処理を同期的にやってる 4. 統計情報を毎回計算してる 5. 非同期処理が直列になってる 6. ロックでエラーになる 設計を変える - 統計テーブル作る - アーキテクチャ変える - テーブルの責任を分離する - indexはる 仕様を変える - pagingする - 非同期にする コードを変える
  8. (C) Link and Motivation Group 性能改善プロジェクトをやっていて感じること 30 - コードだけで解決できる問題は少ない 性能改善前、n+1など大量に出ていたのでそれが原因であること

    が大半だろうと思っていたが、結局DB設計変更しないといけない ケースが3割(工数では5割)をしめた - 設計変えるより仕様変える方が大変 SaaSということもあり、仕様変更は各所への連携など開発外の タスクが増えるので大変 開発初期からpagingなど想定可能なものは対応しといた方がい い
  9. (C) Link and Motivation Group 募集職種 下記職種を募集しています 【仕事内容】 ・フロントエンドの設計、開発、計測 ・高速に動作して使いやすく、再利用可能なUIコンポー

     ネントライブラリの開発 ・StoryBook, Cypress, webpackなどを利用したフロン  トエンド開発基盤の構築や改善 ・最近取り組んでいること https://qiita.com/advent-calendar/2019/mcs 【必須スキル】 ・SPAのフロントエンドの設計、開発、運用スキル ・AWSやGCPなどのクラウド上でのWebアプリケーショ  ンの開発経験 ・フロントエンドにおけるユニットテスト、E2Eテストの  知識 ・リンクアンドモチベーションのビジョン・ミッションへの共感 ・継続した技術への興味と学習習慣 フロントエンドエンジニア (モチベーションクラウド) 【仕事内容】 ・モチベーションクラウドのAPI、Webアプリケーション  の設計、開発、テスト、計測、運用 ・アプリケーション要件に基づいたアーキテクチャの設  計、ミドルウェアの選定 ・パフォーマンスチューニング、モニタリング環境の構築 ・最近取り組んでいること https://qiita.com/advent-calendar/2019/mcs 【必須スキル】 ・RailsなどのWAFを用いたWebサービスの開発経験 ・AWSやGCPなどのクラウド上でのWebアプリケーションの  開発経験 ・ソフトウェアのパフォーマンスに関する知識 ・リンクアンドモチベーションのビジョン・ミッションへの共感 ・継続した技術への興味と学習習慣 サーバーサイド エンジニア (モチベーションクラウド)
  10. (C) Link and Motivation Group 募集職種 下記職種を募集しています 【仕事内容】 ・アプリケーションやミドルウェアの運用 ・アプリケーションに関わるセキュリティの設計と運用

    ・開発環境、リリースフロー、テスト環境の整備 ・最近取り組んでいること https://qiita.com/advent-calendar/2019/mcs 【必須スキル】 ・TCP/IP, HTTP などのネットワークプロトコルやアーキテ  クチャに対する理解 ・少なくとも1つ以上の言語を用いたソフトウェア開発経験 ・AWSやGCPなどのクラウド上でのWebアプリケーションの  運用経験 ・Webアプリケーションセキュリティに関する知識 ・リンクアンドモチベーションのビジョン・ミッションへの共感 ・継続した技術への興味と学習習慣 SRE (モチベーションクラウド) 【仕事内容】 ・品質ポリシーの策定 ・開発するサービスやアプリケーションに対するテスト分  析、設計、実装 ・テスト自動化の促進や、開発支援ツールの開発・運用・支  援業務 ・最近取り組んでいること https://qiita.com/advent-calendar/2019/mcs 【必須スキル】 ・ソフトウェア品質やソフトウェアテストに関する知識、経  験 ・ソフトウェアのテスト設計経験 ・テスト自動化(Web/モバイルネイティブアプリケーショ  ン)の知識、経験 ・Webアプリケーションセキュリティに関する知識 ・リンクアンドモチベーションのビジョン・ミッションへの共感 ・継続した技術への興味と学習習慣 QAエンジニア (モチベーションクラウド)