タグ

ブックマーク / blog.nnn.dev (19)

  • N予備校のインフラを Amazon EKS に移行した話 - ドワンゴ教育サービス開発者ブログ

    N予備校のインフラを Amazon EKS に移行した話 はじめまして。ドワンゴの教育事業で SRE エンジニアをしている西永です。 N予備校 では Kubernetes を採用しています。 これまでは Control Planes 含めすべての構成要素を自前で構築し運用していましたが、様々な問題が発生してきたことから Amazon EKS に移行をおこないました。 この記事では、Amazon EKS への移行に取り組んだ事例にについて紹介します。 なぜ移行したのか Kubernetes のバージョンが古い これまでの構成では Kubernetes のバージョンアップが考慮されておらず、Kubernetes を利用した N予備校の提供開始以降バージョンアップができていない状態でした。 そのためバージョン 1.7 を利用し続けていました。 バージョン 1.7 は 2017 年にリリースされ、

    N予備校のインフラを Amazon EKS に移行した話 - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2024/04/18
  • Conventional CommitsとCHANGELOGの自動生成でリリースのユーザ影響をわかりやすくした話 - ドワンゴ教育サービス開発者ブログ

    ドワンゴ教育事業 バックエンドエンジニアのtakuminishです。 現在、私は教材入稿ツールの開発チームに所属しています。 教材入稿ツールは昨年の2023年06月に社内向けに正式リリースされた比較的新しいツールであり、リリース当初はリリースノートに関する運用について検討が進んでいませんでした。 リリースノートは開発メンバーが手動で作成しており、内容も前回リリース後にマージされたPRタイトルとリンクを箇条書きで記載しているだけの簡素なものでした。 また、PRタイトルのフォーマットも存在しなかったため、英語で記載されたタイトルと日語で記載されたタイトルが混在している、ユーザ影響度がタイトルからわからないといった問題もありました。 そこで、教材入稿ツール開発チームではリリースノートの運用として、Conventional Commitsを導入するとともに、conventional-change

    Conventional CommitsとCHANGELOGの自動生成でリリースのユーザ影響をわかりやすくした話 - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2024/03/19
  • 遠隔地勤務の働き方 - ドワンゴ教育サービス開発者ブログ

    はじめに こんにちは。N予備校 品質保証チームの鈴木です。私は遠隔地勤務者として東北地方の福島県に居住しながら、2023年2月よりドワンゴの教育事業部で勤務しています。この記事では私の遠隔地勤務の体験を通じて感じたことを紹介したいと思います。 はじめに テレワークが遠隔地勤務の可能性を広げる ドワンゴで働きながら地方に住む ドワンゴの勤務形態 遠隔地勤務の日常 遠隔地勤務での品質保証業務 地方の暮らし 遠隔地勤務を実際にやってみて感じたこと メリット デメリット まとめ We are hiring! テレワークが遠隔地勤務の可能性を広げる 私はドワンゴで勤務する前から福島県に居住しており、地元の企業でQAエンジニアとして勤務していました。コロナ禍で地元の企業でもテレワークが導入され、実際に体験してみるとテレワークでも問題なくQA業務を進められることがわかりました。 テレワークを体験したこ

    遠隔地勤務の働き方 - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2023/10/26
  • TypeScript5.2 で追加された using Declarations and Explicit Resource Management をテストで活用する - ドワンゴ教育サービス開発者ブログ

    こんにちは。N予備校 Webフロントエンド開発チームの堀です。 先日 TypeScript@5.2 が正式リリースされました。 TypeScript@5.2 で新しく追加された using Declarations and Explicit Resource Management (using 構文と明示的リソース管理)によって、N予備校フロントエンドのテストでの質的でない処理をカプセル化し、コード上のノイズを削減することができました。 この記事では、using 構文の活用方法や利用するまでの手順、調査した using 構文の挙動について紹介します。 N予備校PCブラウザ向けフロントエンドの紹介 N予備校PCブラウザ向けUIのテストについて テストの種類 UIコンポーネントの単体テストについて リクエスト内容のテスト 課題: 質的でない処理が afterEach に漏れ出ている

    TypeScript5.2 で追加された using Declarations and Explicit Resource Management をテストで活用する - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2023/09/15
  • マネージャーが育休を取得するときに気をつけたこと - ドワンゴ教育サービス開発者ブログ

    この記事では、マネージャーである私(男)が、育休を取得するときに気をつけたことや取り組んだことについて紹介します。 「いなくても業務を円滑に回す」という大方針を軸に、自分なりに段取りを整えました。 ドワンゴでのマネージャー業務の一例として、育休や長期休暇を取得する際のノウハウの一例として、参考になれば幸いです。 育休は1ヶ月間でした。 より長期の休暇を取得する際にはさらに追加で対応が必要なこともあるかもしれませんが、基的な考え方は変わらないと思います。 なお、育休を取得する際の社内や行政の手続きおよびそのノウハウについては記載しません。 休暇中に業務を円滑に回すための取り組みにフォーカスしてご紹介します。 大方針「いなくても業務が円滑に回るようにする」 マネージャー業務 方針の実行に向けて 現状の洗い出し ひたすら業務内容を記録する 業務内容を分類する 対応方針を検討する 引き継ぎ先の連

    マネージャーが育休を取得するときに気をつけたこと - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2023/08/03
  • GraphQLのFragment活用テクニック: colocationとmasking - ドワンゴ教育サービス開発者ブログ

    GraphQLのFragment活用テクニック: colocationとmasking こんにちは。N 予備校 Webフロントエンド開発チームの中村です。 現在開発中のZEN CompassではGraphQLを採用しました。我々のチームでは(そして私個人としても)GraphQLを採用したのは初めてだったのですが、実際に設計を進めていくうちに色々と知見を得ることができました。今回はその中でも特に重要だと思った、GraphQLのFragmentという仕様を活用したコンポーネント設計のテクニックについてお話ししようと思います。GraphQLを使用したWebアプリケーションに興味がある方にとって何か参考になりましたら幸いです。 【ZEN Compass】 学習者を導く先生方などが利用するコーチング支援Webサービスです。 LMS(Learning Management System)として学習状況

    GraphQLのFragment活用テクニック: colocationとmasking - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2023/07/03
  • N予備校で利用しているAWS CodeBuildについて - ドワンゴ教育サービス開発者ブログ

    この記事は、ドワンゴ Advent Calendar 2022の8日目の記事です。 N予備校では、過去の記事でも触れた通りAWS CodeBuildを日常に利用しています。 この記事では、導入した経緯や実際の利用例などについてご紹介できればと思います。 AWS CodeBuildを導入した経緯 開発当初についてはGo製のCIツールであるDroneを利用しており、v0.5からv0.8まで利用していました。 Droneを利用していた際にはたびたび以下のような事象に遭遇しました。 サーバーがなんらかの理由でやたら停止してしまう cacheがよく壊れる エージェント数が十分に確保できておらずビルド開始まで待たされる 構築したインフラ起因での問題も多数ありましたが、開発を進める上で障害にはならないもののやや開発者体験を損なうという、なかなかイマイチな環境の中で開発していたかと思います。 Drone自

    N予備校で利用しているAWS CodeBuildについて - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2022/12/09
  • 研修で初めてRuby on Railsを触って学んだこと - ドワンゴ教育サービス開発者ブログ

    はじめに 配属研修の課題について エンジニア新入社員研修の個人課題:「JavaScriptでの開発」 配属研修課題1:「RailsAPIサーバのみ構築」 配属研修課題2:「Railsフロントエンドも含めた開発」 作ったアプリケーションの概要 JavaScript・Expressで開発した時との違いに関する感想 letやconstが要らない変数定義 falsyな値の違い ブロックをそのまま変数に代入できない 暗黙のreturn 条件文の後置 フレームワークの機能が豊富 ディレクトリ構造の一貫性 リソースベースルーティング 課題を取り組みながら学んだこと OpenAPIを使ったAPI定義ファイルの作成 N+1問題対策 テストコードに関する考えの変化 おわりに We are hiring! サムネイル画像 はじめに こんにちは。2022年4月に新卒で入社しました教育事業部サービス開発部バッ

    研修で初めてRuby on Railsを触って学んだこと - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2022/11/10
  • 品証チームに参画後の半年間で取り組んだこと - ドワンゴ教育サービス開発者ブログ

    はじめに N予備校品質保証チーム(以下品証チーム)の望月です。 ドワンゴには2022年1月に中途入社しました。 組織が立ち上がってから1年半という品証チームに参画後の半年間で、プロダクト/プロセス品質向上の観点で取り組んだ改善活動をご紹介します。 ※表現に関する補足 この記事では、テストや品質に関連する業務を「QA」と表現しています。 目次 はじめに 目次 参画当初の品証チームの状態 改善活動の前に取り組んだこと STEP1:整理の方針を決める STEP2:課題を洗い出す STEP3:課題をカテゴリごとに分類分けする STEP4:課題改善の取り組み内容と実施効果を整理する STEP5:総合的な判断で課題の優先度を決める STEP6:担当者をアサインし、改善活動を実施する 改善活動の取り組み 1.各クライアントチームへの品証メンバー参画 2.テストデータの整備 3.リグレッションテストのメン

    品証チームに参画後の半年間で取り組んだこと - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2022/09/08
  • N予備校開発でのRSpecの書き方指針 - ドワンゴ教育サービス開発者ブログ

    はじめに テストコード一般の考え方 壊れにくいテストを書く 実装した通りに動作することではなく、仕様通りに動作することをテストする テストコードはシンプルにわかりやすく書く 失敗の原因がわかりやすくなるように意識する RSpecの書き方 テストケース名をitの引数で明記する letよりもlet!を使う 通常の変数と同じ方針に基づいてlet!を利用する subjectを使わない 不要なcontextでのネストを避ける matcherを適切に使い分ける factoryのデフォルト値に依存しないテストを書く 参考にしたブログ記事等 付録:RuboCop設定 We are hiring! サムネイル画像 はじめに テストコードを書く習慣も、近年ではかなり一般的なものになってきました。 ドワンゴ教育事業のバックエンドチームでも自発的にテストコードを書く文化は根付いており、実際に計測はしていませんが、

    N予備校開発でのRSpecの書き方指針 - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2022/09/01
  • OpenAPIを使ったRailsスキーマ駆動開発 - ドワンゴ教育サービス開発者ブログ

    はじめに サービス構成 レポジトリ一覧 サーバー側Railsアプリ クライアント側Railsアプリ 開発の流れ 利用ツール swagger-cli committee-rails 不具合1: ファイルの分割 不具合2: $refとnullableの同時使用 json-schema openapiの記法に合わせた機能拡張 openapi-generator-cli (Ruby client) 不具合1: 中途半端な型チェック 不具合2: oneOf/anyOfに非対応 factory_bot 終わりに We are hiring! はじめに 前回の記事では、OpenAPIで新しいウェブAPIを定義する際に、yamlのままで読みやすいようにファイル構成等を工夫した話をしました。 今回はそのAPIスキーマを使って、Railsでスキーマ駆動開発を実現するにあたって利用しているツール類についてお話し

    OpenAPIを使ったRailsスキーマ駆動開発 - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2022/07/07
  • ReadableなOpenAPI定義ファイルを書く - ドワンゴ教育サービス開発者ブログ

    一行要約 はじめに Readable OpenAPIとは? 既存ルールの不満点 不満点1: 標準仕様外の分割を行っている 不満点2: ディレクトリ階層が深い 不満点3: 1つのAPI定義を参照する際にたくさんのファイルを参照する必要がある 不満点4: コンポーネントスキーマの同一性が不明瞭 新ルールで工夫した点 工夫1: operationIdと対応したパス定義のファイル名を採用し、フラットなディレクトリ構造を実現した 工夫2: パス定義ファイルに含まれる情報量を増やした 工夫3: 再利用性を重視したcomponent定義 できなかったこと、やらなかったこと、やりたいこと 定義ファイルのhttpメソッドごとの分割ができなかった ルートの定義ファイルにcomponentディレクティブを置かなかった exampleの定義は余力があればやりたい おわりに We are hiring! 脚注 一行

    ReadableなOpenAPI定義ファイルを書く - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2022/04/20
    今まさにOpenAPI定義を書いているし近い未来に必要になりそうではある。参考にする。
  • TypeScript Compiler API を使って ts-expect-error を一括挿入する - ドワンゴ教育サービス開発者ブログ

    こんにちは。N 予備校 Webフロントエンド開発チームの中村です。 TypeScriptを使用しているプロジェクトでコンパイラの設定を変更したら既存のソースコードがコンパイルに通らなくなった……という経験はないでしょうか。 先日あるリポジトリでnoUncheckedIndexedAccessというコンパイラオプション(TypeScript4.1以降で使用可能)を有効化した1ところ、既存ソースコードの200箇所以上がコンパイルエラーになりました。これを全て手作業で直すのは大変ですし、その間にも直さないといけないコードは増えていくかもしれません。 そこでTypeScriptのCompiler APIを使用し、コンパイラから得られるコンパイル時のエラー情報を利用して@ts-expect-error2を挿入するスクリプトを作成しました。その過程と結果を書きましたので、次のような方々の参考になれば幸

    TypeScript Compiler API を使って ts-expect-error を一括挿入する - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2022/03/11
  • 技術ブログを(だいたい)1年続けた背景と成果 - ドワンゴ教育サービス開発者ブログ

    このドワンゴ教育サービス開発者ブログを開設してから2年が経ちました。 特に2021年3月からおよそ1年の間、技術ブログの運用体制を整え、定期的に記事を投稿してきました。 この記事では、技術ブログ運用の背景と現在の運用体制、成果と課題についてまとめます。 背景:教育事業の成長のために 運用:編集部体制の構築 執筆フロー 執筆者のアサインとテーマの決定 記事構成・目次の作成 初稿の作成 完成稿の作成 社内公開と公開日の調整 公開 成果 採用での成果 副次的な効果 課題と今後の展望 We are hiring! 背景:教育事業の成長のために 私達は教育を生業とすることもあり、学習や知見の共有は大事な業務のひとつです。 そのような活動の場のひとつとして技術ブログを開設していましたが、有志の手によって不定期に更新される程度で、効果的に活用できていませんでした。 そのような中で、さらなる事業成長のため

    技術ブログを(だいたい)1年続けた背景と成果 - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2022/01/18
  • Web フロントエンドのレガシーコードを置き換えるためのテストの考え方 - ドワンゴ教育サービス開発者ブログ

    この記事は、ドワンゴもスポンサードしていた JSConf JP 2021 にて、「Web フロントエンドのリプレースを支えるテストの考え方」というタイトルで berlysia がトークした内容をもとに再構成したものです。トークのアーカイブもご覧いただけます。 この記事は ドワンゴ Advent Calendar 2021 の3日目の記事です。 speakerdeck.com 宣伝 『ドワンゴ EdTech Talk』と題した事業説明イベントを 12/8(水) に開催します。 ドワンゴの教育事業で提供するオンライン学習サービス「N予備校」のライブ配信の授業を体験いただきながら、教育事業での取り組みを知っていただくためのイベントです。 最後までご参加いただくと N 予備校の有料会員相当の教材を 3 か月間無料で利用できる ように用意をしております。 Web 開発を学ぶ教材として好評をいただいて

    Web フロントエンドのレガシーコードを置き換えるためのテストの考え方 - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2021/12/03
  • iOSチームではリファレンスリポジトリを運用しています - ドワンゴ教育サービス開発者ブログ

    こんにちは。N予備校iOSアプリ開発チームです。今日はリファレンスリポジトリをご紹介します。 皆さんはチームの新メンバーをどうやって開発にアサインしてもらっていますか?この悩み、一度は悩まれたことがあるのではないでしょうか。そこで我がチームで登場するのはリファレンスリポジトリです。 どんなリポジトリかご説明しますと、字のごとくリファレンス実装が詰まったリポジトリになります。コード規約、設計手法、ディレクトリ構成などを把握できるよう、メインのリポジトリを模して1,2画面ほどの小さなアプリを実装した簡潔なリポジトリとなっています。新メンバーはチュートリアルとなる課題を与えられ、先ずはこのリポジトリで開発します。他にも大活躍しているリポジトリで今日はこの魅力をお伝えします。 何が良いの? たくさん良いところがあるリファレンスリポジトリですが、まとめるとこの1点につきます。 具体的で解りやすいリフ

    iOSチームではリファレンスリポジトリを運用しています - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2021/09/09
  • 品証チーム立ち上げ中です - ドワンゴ教育サービス開発者ブログ

    現在、ドワンゴ教育事業では品質保証チーム(以下品証チーム)を立ち上げている最中です。 それに伴い、品質保証エンジニアの採用 もオープンしています。 この記事では募集の背景と目指しているところをお伝えします。 また、立ち上げの最初期、2021年1月から参画いただいている2名のメンバーに一問一答形式でインタビューもしてみました。 品証チーム立ち上げの背景 品証チームを立ち上げるに至ったのは、ドワンゴ教育事業が担う責任と品質保証の体制がアンバランスになってきたからです。 ドワンゴ教育事業では、2016年4月にN予備校をリリースしました。 リリースから5年経ち、大きく環境が変化しました。 ユーザー数の増加 直近では2020年3月に実施したN予備校の無料開放キャンペーンをきっかけに、大きくユーザー数が増加しました。 また、N高等学校・S高等学校の生徒数も年々増加しており、19,000名を超えました。

    品証チーム立ち上げ中です - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2021/07/27
  • ドワンゴ教育事業 エンジニア採用中です! - ドワンゴ教育サービス開発者ブログ

    ドワンゴの教育事業ではエンジニアを採用中です! 私達は「未来の当たり前の教育をつくる」ため、N予備校やN高等学校・S高等学校を支える教育システムの開発に日々取り組んでいます。 この記事を通じて、教育事業に興味をもっていただいたり話をきいてみたりするきっかけになったりしたらうれしいです。 順番に、ドワンゴの教育事業についてお話させていただきます。 ドワンゴの教育事業:そもそも何をやっているのか 採用の背景:なぜ今なのか 働く環境:どんな会社なのか 面談・応募の方法:コンタクトをとるにはどうすればいいか ドワンゴの教育事業 ドワンゴの教育事業 ドワンゴの教育事業では、大きく2つのアプリケーションの開発・保守・運用に携わっています。 N予備校と角川ドワンゴ学園の教務システム(N高等学校・S高等学校の生徒の入学状態や成績を管理するシステム)です。 教務システムはもちろんのこと、N予備校も角川ドワン

    ドワンゴ教育事業 エンジニア採用中です! - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2021/06/17
  • AndroidアプリのKotlin化をやり切るための腕力 - ドワンゴ教育サービス開発者ブログ

    この記事は、ドワンゴ Advent Calendar 2020の4日目の記事です。 N予備校Androidチームでは、およそ2年かけて、Javaで書かれたコードのほとんどをKotlinに書き換えました。この記事では、コードをKotlinに書き換える上で必要だったことをまとめていきます。 Kotlin化に技術はそこまで必要ではない そもそもKotlin化をすることにそこまでの技術力は必要ないです。JavaKotlinの互換性が高いので、Kotlin化によってコードが壊れることは少ないですし、以下のように文法にも大きな変化はないので、読めないコードが生まれることもありません。 Javaで作成したFragment public class SimpleFragment extends Fragment { @Override public View onCreateView(LayoutInf

    AndroidアプリのKotlin化をやり切るための腕力 - ドワンゴ教育サービス開発者ブログ
    honeybe
    honeybe 2020/12/04
  • 1