Classi開発者ブログ
https://tech.classi.jp/
教育プラットフォーム「Classi」を開発・運営するClassi株式会社の開発者ブログです。
フィード

関西Ruby会議08に「『1ヶ月でWebサービスを作る会』で出会った rails new、 そして今に至る rails new」というタイトルで登壇します
3

Classi開発者ブログ
こんにちは、Classi でソフトウェアエンジニアをやっている id:kiryuanzu です。 2025年6月28日(土) に京都府京都市の先斗町歌舞練場にて開催される関西Ruby会議08で「『1ヶ月でWebサービスを作る会』で出会った rails new、そして今に至る rails new」というタイトルで登壇させていただくことになりました。 regional.rubykaigi.org 今回はこの発表のプロポーザルを提出した時の背景や、登壇の意気込みについて事前にお伝えしたいと思います。 プロポーザルを提出した際の背景 実は、LT形式ではない少し長めの発表(今回は20分)のプロポーザルを…
6日前

Classiエンジニアの「OSSやっていきの集い」 〜4ヶ月間の取り組みと、初めてのOSSコントリビューション〜
Classi開発者ブログ
こんにちは。Classiでソフトウェアエンジニアをしている中村( id:kozy4324 )です。 今回は、社内で継続している技術活動「OSSやっていきの集い」についてご紹介します。活動開始から4ヶ月の間に取り組んできたこと、そして実際にOSSプロジェクトへプルリクエストを送ってマージされた経験についてまとめました。 OSSやっていきの集いとは この活動は、SmartHRさんの取り組み「OSSやっていきの集い」から着想を得て、名称もそのままお借りして始めました。 SmartHRのOSS活動、登壇活動を盛り上げるべく、「OSSやっていきの集い」が立ち上がりました OSSに関心はあるものの、実際に…
9日前

Classi 2025年新卒エンジニア研修「そーだい塾」を開催しました
Classi開発者ブログ
こんにちは。Classiのみんなの頼れるお兄さん id:Soudai です。 Classiでは例年、新卒エンジニア向けの研修「そーだい塾」を実施しており、今年も2時間の研修を3回にわたって開催しました。 今日はこの研修をご紹介しながら、当日の雰囲気やスライドには書いていない部分や大切な考え方をご紹介します。 第1回:リリースの極意 第2回:日々の仕事の中で成長する 第3回:具体と抽象と現場 第1回:リリースの極意 第1回では、ソフトウェアエンジニアにとって最も重要な「リリース」について取り上げました。 登壇資料 speakerdeck.com speakerdeck.com 伝えたかった狙い …
14日前

NPS70超。社内AI議事録ツール「Turing」がClassiの"当たり前"になるまで
Classi開発者ブログ
こんにちは、エンジニアの鳥山です。 Classiでは、2024年の12月ごろから当時最新であったGemini 1.5 Proを用いた議事録生成ツール「Turing」を開発、リリースし、社内のメンバーに使ってもらっています。 tech.classi.jp 本記事では、 リリースからおよそ半年経った今、Turingはどの程度普及したのか 利便性や運用性の向上のためにどんな継続的改善をしたのか の大きく2点に焦点を当てて紹介し、最後にTuringの成功要因についても考察します。 モデルのアップデートや新技術の発表が毎週のように起きる昨今、個人的にはAIをプロダクトに取り入れることのみならず、社内ツー…
1ヶ月前

ライブラリの継続的アップグレードを支援する活動にQAメンバーとして参加した1年のふりかえり
Classi開発者ブログ
こんにちは。プロダクト本部プラットフォーム部QAチームの牛木です。 弊社にはライブラリの継続的アップグレードを支援する活動があります。この活動にQAメンバーとして1年間参加しました。活動の内容や、活動を通じて感じたことをお伝えします。 ライブラリの継続的アップグレードを支援する活動とは この活動は、EOL*1を迎えたライブラリやフレームワークを使わないように、” 継続的 ” にバージョンを ” アップグレードしよう ” という取り組みです。サポート状況の最新情報や、現時点での対応状況などを収集し見える化することにより、対応が遅れているチームに対しリマインドやバージョンアップのサポートなどを行う…
1ヶ月前

Pull Request ごとに S3 + CloudFront へ SPA のプレビュー環境をデプロイする
Classi開発者ブログ
Classi でソフトウェアエンジニアをやっている koki です。 S3 + CloudFront でホスティングしている SPA (Single Page Application) で Pull Request ごとにプレビュー環境をデプロイする仕組みを作ってみたところ、かなり体験が良かったので紹介します。 前提 Classi で提供している学習トレーニング機能には、それを裏で支えるコンテンツ管理システム ( 以下、内部 CMS ) が存在しています。 この内部 CMS については以下の記事でも簡単に紹介されているので、こちらをご参照ください。 tech.classi.jp 内部 CMS …
1ヶ月前

GitHub ActionsとSchemaSpyを活用したデータベースドキュメント自動生成とGitHub Pagesへの公開方法
Classi開発者ブログ
こんにちは、kobitoチームのアインです。この記事では、最近チームで導入したデータベースのドキュメント自動生成の仕組みとその経緯について紹介します。 なぜ自動化しようと思ったか サービスを運用する上で、データベースのドキュメント管理は重要な業務の一つです。データベースのスキーマが変更される度に、ドキュメントを手作業で更新する必要があります。しかし、このような手動更新には以下の課題があります。 記録漏れや実際のデータベースとの乖離が生じやすい 複数人が同時に開発すると、ドキュメントと実際のデータベースの状態に差が生じやすい これらの課題を解決するため、GitHub Actionsを活用したドキ…
3ヶ月前

Amazon GuardDutyの保護プランで実現する脅威検知とマルウェア対策
Classi開発者ブログ
こんにちは、プロダクト本部プラットフォーム部SREチームの坪井(@boy2)です。 AWSをご利用のみなさん、Amazon GuardDuty (以下 GuardDuty)は活用されていますか? GuardDutyの設定を有効にしただけで、安心していませんか?それだけではGuardDutyの機能を十分に活用できているとは言えません。この記事では、GuardDutyの基本的な機能から、さらに効果的な活用方法までを解説していきます。GuardDutyをすでに利用されている方も、これから利用を検討されている方も、ぜひ最後までご覧ください。 要約 GuardDutyはAWSの脅威検知サービスであり、標…
3ヶ月前

狼少年と化していたSentryが機能するようになるまで
Classi開発者ブログ
こんにちは。エンジニアのすずまさです。 弊社では、エラー監視ツールとしてSentryを利用しています。 私のチームではSentryをうまく活用できていない状態が続いていましたが、最近は運用負荷を軽減しつつ障害を早期発見するなど、以前よりも運用が改善されてきたので今回はその紹介をします。 当時の課題「とにかくエラーが多すぎる」 ノイズを減らす 積極的にArchiveする Issue Groupingを活用する 重要なエラーだけピックアップ可能にする 現在の運用 まとめ 当時の課題「とにかくエラーが多すぎる」 トリアージがほとんどされておらず、S/N比が低くなっていました。 そのため、ノイズが多く…
3ヶ月前

Prompt Engineering勉強会をやった
Classi開発者ブログ
こんにちは。データサイエンティストのオウです。先日、チームで生成AIのPrompt Engineeringに関する勉強会を実施しました。本記事ではその勉強会について紹介します。 なぜ取り組んだか? 現在、生成AIの時代が本格的に到来しています。Classiでは以前からAI技術を活用し、英語の自動作問技術を開発してきましたが、今後は生成AIを活用することでさらに大きな価値を生み出せると考えています。 そのためには、生成AIの全体像を把握し、適切に活用することが重要です。一方で、生成AIの制限やリスクについても考慮しなければ、安全で信頼できるサービスを提供することはできません。生成AIを効果的かつ…
4ヶ月前

ノンデザイナーの開発チームで『ノンデザイナーズ・デザインブック』読書会を行いました
Classi開発者ブログ
開発グループ2(通称:kobitoチーム)のチームリーダーをしている前川です。今回は、チームメンバーを中心に『ノンデザイナーズ・デザインブック』という本の読書会を行いました。 kobitoチームでは以前『ルールズ・オブ・プログラミング』の読書会を行いました。その後、Angular コーディングスタイルガイドを読む会を行い、今回の『ノンデザイナーズ・デザインブック』を行いました。 『ノンデザイナーズ・デザインブック』 『ノンデザイナーズ・デザインブック』は、デザインの基本原則をわかりやすく解説した入門書です。コントラスト・反復・整列・近接という4つの原則を中心に、非デザイナーでも見やすく美しいデ…
4ヶ月前

スマートフォンアプリの改善、進めます
Classi開発者ブログ
プロダクト本部のディレクター、安田です。 2024年6月からアプリ改善の担当をしています。 私がアサインされる直前に組織変更があり、ホームアプリの改善はほぼ新しいチームでのスタートとなりました。 先日、第一弾の改善として「ホームアイコンの並べ替え」と「カラーテーマの変更」の2つの機能をリリースしましたので、その経緯をご紹介したいと思います。 社として何をやるべきか?チームは何をやりたいのか? 最初に取り組んだのは、もちろんチームメンバーとの関係構築です。 ただし、今回はその話は省略し、以下の2点に絞って説明します。 Classiホームアプリを社としてどうするべきか? チームメンバーは何をやりた…
4ヶ月前

tetoru開発部にジョインしました。
Classi開発者ブログ
こんにちは。tetoru開発部に所属しているエンジニアの中島です。 弊社には現在、主に高校をターゲットとする「Classi」というサービスと、主に小中学校をターゲットとする「tetoru」というサービスが存在します。 会社やサービスについて詳しくは下記資料を御覧ください。 tetoruについて(採用・エンジニア向け) - Speaker Deck Classiを担当する部署とtetoruを担当する部署は分かれていて、筆者は2024年10月にClassiを開発するチームからtetoruを開発するチームへ社内異動しました。 今回の記事では、その経緯やtetoruでの現在の様子をお伝えします。 Cl…
4ヶ月前

生成AIを使って、自動で議事録を生成した話
Classi開発者ブログ
はじめに こんにちは、データプラットフォームチームのマイン(id:manhnguyen1998)です。 近年、生成AIが急速に注目を集めています。皆さんの企業ではすでに活用されていますか? それとも、現在検討中でしょうか? あるいは、すでにプロダクトをリリースされた方もいるかもしれません。 Classiでもこの流れに乗り、数ヶ月前から生成AIを活用したプロダクト開発に取り組み、生産性向上を目的としたツールの開発を進めています。本記事では、データプラットフォームチームが開発した、AIを活用して会議の議事録を自動生成するツール「Turing」について紹介します。 tech.classi.jp 背景…
5ヶ月前

ClassiにおけるGo現状確認 2025
Classi開発者ブログ
id:aerealです。Classi内でGoがどのような立ち位置にあるか、2025年現在の最新情報をまとめます。 リポジトリ概況 商用環境でエンドユーザへの機能提供に寄与するもの: 6 開発者向けツール: 3 その他社内向けツール: 1 リポジトリ数は上記の通りです。 機能提供に寄与するものとは直接トラフィックを受けるものはもちろん、エンドユーザの求めを起点に生じるシステム間通信に現れるものも含まれます。 過去に開発者ブログで紹介したcron代替やコンテンツ管理システムなどが代表例です。 参考: tech.classi.jp tech.classi.jp 開発者向けツールとはDBスキーマの内製…
5ヶ月前

ポストモーテムを読む会を開催しました
Classi開発者ブログ
こんにちは。ソフトウェアエンジニアのいもりです。 研修を終えた後*1、新卒OJTの一環として欠席連絡チームに所属しています。 先日、社内で「ポストモーテムを読む会」を開催しましたので、その様子をお伝えします。 ポストモーテムを読む会とは? 「ポストモーテムを読む会」とは、過去に発生した障害を記録した文書(ポストモーテム)を第三者である私が読み、その内容をもとに当事者と意見交換を行う場です。具体的には、ポストモーテムを読んだ感想を伝えたり、ネクストアクションについて質問したり、対応を通じて得られた教訓を共有してもらいます。 今回はClassiの欠席連絡機能に関するポストモーテムを取り上げ、その内…
6ヶ月前

(イベント参加レポート)【Edtech Meetup】急成長サービスの秘訣と実践戦略
Classi開発者ブログ
こんにちは、プロダクト本部プラットフォーム部SREチームの坪井(@boy2)です。当社の伊藤が2024年11月27日(水)にアマゾン ウェブ サービス ジャパン合同会社(以下、AWS)で開催された「【Edtech Meetup】急成長サービスの秘訣と実践戦略」のパネルディスカッションへ登壇しました。複数のEdtech企業のCxOと業界の特性や急成長の秘訣について語りました。今回はそのイベント模様の一部をご紹介します。 パネルディスカッション オープニングの挨拶の後、3人のパネリストの自己紹介と会社紹介が行われました。テーマとしては、どのようにサービスを広めていったのかというテーマにてパネリスト…
6ヶ月前

Classiの教科コンテンツ制作 - 紙教材をデジタルでも -
Classi開発者ブログ
こんにちは。教材コンテンツディレクターの今井です。 教材コンテンツディレクターとは、一言でいうと「Classiの教科コンテンツの企画・制作」を担当している職種です。今回はその中でも、特に「教科コンテンツの制作」についてご紹介します。 教科コンテンツ制作の流れ Classiの教科コンテンツ制作は図のような流れで、問題の出題内容や原稿制作は編集プロダクション、システムにコンテンツを搭載する作業はデータ入力会社など、社外とも協業しながらの制作を行っています。社外にも関係者が多いため制作進行管理を丁寧に行う必要がありますし、企画の主旨に沿った出題内容になるように編集プロダクションとはコミュニケーション…
6ヶ月前

dbt周辺ツールを使った「圧倒的に楽」なメタデータ管理
Classi開発者ブログ
こんにちは、データプラットフォームチームの鳥山(@to_lz1)です。 本記事はdbt Advent Calendar 2024の10日目の記事です。 データ基盤を扱う上で避けて通れない「メタデータの管理」ですが、あなたのチームではどのように取り組まれているでしょうか?独自メタデータカタログを作ったけど、運用がつらくなっているとか、はたまた構築初期なのであえてdescriptionなしのまま突き進んでいるなど、データ基盤整備のフェーズによっても各社さまざまかと思います。 弊社も例に漏れず上記のようなフェーズを通過してきましたが、最近ではdbtやその周辺ツールを使った効率化がうまく回り始めてきま…
7ヶ月前

朝当番をやめた話
Classi開発者ブログ
こんにちは。プロダクト本部プラットフォーム部SREチームのid:ut61zです。 サービスを運用していくうえで監視は避けて通れません。 Classiでは長らく朝当番という制度を設け、平日朝のピークタイムにエンジニアを監視担当としてアサインし、何らかの問題が発生した際、即座に対応できる体制を整えてきました。 2020年9月からスタートした朝当番制度ですが、2024年4月をもってこの制度を終了しました。 今回はその経緯や理由、現在のClassiの運用体制などをご紹介します。 朝当番とは あらためて朝当番制度とは、平日朝のピークタイムにエンジニアが常に1名待機し監視する制度になります。担当エンジニア…
7ヶ月前

GraphQL スキーマから API ドキュメントを自動生成して GitHub Pages へデプロイする
Classi開発者ブログ
Classi で提供している学習トレーニング機能を裏で支えているコンテンツ管理システム ( 以下、内部 CMS ) では、バックエンドに GraphQL を採用しています。 この GraphQL は Classi 内の様々なシステムで広く利用されています。 tech.classi.jp 内部 CMS の開発チームでは、この GraphQL スキーマの API ドキュメントを自動生成して GitHub Pages でホスティングしています。 GitHub Pages は GitHub Actions ワークフローを作成するだけで簡単に静的サイトをデプロイすることができます。また、 Classi …
9ヶ月前

sql.Openとsql.OpenDBの違い、そしてドライバーごとにsql.OpenDBを使うべきかの検討
Classi開発者ブログ
id:aerealです。Goの話をします。 sql.Openとsql.OpenDBの違い GoでRDBMSなどに繋ぐ際にはふつうdatabase/sqlを使います。 ORMを使う場合でも内部的にはこのパッケージに依存していることがほとんどです。 特定のデータベースに対して接続を確立したりクエリを実行する実装をドライバーと呼び、契約によって定められたインターフェースを実装したドライバーを利用者がdatabase/sqlに渡すことで、拡張性と独立性を実現しています。 sql.DBはa database handle representing a pool of zero or more under…
9ヶ月前

Kaigi on Rails 2024 に「ActiveRecord SQLインジェクションクイズ (Rails 7.1.3.4)」というタイトルで登壇します
Classi開発者ブログ
こんにちは、ソフトウェアエンジニアの中村 ( id:kozy4324 ) です。 2024年10月25日 (金) から 26日 (土) に、東京の有明セントラルタワーホール & カンファレンスで開催予定の Kaigi on Rails 2024 にて、「ActiveRecord SQLインジェクションクイズ (Rails 7.1.3.4)」というタイトルで登壇させていただくことになりました。 今回は、このテーマを選んだ背景や、登壇を通じて達成したいことについて、事前にお伝えしようと思います。 Rails アプリケーション開発におけるセキュアコーディング、できていますか? これは自戒の念を込めた…
9ヶ月前

社内の9個のリポジトリの CI/CD を CircleCI から GitHub Actions に移行した際に考えたこと
Classi開発者ブログ
はじめに こんにちは、エンジニアの id:kiryuanzu です!今回はチームで管理するRailsリポジトリ9個の CI/CD を CircleCI から GitHub Actions に移行した際の話を共有します。 概要 Classi では全社的な方針により、メインで使う CI/CDプラットフォームを CircleCI から GitHub Actions に移行することにしました。 主な理由としては、複数の CI/CD サービスを並行して利用し続けるのは運用管理・コスト管理で負担があったこと、社内の知見交換で片方に寄せた方が良いと判断したためです。 筆者が所属するチームでは当時9個のリポジ…
9ヶ月前

tetoruのチームビルディング施策 -Wevox Values Cardの事例を添えて-
Classi開発者ブログ
こんにちは。tetoruでUXデザイナーをしている原田です。 tetoruチームでは年数回、チームビルディングとして関係者全員参加のワークショップを開催しています。今回はその取り組みを具体例を交えてご紹介します。 tetoruのチームビルディングとは このチームビルディングは2時間のワーク/3ヶ月程度に1回開催/メンバー全員参加(ただし商談などは優先)/普段の業務から離れ、異なる視点でtetoruを捉えるための対話の時間として開催されています。tetoruのチームメンバーはセールス/マーケ/CS/デザイナー/エンジニア/QAなどがひとつのチーム(※)としてまとまっており、業務内容によってはよく…
9ヶ月前

24年度新卒エンジニアが研修を終えて
Classi開発者ブログ
こんにちは。4月にClassiへ新卒で入社した伊森です。 私は4月から8月上旬までの約4ヶ月、Classiのエンジニアとして働くための新卒研修を受けてきました。 今回はその研修期間を経て、大まかな内容の振り返りや身についた考え方を紹介していきます。 入社前の状態 研修内容の概要 4月 5・6月 7・8月上旬 AWS研修 良かったところ 物足りなかったところ QA研修 実際に手を動かすテスト項目の作成課題 「品質が高い」とはどの状態を指す言葉?というディスカッション 万葉カリキュラム 研修プログラム以外にも学んだこと まとめ 入社前の状態 大学生時代はPythonを使用した画像処理を主に勉強して…
10ヶ月前

SRE NEXT 2024にSILVER SPONSORとして協賛&参加してきました
Classi開発者ブログ
ソフトウェアエンジニアの onigra です。2024年8月3日から4日にかけて開催された SRE NEXT 2024に参加してきました。 https://sre-next.dev/2024/ ClassiはSILVER SPONSORとして協賛し、いただいたスポンサーチケットで参加しました。 https://x.com/onigra_/status/1819594542586401140 印象に残ったセッション 工学としてのSRE再訪 さくらインターネット株式会社の yuuk1 さんの発表です。 SREの工学(Engineering)的側面に着目し、日本国外の発表事例を紹介しながら、Webサ…
10ヶ月前

tetoru は Ruby 3.3 + YJIT で本番運用しています
Classi開発者ブログ
プロダクト本部 tetoru 開発部の中田です。普段は giraffate という ID を使っていることが多いです。 ここでは、弊社が提供している小中学校向け保護者連絡配信サービス tetoru の利用している Ruby のバージョンを 3.2 から 3.3 にバージョンアップしたときの話を共有します。 概要 tetoru では、本文章の執筆時点で Ruby 3.3.4 + YJIT で Rails アプリケーションを動かしています。YJIT とは、Ruby が備えている Just-In-Time (JIT) コンパイラの機能で、これを有効化することで実行時に機械語が生成されアプリケーション…
10ヶ月前

QAチームで新卒エンジニア研修を開催して感じた効果
Classi開発者ブログ
こんにちは。プロダクト本部プラットフォーム部QAチームの牛木です。 今年度、新卒エンジニアの研修にQAチームによる研修が新たに追加されました。今回は、その研修を開催した経緯と、実際に開催して感じた効果をお伝えします。 なぜ開催したか QAチームの活動は、開発エンジニアの活動と深く結びついています。開発エンジニアとして入社する新卒エンジニアに、QAチームの活動を知ってもらい、「品質」に対する理解を深めてもらうことで、開発プロセスで品質を作り込むことを意識した活動が行えると考えたからです。 開催した研修のカリキュラム 5日間にわたり開催しました。以下が実際のカリキュラムです。 実際のカリキュラム …
10ヶ月前