クラウドワークス エンジニアブログ

日本最大級のクラウドソーシング「クラウドワークス」の開発の裏側をお届けするエンジニアブログ

Rollbar による快適通知生活 (フロントエンド編)

こんにちは、エンジニアの Bugfire です。

自分の前の記事 でも Rollbar について書きましたが、今回はフロントエンド編です。

無法地帯

バックエンド(Rails)では、Rollbar による通知は便利に活用されており、対応したりみなかったことにしていたわけですが、フロントエンドでは以下の状況にありました。

  • あまりにもエラーが多い
  • エラーが多すぎて課金がすごいことになるのでかなり厳しめの RateLimit をかけていた
  • エラーが多すぎて slack 通知していない
  • 結局エラーを誰もみていない
  • SourceMap が登録されていないので、いざ登録されたエラーをみても分析が難しい

問題は、エラーが多すぎる件と SourceMap がないの二点です。それぞれ対応していきます。

目次

  • 無法地帯
  • Rollbar の設定
  • SourceMap
    • Webpacker 編
      • webpack の設定変更
      • AssetSync の設定変更
      • Rollbar へのアップロード
      • Source linking
    • Sprockets 編
      • SourceMap 生成部分の追加
        • lib/sprockets/uglifier_compressor.rb
        • uglify_with_source_maps
      • Rollbar へのアップロード
      • 問題点
  • 「エラーが多すぎる件」対策
    • XXX is not defined
    • 外部ライブラリに起因するケース
    • ブラウザ側のプラグイン等に起因するケース
    • Rollbar で特定エラーを無視する設定
      • botにより発生したエラーのケース
      • 例外以外のエラーのケース
      • 手がかりが全くないケース
      • 未知の Schema が存在するケース
      • 外部スクリプトのケース
      • スクリプトロードエラーのケース
      • 謎の Injection エラーのケース
  • 最後に
  • We Are Hiring!
続きを読む

イニシエのコードをモダンJS化

こんにちは。D&Aチームです。

クラウドワークスではユーザーの皆様により良い体験をしていただけるよう、クラウドワークス 安心安全宣言の取り組みを進めています!

そんな中、私たちのチームでは、ほぼ初めてのフロントエンドの開発に関わることになりました。 新規での開発ではなく、既存の実装からの更新という形となるのですが、それは古の時代のCoffeeScriptで書かれたものでした。

今回のブログはフロントエンドモダン化までの流れについて書いていこうと思います。

目次

続きを読む

Elasticsearchのバージョンを6.8系から7.5系にアップグレードしました

f:id:t0yohei:20200604122036p:plain

こんにちは、 @t0yohei です。今回は、1つ前のElasticsearchのバージョンを5.6系から6.8系にアップグレードしました のブログに続けて、 Elasticsearch v7.5 系までのアップグレードについて書いていきます。

この記事では、 v6.8 系へのアップグレードの方で書かれていたアップグレードの進め方やタスク管理法には触れず、 v7.5 系へのアップグレードで必要だった対応や課題についてのみ書いていきます。 v6.8 系アップグレード時の進め方がすごくやりやすかったので丸パクリ結果、書くネタがないという。

アップグレード全体に対してや、破壊的変更の一覧については下記の公式ドキュメントをご参照ください(リンク先はこの記事作成時点で最新の v7.7 のドキュメントになっています)。 https://www.elastic.co/guide/en/elasticsearch/reference/7.7/setup-upgrade.html https://www.elastic.co/guide/en/elasticsearch/reference/7.7/breaking-changes.html

目次

  • 目次
  • はじめに
  • タイプレス移行に向けた対応
    • 1. Elasticsearch v6.8 のインスタンスに対して、 include_type_name=true オプションを 付けた 上で index を構築する
    • 2. Elasticsearch v7.5 のインスタンスに対して、 include_type_name=true オプションを 付けた 状態で index を構築する
    • 3. Elasticsearch v7.5 のインスタンスに対して、 include_type_name=true オプションを 外した 状態で index を構築する
  • 対応必要だった breaking changes
    • track_total_hits defaults to 10,000
    • rest_total_hits_as_int
  • 対応した deprecation log
    • random score
  • Elasticsearch アップグレード後に起きた問題とその対応
  • おわりに
  • We are Hiring!!
続きを読む

Elasticsearchのバージョンを5.6系から6.8系にアップグレードしました

f:id:k-waragai:20200603120838p:plain

紹介

混沌に秩序を齎すとして爆誕したチームcosmosに所属している@k-waragaiです。

今回はタイトル通りElasticsearchのアップグレードに関するお話になります。

Version: 5.6.x から Version: 6.8.x までを約1ヶ月で上げきる事が出来ました。

今回はその1ヶ月の間にどのような事を行いどのような手順で上げていったのかを紹介していきます。

障害なども起こしてしまった為、その時に何があったのかなども赤裸々にお話していきますのでご期待ください。

この記事の後には6.8.x系から7.5.x系にアップグレードしたときのお話が投稿される予定です。 そちらも合わせてお読みください!

目次

  • 紹介
  • 目次
  • はじまり
  • Elasticsearch バージョン6アップグレード対応
    • STEP1 ~5.6と6.xのドキュメントを読み漁り、対応すべきところを対応する~
      • インデックス内の複数タイプが利用不可
      • Booleanタイプに指定可能な値がtrueまたはfalseのみ
      • タイプstringの廃止
      • _allフィールドが利用不可
    • STEP2 ~やることの見通しがついたらスケジュールを立てる~
      • ガントチャートを作成しよう
      • タスクを元にTrelloカードを作成しよう
      • タスクを消化したら
    • STEP3 ~ふりかえる~
      • Good
      • Bad
  • 最後に
続きを読む

チーム全員で向き合った「報酬評価機能」の開発プロセス

f:id:pontatanpo:20200424115533p:plain こんにちは、クラウドワークスユーザー体験改善に取り組むチームのteam-atMilcです。 コロナの影響でリモートワークをしているのですが、あまり環境が整っていないせいか、肩が凝ってしんどいみです。ぱおん😢

さて、本ブログでは、ちょうど先日リリースまで漕ぎつけた「報酬評価機能」を例に、主にチーム内の開発プロセス(施策策定からリリースまで)について、ご紹介していきます。チームでのプロダクト作りに悩む方の、何かの参考になれば幸いです。

  • 報酬評価機能について
    • お知らせブログによる告知
    • どんな機能?
    • このような表示がされます!
  • チームの体制
  • リリースまでのプロセスについて
    • 1. POが機能の目的とイメージの叩きを作成
      • 現状のサービスが抱える問題点の洗い出し
      • 問題を解決するためのアイデア出し
      • イデアを実現する機能イメージの作成
    • 2. チームで議論して案をブラッシュアップ
    • 3. 仕様が決まり次第、エンジニアが実装
  • チーム全員で一機能に向き合う姿勢
  • We are hiring!!
続きを読む

© 2016 CrowdWorks, Inc., All rights reserved.