Studyplus Engineering Blog

https://tech.studyplus.co.jp/

スタディプラスの開発者が発信するブログ

フィード

記事のアイキャッチ画像
スタディプラスはRubyKaigi 2024にゴールドスポンサーとして協賛します
Studyplus Engineering Blog
こんにちは、スタディプラスのカンファレンス/OSSサポートチーム、菅原です。 RubyKaigi 2024がいよいよ来週開催に迫ってきました! 今年もスタディプラスはRubyKaigi 2024にゴールドスポンサーとして協賛しています。 rubykaigi.org 今年は沖縄県那覇市で開催ということで、現地の食事や景色など行くだけで楽しめそうですね。 弊社からも4名のエンジニアが現地参加予定です。見かけたらお声がけいただけると嬉しいです。 RubyKaigi 2024とは? RubyKaigiは、Rubyプログラミング言語に関する国際会議です。 最新の技術について議論する場であり、Rubyの将…
12時間前
記事のアイキャッチ画像
生成AIを活用したPodcastのShow Notes作成の裏側
はてなブックマークアイコン 1
Studyplus Engineering Blog
こんにちは、SREグループの 水口 です。 この記事では、スタディプラスが運営する「Studyplus Engineering Podcast」の公開までに行なっているPodcastのShow Notesを作成する過程について紹介します。 Show Notesと生成AI活用のモチベーションについて Show NotesとはPodcastのエピソード内で何が起こったかを詳細にまとめたもので、一般的には以下の内容が記載されます。 トピックの要約 言及された話題に関するリンク Podcastの聴取や購読などのCTA(Call To Action / 行動喚起) また、収録・編集ツールを提供するRiv…
3日前
記事のアイキャッチ画像
Ruby3.3 YJITによるパフォーマンス改善
Studyplus Engineering Blog
こんにちは。サーバーサイドグループの山田です。 先日StudyplusのRailsアプリケーションのRubyを3.3にアップデートしました。 Ruby3.3ではYJITによるパフォーマンス改善が目玉の1つですが、弊社のアプリケーションでどのような変化があったかを報告します。 前提 本記事で記載している集計データは以下のようなアプリケーションおよび条件で取得しています。 Studyplusのマイクロサービス群の中で最も規模の大きなRailsアプリケーション Railsバージョンは7.1.3 Ruby3.2.2でYJIT有効化済みの状態からRuby3.3.0にアップデートした際の変化 APIリクエ…
15日前
記事のアイキャッチ画像
Studyplus Engineering Podcast #25 Studyplus Web版をFlutter Webでリプレイスしました!
Studyplus Engineering Blog
こんにちは、SREグループの 水口 です。 スタディプラスのエンジニアが配信するポッドキャスト「Studyplus Engineering Podcast」の新しいエピソードを公開しました。 「Studyplus Engineering Podcast」は、主にStudyplusのエンジニアが、業務で関わった技術的なことや気になっている技術などについて雑談をするPodcastです。 今回は2023年12月にリリースされたStudyplus Web版についてお話ししました。よろしければ聞いてみてください。 25: Studyplus Web版をFlutter Webでリプレイスしました! Stu…
1ヶ月前
記事のアイキャッチ画像
Studyplus Engineering Podcast #24 遠距離からフルリモートで働くエンジニアの働き方、スタディプラスの印象、雑談
Studyplus Engineering Blog
こんにちは、スタディプラス VPoEの大石です。 スタディプラスのエンジニアが配信するポッドキャスト「Studyplus Engineering Podcast」の新しいエピソードを公開しました。 「Studyplus Engineering Podcast」は、主にStudyplusのエンジニアが、業務で関わった技術的なことや気になっている技術などについて雑談をするPodcastです。 今回は2023年4月に入社して遠距離からリモートで働くサーバーサイドエンジニアの五十嵐さんをゲストに遠距離からフルリモートの働き方、スタディプラスの印象など話してもらいました。よろしければ聞いてみてください。…
1ヶ月前
記事のアイキャッチ画像
CircleCIのrerun failed testsを有効化してみる
Studyplus Engineering Blog
ウェブアプリケーショングループのましばです。 ようやく暖かくなってきましたが、まだまだ気候が安定しませんね。 今回はCircleCIにきていたrerun failed testの機能を使ってみた話です。 Flakyなテスト プログラミングを実装する際にテストを書いていく中で、普段は成功していてもまれに失敗するテスト(いわゆるFlaky Test)が発生します。 割と世界中で悩みになっているようでして、弊社のプロダクトにも存在して偶に引っかかることがあります。 そういった際はCIでテストをやり直すことになるのですが、このコストがなかなか大変だったりします。 rerun failed tests機…
1ヶ月前
記事のアイキャッチ画像
Rails7.1へのアップグレードで発生した暗号化のエラーとその対応
Studyplus Engineering Blog
こんにちは。サーバーグループ エンジニアの山田です。 今回はRails7.0からRails7.1へのアップグレードを行なった際に、ActiveRecord Encryptionで発生したエラーとその対応について紹介します。 同様のエラーに遭遇した方の参考になれば幸いです。 ActiveRecord Encryptionによる属性の暗号化 決定論的暗号化と非決定論的暗号化 発生した事象 エラーの原因 SHA256に変わった経緯 対応方法 hash_digest_class support_sha1_for_non_deterministic_encryption 採用した方法 まとめ Activ…
2ヶ月前
記事のアイキャッチ画像
競プロ勉強会を開催しました
Studyplus Engineering Blog
はじめに 2023年7月からWebアプリケーショングループの内定者インターンとして働いている羽鳥です。 インターンでは研修としてRuby、Ruby on Rails、RSpec、データベース設計、オブジェクト指向プログラミング、Reactなどを学んでいます。 私は趣味で競技プログラミングに取り組んでおり、社内勉強会の開催を提案していただいたので、競技プログラミングの勉強会を開催しました。 この記事ではその勉強会についてお話しします。 競技プログラミングとは 競技プログラミングはAtCoderで次のように説明されています。 決められた条件のもとで与えられた問題、課題をプログラミングを用いて解決し…
3ヶ月前
記事のアイキャッチ画像
rspec-openapiを導入した話
Studyplus Engineering Blog
こんにちは、サーバーサイドグループの五十嵐です。 今年の4月に弊社に転職して初めて技術ブログを書きます。 今回はAPIドキュメントの作成ツールとしてGemrspec-openapiを導入した話について書いてみます。 弊社では以前からOpenAPIを導入しドキュメント管理を行なってきました。 しかし、OpenAPIを導入する前からあったAPIに対するドキュメントは不足していたり内容が不十分なものもありました。 このようなツールは導入当初はモチベーションが高くても、年月が経つ内にモチベーションが低下したり、メンバーが変わることで存在自体なかったことになったりはよくあることだと思います。 実際にOp…
4ヶ月前
記事のアイキャッチ画像
RubyによるGoogleSSO IDトークンの検証
Studyplus Engineering Blog
こんにちは、サーバーサイドグループエンジニアの芳賀です。 今回は、業務で関わる機会があったため、Rubyを使用してgoogleauthライブラリを介してGoogleSSO IDトークンを検証する方法について解説します。Google Sign-Inを使用すると、ウェブアプリケーションにおいてセキュアで簡単なシングルサインオン(SSO)を実現できます。 GoogleSSO IDトークンとは? GoogleSSO IDトークンは、Google Sign-Inの一環として生成されるJSON Web Token(JWT)です。このトークンには、ユーザーの認証情報と権限情報が含まれています。トークンの検証…
4ヶ月前
記事のアイキャッチ画像
go_routerによる画面遷移時のパラメーターの渡し方
Studyplus Engineering Blog
こんにちは。クライアントグループの上原です。 StudyplusのFlutterアプリでの開発には、go_routerが利用されています。 今回は、利用していて感じたどういう状況でどの方法を利用して画面遷移時にパラメーターを渡すのが良いのかを紹介します。 また、上記のやり方をgo_router_builderを利用して行った場合に、安全にデータをやり取りする方法も紹介します。 利用したFlutterのバージョンは、3.13.7です。 利用したライブラリのバージョンは、下記になります。 ライブラリ名 バージョン go_router 12.0.1 go_router_builder 2.3.4 画…
5ヶ月前
記事のアイキャッチ画像
スタディプラスに新卒入社してからの半年間を振り返る
Studyplus Engineering Blog
はじめに どうも、クライアントグループエンジニアの後藤です。 最近寒くなってきましたね。昔は冬が圧倒的に好きだったんですが、歳を重ねるごとに夏の方が好きになっていっている自分がいます。 そんな自分がスタディプラスに入社してからもう半年が経ちました。この記事では入社してからの半年間を振り返って、取り組んだことや感じたことをお話しします。 はじめに 内定承諾後の流れ 内定者インターン(入社前) エンジニアのマインドセット研修 アプリ開発研修 振り返り Flutter、Dartの基礎を習得できた 伝えることの難しさを感じた 新卒研修(入社後) アプリ開発研修 勉強会(抜粋) 振り返り 業務開発に入る…
5ヶ月前
記事のアイキャッチ画像
新規プロジェクトでモブ設計を実施してみた
Studyplus Engineering Blog
こんにちは。ウェブアプリケーショングループのエンジニアの川井です。 最近、新しいプロジェクトを立ち上げる際、開発を始める前に新しい仕様や設計に関する整理やコミュニケーションを強化するため、モブ設計を導入しました。この記事では、モブ設計の概要と実施方法について紹介します。 背景 新しいプロジェクトを始める際、従来は1人のエンジニアが最初の段階の設計と仕様の整理を担当し他のメンバーにレビューしてもらってました。 このやり方では以下の問題がありました。 設計を担当するメンバーの大きな負担になっていた。 設計の検討や仕様の整理もそのメンバーに属人化していた。 設計に関してチーム内でのコミュニケーション…
6ヶ月前
記事のアイキャッチ画像
スタディプラスはJSConf JP 2023に協賛します
Studyplus Engineering Blog
こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、後藤です。 スタディプラスは、2023年11月19日に九段坂上KSビルにて開催されるJSConf JP 2023に協賛します。 jsconf.jp JSConf JP 2023とは? JSConf JPはJapan Node.js Associationが主催するテックカンファレンスです。 日本での開催は4度目になりますが国内だけでなく海外で働く開発者のウェブ開発に関わるセッションが数多く企画されています。 【概要】 主催 :Japan Node.js Association 開催日:2023年11月19日(日) 会場 :九段…
6ヶ月前
記事のアイキャッチ画像
FlutterKaigi 2023にスポンサー&参加しました
Studyplus Engineering Blog
こんにちは!クライアントグループの後藤です。 11月10(金)に株式会社ナビタイムジャパンにて開催されたFlutterKaigi 2023に参加してきたので、その感想などをまとめます。 はじめに 今回、弊社スタディプラスはFlutterKaigi 2023にシルバースポンサーとして協賛させていただきました。 昨年に続き2回目の協賛で、今年もFlutterKaigiを一緒に盛り上げていけることを大変嬉しく思っております。 今年は会場のノベルティコーナーにスタディプラス付箋セットを提供させていただきました。 受け取った方はぜひご活用いただけると幸いです。 flutterkaigi.jp 感想 今年…
6ヶ月前
記事のアイキャッチ画像
FlutterでDriftを使ったデータ保存でのつまづきと対策
Studyplus Engineering Blog
こんにちは、クライアントグループの樋口です。 今回は、弊社のアプリにてFlutterで使えるローカルDBパッケージの「Drift」を用いた開発した際に生じた、データ保存でのつまづきとその対処法を紹介します。さらに、Driftの簡単な使い方と使用例も併せて紹介します。 環境 Driftについて Driftの簡単な使い方 テーブルクラス作成 レコードクラスの定義 データの追加・取得・削除 Driftを使ってつまづいたポイント Listが保存できない List<String>型のデータの保存・復元 保存 復元 端末の画像データを保存・復元 保存 復元 まとめ 環境 Flutter 3.13.8 dr…
6ヶ月前
記事のアイキャッチ画像
スタディプラスはFlutterKaigi 2023にシルバースポンサーとして協賛します
Studyplus Engineering Blog
こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、後藤です。 スタディプラスは、2023年11月10日に開催されるFlutterKaigi 2023に、シルバースポンサーとして協賛します。 flutterkaigi.jp FlutterKaigi 2023とは? FlutterKaigiは、国内でも最大規模を誇る、Flutterを中心に据えたカンファレンスです。 FlutterやDartの深い知見を持つ開発者によるセッションが多数企画されています。 【概要】 主催 :FlutterKaigi実行委員会 開催日:2023年11月10日(金) 会場 :株式会社ナビタイムジャパン …
6ヶ月前
記事のアイキャッチ画像
Amazon Aurora MySQLのRollbackSegmentHistoryListLength
Studyplus Engineering Blog
こんにちは。サーバーサイドエンジニアの青山です。 先日、弊社のAmazon Aurora MySQLのCPU負荷が急に上昇してDBが再起動するという事象が発生しました。その原因を調査した時の話をRollbackSegmentHistoryListLengthを中心に紹介します。 当時の状況 レプリケーション遅延による再起動 RollbackSegmentHistoryListLengthが増加する原因 非同期処理による書き込み おわりに 当時の状況 Amazon RDSのコンソールやDatadogのメトリクスから確認できたCPU負荷が上昇した時の状況は以下の通りです。 ライターインスタンスのR…
6ヶ月前
記事のアイキャッチ画像
Kaigi on Rails 2023 参加レポート
Studyplus Engineering Blog
こんにちは、サーバーグループの山田です。10/27(金)、28(土)開催のKaigi on Rails 2023に参加しました。その感想などをレポートします。 Kaigi on Railsとは? Kaigi on Railsのコアコンセプトは 「初学者から上級者までが楽しめるWeb系の技術カンファレンス」 です。Kaigi on Railsは技術カンファレンスへの参加の敷居を下げることを意図して企画されています。また、名前の通りRailsを話題の中心に据えるカンファレンスではありますが、広くWebに関すること全般(例えばフロントエンドやプロトコルなど)についてもカバーすることで参加者の知見を深…
6ヶ月前
記事のアイキャッチ画像
FlutterのAdd-to-appを導入しているiOSアプリ保守で起きたライブラリ競合と対処法
Studyplus Engineering Blog
プロダクト部クライアントグループの明渡です。 昨年9月から今年4月半ばまで産育休をとり、約1年ぶりの当番ブログです。 産んだ子どもは1歳になりました。食欲魔人という文言がしっくりくる食べっぷりで、成長曲線の上辺すれすれで推移しております。 今回は、同チームに所属している隅山がFlutterKaigiのプロポーザルへ提出したものの、残念ながら不採択だった内容を一部供養します。 fortee.jp 内容としては、Add-to-appを導入済みのStudyplus iOSアプリにてFlutterのバージョンを3.7系から3.10系へアップデート作業中に直面した事象と対処方法です。 なお、Flutte…
6ヶ月前
記事のアイキャッチ画像
スタディプラスはKaigi on Rails 2023にシルバースポンサーとして協賛します
Studyplus Engineering Blog
こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、菅原です。 スタディプラスは、2023年10月27日・28日にハイブリッド(オンライン・オフライン)開催されるKaigi on Rails 2023にシルバースポンサーとして協賛します。 kaigionrails.org Kaigi on Rails 2023とは? Kaigi on Railsのコアコンセプトは「初学者から上級者までが楽しめるWeb系の技術カンファレンス」です。Kaigi on Railsは技術カンファレンスへの参加の敷居を下げることを意図して企画されています。また、名前の通りRailsを話題の中心に据えるカ…
6ヶ月前
記事のアイキャッチ画像
SRE NEXT 2023 参加レポート
Studyplus Engineering Blog
SREグループの菅原です。 9/29(金)に九段会館テラスにて開催されたSRE NEXT 2023に参加しました。 ちょっと遅くなってしまいましたが、カンファレンスやセッションの感想についてレポートします。 SRE NEXT 2023とは 信頼性に関するプラクティスに深い関心を持つエンジニアのためのカンファレンスです。 同じくコミュニティベースのSRE勉強会である「SRE Lounge」のメンバーが中心となり運営・開催されます。 (公式Webサイトより引用) 感想 菅原 今年は九段下会館テラスということでレトロモダンに統一され、とても素敵な会場でした。 会場で視聴したのですが、登壇者の紹介やセ…
7ヶ月前
記事のアイキャッチ画像
Amazon CloudWatchの費用を半額削減した話
Studyplus Engineering Blog
Amazon CloudWatchの費用を半額削減した話 こんにちは。スタディプラスのSREグループの蜂須賀です。 今回はAmazon CloudWatchの費用を半額削減した話を紹介します。 Amazon CloudWatchの費用を半額削減した話 経緯 CloudWatch Metric Streamsの試験導入 背景 試験導入の結果 実施内容 不必要なリージョンを除外する 不必要なサービスを除外する 不必要なリソースを除外する まとめ 経緯 スタディプラスでは主にAWSでシステムを構築しており、そのモニタニングツールとしてはDatadogを使用しています。 2023年初頭にCloudWa…
7ヶ月前
記事のアイキャッチ画像
「アジャイル開発におけるQAエンジニア」
Studyplus Engineering Blog
こんにちは。QAエンジニアの和田谷です。 残暑続く中ですが相も変わらずサウナは最高です。 今回は「アジャイル開発におけるQAエンジニア」について私がQAとして行ってきた活動をお話しできればと思います。*1 そもそもアジャイル開発とは? アジャイル(Agile)とは、直訳すると「素早い」「機敏な」「頭の回転が速い」という意味です。 システムやソフトウェア開発におけるプロジェクト開発手法の1つで、小単位で実装とテストを繰り返して開発を進めていきます。 アジャイル開発に対してQAとして最初に感じたこと 初めてアジャイル開発という言葉を聞いたのは今から7年ほど前で、当時はそもそも「アジャイル」って何?…
7ヶ月前
記事のアイキャッチ画像
DroidKaigi 2023に参加しました
Studyplus Engineering Blog
こんにちは!クライアントグループの後藤です。 この度、9/14(木)~16(土)にベルサール渋谷にて開催されたDroidKaigi 2023に参加しましたので、その様子をお伝えします。 はじめに 弊社スタディプラス株式会社は、サポータースポンサーとしてDroidKaigi 2023に協賛させていただきました。今年は弊社から2名がスポンサーチケットを利用して参加しています。 また、今年の6月まで弊社にモバイルアプリエンジニアとして在籍していた中島さんが、Flutterのアプリ内課金実装についてのセッションで登壇しました。視聴していただいた皆さん、ありがとうございました! Flutterにおけるア…
8ヶ月前
記事のアイキャッチ画像
Android 13への対応の注意事項
Studyplus Engineering Blog
こんにちは、クライアントグループの隅山です。 しばらくFlutter開発していましたが、Android 13への対応が必要になったため直近はAndroidの更新作業を行なっていました。 今回はAndroid 13への対応項目と対応時に注意すべき点について紹介します。 Android 13への対応項目 通知に関する実行時の権限 広告IDに必要な権限 注意事項 Android 13での変更箇所 クラッシュの原因 対応内容 まとめ Android 13への対応項目 まずは、Android 13への対応項目として下記の公式ドキュメントを参考にしました。 developer.android.com de…
8ヶ月前
記事のアイキャッチ画像
iOSDC Japan 2023に参加しました
Studyplus Engineering Blog
こんにちは、クライアントグループの樋口です。 8/31~9/2に開催されたiOSDC Japan 2023へ参加した件をブログにします。 iosdc.jp はじめに 弊社スタディプラス株式会社はシルバースポンサーとして、ノベルティボックスにスタディプラス付箋セットを提供させていただきました。もし、機会がありましたら活用してもらえればと思います。(切実) tech.studyplus.co.jp 感想 今回は弊社クライアントグループのエンジニアが勉強会・カンファレンス参加補助で業務参加しました。 クライアントグループではiOSとAndroidのお互いの開発をできるようにするという取り組んでおり、…
8ヶ月前
記事のアイキャッチ画像
スタディプラスはDroidKaigi 2023にサポータースポンサーとして協賛します
Studyplus Engineering Blog
本文 こんにちは。 スタディプラスのカンファレンス/OSSサポートチーム、後藤です。 スタディプラスは、2023年9月14日から16日にかけてベルサール渋谷ガーデンおよびオンラインで開催される、DroidKaigi 2023に協賛します。 2023.droidkaigi.jp DroidKaigi 2023とは? DroidKaigiは、エンジニアが主役のAndroidカンファレンスです。 Android開発者有志によるDroidKaigi実行委員会が主催し、Android技術情報の共有とコミュニケーションを目的に開催されています。 【概要】 主催 :DroidKaigi実行委員会 対象 :A…
8ヶ月前
記事のアイキャッチ画像
スタディプラスはiOSDC Japan 2023にシルバースポンサーとして協賛します
Studyplus Engineering Blog
こんにちは、スタディプラスのカンファレンス/OSSサポートチーム、菅原です。 スタディプラスは、2023年9月1日から3日にかけて早稲田大学理工学部西早稲田キャンパスおよびオンライン(ニコニコ生放送)で開催される、iOSDC Japan 2023にシルバースポンサーとして協賛します。 2018年から始まり、今回で6回目になりました。 iosdc.jp iOSDC Japan 2023とは? iOSDC Japan 2023はiOS関連技術をコアのテーマとしたソフトウェア技術者のためのカンファレンスです。今年もリアル会場とオンライン配信のハイブリッド開催です。 日本中、世界中から公募した知的好奇…
9ヶ月前
記事のアイキャッチ画像
スタディプラスのAWSコストを約3割削減できた話
Studyplus Engineering Blog
この記事ではスタディプラスが2023年上半期にAWSコストを削減した取り組みを紹介しています。
9ヶ月前