タグ

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

  • 株式会社ドワンゴは TSKaigi 2024 をスポンサーしています - ドワンゴ教育サービス開発者ブログ

    株式会社ドワンゴは2024年5月11日に開催される日最大級のTypeScriptをテーマとした技術カンファレンス TSKaigi 2024 にプラチナスポンサーとして協賛いたします。 TSKaigi 2024 当日は弊社教育事業エンジニアが複数名参加します。スポンサーブースをいただいていますので、現地で参加される方は是非お気軽にお越しください。 スポンサーブースではN予備校内にあるTypeScriptの教材を触れる他、限定ノベルティもご用意しております! ドワンゴの教育事業とは? 私たちは、未来の「当たり前」の教育をつくるため、生徒・学生や教職員の「学ぶ」「教える」体験の最大化を日々目指しています。 日発の格的なオンライン大学「ZEN大学(仮称)(設置認可申請中)」や、2万名を超え日最大の生徒数であるネットの高校「N高等学校・S高等学校」と連携し、ネットの時代に合わせた教育関連のサ

    株式会社ドワンゴは TSKaigi 2024 をスポンサーしています - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2024/04/25
  • 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 に移行した話 - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2024/04/17
  • Conventional CommitsとCHANGELOGの自動生成でリリースのユーザ影響をわかりやすくした話 - ドワンゴ教育サービス開発者ブログ

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

    Conventional CommitsとCHANGELOGの自動生成でリリースのユーザ影響をわかりやすくした話 - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2024/03/19
  • Ktorm のクラス設計を読み解いて、DSLを拡張する - ドワンゴ教育サービス開発者ブログ

    はじめに 先日Server-Side Kotlin MeetupのLT大会で登壇してきましたので、その内容をブログ記事でも公開します。 テーマはKotlin製のORマッパー、Ktormのクラス構造と機能拡張についてです。 Ktormの紹介 ktorm.org Ktormは、いくつかあるJDBCベースのKotlin製ORマッパーのうちの1つです。 それらの中でもっともメジャーと思われるExposedと比較すると、次のような特長があります。 シンプルな実行モデル 遅延実行やキャッシュなどの仕組みを持たないので、コードを読んで理解しやすく、SQLの実行タイミング等も把握しやすいです。 生SQLに近いDSL select() で検索条件を指定し slice() でカラムを指定する形式のExposedのDSL 1 に比べて、生SQLに近い文法を採用しており、SQLに習熟していれば少ない認知コストで読

    Ktorm のクラス設計を読み解いて、DSLを拡張する - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2024/03/13
  • ドワンゴの25卒新卒採用はじまっています - ドワンゴ教育サービス開発者ブログ

    今年もドワンゴの25卒新卒採用がはじまりました。 25卒の方を主なターゲットとしていますが、既卒の方でも一定の条件を満たせば応募可能です。 ニコニコ、教育、DMV(Dwango Media Village)と3つの事業で新卒を募集しています。 saiyo.dwango.co.jp 教育事業でも引き続き新卒を募集しています。 学習サービスN予備校の運営やN高等学校・S高等学校のサポートに加え、ZEN大学(仮称)(設置認可申請中)の開学に向けた開発も進めています。 2023年度は2人の新卒が配属されました(エンジニア職としての採用につき、配属先は入社後の決定となります)。 この記事では新卒の方向けに、ドワンゴの教育事業について、いくつかの資料を通して紹介します。 サービスについて ZEN大学(仮称)(設置認可申請中)開学に向けて 新卒として入社したら 各チームの様子 Webフロントエンド iO

    ドワンゴの25卒新卒採用はじまっています - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2023/11/08
  • 遠隔地勤務の働き方 - ドワンゴ教育サービス開発者ブログ

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

    遠隔地勤務の働き方 - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2023/10/26
    ドワンゴ、ほとんどの人がリモートなので家の環境が本当に充実した。反面インターネット回線だけはいいもの用意してないといけないとも感じる。欲を言うと光クロス安定回線が欲しい。 #PR
  • 新卒エンジニアがESLintのFlat Config移行と格闘した話 - ドワンゴ教育サービス開発者ブログ

    ESLintのFlat Configへの移行は進んでますでしょうか?試してみたでしょうか? 今回はドワンゴの新卒エンジニアが初仕事として取り組んだ、ESLintのFlat Configへの移行に関して「その方法と嵌ったところの乗り越え方」をお伝えします。 この記事で言及すること Flat Configに書き変えるときに見る資料 ESLintのconfigをFlat Configに移行するとき、configs.recommendedなどのプリセットを用いる場合はFlatCompatを使う eslint-plugin-importを使用してると嵌る どうやって新旧configが同じになっていることを示すのか? ESLintのFlat Configを書くことになりました こんにちは。N予備校 Web フロントエンド開発チームのsokunoです。私は現在4ヶ月に渡る新卒研修を経て、この8月から今の

    新卒エンジニアがESLintのFlat Config移行と格闘した話 - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2023/10/19
  • Kotlinのsealed型を使って高機能なenum型を実装する - ドワンゴ教育サービス開発者ブログ

    はじめに シンプルな実装例 sealed型による実装のメリット enumに階層関係を持たせることができる 個々の値を型として扱える sealed型による実装のデメリット 言語仕様が提供する便利機能を利用できない まとめ We are hiring! はじめに blog.nnn.dev Kotlinのsealed型の使い方を考える記事の第2弾です。 前回の記事では、sealed型を使って論理和型を実装しましたが、今回は通常の enum class よりも機能を拡張したenum型を実装したいと思います。 シンプルな実装例 通常、Kotlinでenum型を使いたい場合は、enum class を使って、次のように実装します。 /** * 学校で教える教科 (抜粋) */ enum class SchoolSubjectEnum { /** 日史 */ JAPANESE_HISTORY, /**

    Kotlinのsealed型を使って高機能なenum型を実装する - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2023/09/28
    Kotlinのsealed classのお話。ScalaやJavaのsealed classと同様にパターンマッチで使える様子。Scalaのように抜けに対してコンパイル警告を出してくれる感じなのかどうかはわからないけども良さそう。
  • Web フロントエンドチームの紹介 - ドワンゴ教育サービス開発者ブログ

    はじめに こんにちは。N 予備校 Web フロントエンド開発チームの三橋です。 この記事では Web フロントエンドチームについてご紹介します。 メンバー(実施時点 9 名)にカジュアル面談でよくご質問いただく項目を含めたアンケートに協力してもらいました。 チームメンバーの雰囲気を知りたい チームメンバーがどんな働き方をしているか知りたい という方に読んでいただきたい内容になっています。 概要 新卒/中途 中途採用されたメンバーがこの 1~2 年で増えて、現在では新卒採用の方に比べて中途採用の方が多くなりました。 年齢のボリュームゾーン 30 代が 5 名と最多ですが、年齢に関係なく疑問を投げかけたり提案したりしている気がしますね。 お住まい エンジニアは原則として テレワーク なので、東京都が最多ですが地方にお住まいの方もおられます。 普段のコミュニケーションは Slack でテキストベ

    Web フロントエンドチームの紹介 - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2023/07/20
  • kotlin-result入門 - ドワンゴ教育サービス開発者ブログ

    はじめに Result型の定義とサンプルコード Result型を使わない場合 Result型を使う場合 なぜResult型を使うのか 関数シグネチャで、呼び出し元が処理すべきエラーを伝えることができる 呼び出し元にエラー処理を強制できる 復帰可能なエラーと復帰不可能なエラーを明確に区別できる エラー処理を簡潔に書ける なぜkotlin-resultを使うのか メソッドが豊富に用意されている エラーの型を自由に設定できる Result型を使ったエラーパターン 単純なエラーメッセージを返す 構造化したエラー情報を返す 複数のエラー情報を同時に返す 型による分岐が可能なエラーを返す kotlin-resultの基メソッド get() / getError() unwrap() / unwrapError() onSuccess() / onFailure() map() / mapError(

    kotlin-result入門 - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2023/06/22
    ScalaのEither型やTry型に近いに近いことがKotlinでもできるの知らなかった。業務系コードだと例外処理が多くなるからすごく役立つのだよな。
  • 「 ZEN大学 (仮称) (設置構想中) 」 開学に向けエンジニア募集中! - ドワンゴ教育サービス開発者ブログ

    はじめに 株式会社ドワンゴと公益財団法人日財団は包括提携し、2025年4月に新しいオンラインの大学、ZEN大学 (仮称) (設置構想中) の開学を目指しています。 ドワンゴ教育事業では、ZEN大学生のオンライン学生生活を便利に、かつ豊かなものにするため、システムを開発中です。 それに伴い、エンジニアも募集中です。 この記事では、ZEN大学がどのような大学か、開学に向けてどのようなことをしていくか、といったことをご紹介します。 大学が開学すると、N中等部、N高等学校・S高等学校、ZEN大学と10年間にわたる教育を提供することになります。 この新しい挑戦に興味をもっていただけるとうれしいです。 6月6日の発表会でもZEN大学についてお伝えしていますので、よろしければこちらもご覧ください。 www.youtube.com ニコニコ生放送はこちら はじめに ZEN大学とは ZEN大学が目指すもの

    「 ZEN大学 (仮称) (設置構想中) 」 開学に向けエンジニア募集中! - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2023/06/07
  • N予備校iOSアプリ SwiftPM 移行 - ドワンゴ教育サービス開発者ブログ

    はじめに SwiftPM 移行の準備 2021/12 〜 2023/02 (平和) 2023/02 中旬 〜 2023/03 上旬 (問題発生と対応) 一体どんな問題が起きていたのか? 調査結果の詳細 XcodeGen 実行時にクラッシュ Bitrise Xcode & OS 変更 SwiftPM 完全移行に向けて アプリクラッシュ おわりに We are hiring! はじめに N予備校 iOS アプリ 開発チームです。 数ヶ月前までの教育iOSアプリでは、パッケージマネージャに CocoaPods(Ruby製) を使用していました。 環境構築の手間や Apple 標準ではないという点で、Apple 標準のパッケージマネージャである SwiftPM 移行に向けてこつこつと準備をしてきました。 macOSCocoaPods・Bitrise が関係する問題がきっかけで、2023年2月

    N予備校iOSアプリ SwiftPM 移行 - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2023/05/31
  • 初めてのスクラムをやってみての反省点 - ドワンゴ教育サービス開発者ブログ

    はじめに こんにちは、lenです。 現在自分はバックエンドセクションのメンバーとともにある改善プロジェクトに参画しております。 そのプロジェクトでは、スクラムを用いてプロジェクトを進めていますが、初めてのスクラムだったので困ったことや反省点についてお話していきます。 スクラムについて スクラムをするにあたり、弊社のエンジニア研修での課題図書でもある SCRUM BOOT CAMP THE BOOK(翔泳社) をあらためて読み直しました。 そこでは、スクラムとは以下の特徴があると述べられています。 要求を価値やリスクや必要性を基準にして並べ替えて、その順にプロダクトを作ることで成果を最大化します。 スクラムでは固定の短い時間に区切って作業を進めます。 現在の状況や問題点を常に明らかにします。 定期的に進捗状況や作っているプロダクトで期待されている成果を得られるのか、仕事の進め方に問題はないか

    初めてのスクラムをやってみての反省点 - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2023/05/17
    N高生/S高生たちが使うN予備校を支えて頂きありがとうございます!
  • N予備校iOSアプリへ SwiftUI を導入してみて List編 - ドワンゴ教育サービス開発者ブログ

    はじめに 問題点 ベンチマークテスト(Sampleコードで実演) 計測方法 パターン1: Identifiableに適合したデータのリスト表示 ベンチマークスコア パターン2: リスト内ボタンの表示 ベンチマークスコア ベンチマーク結果 問題発覚と調査 解決方法 改善とその結果 パターン3: UIViewControllerRepresentableを利用したリスト表示 パターン4: 従来通りのUIKitUITableViewを利用したリスト ベンチマーク結果 改善の結果 総括 We are hiring! N予備校春の入学無料キャンペーンのお知らせ はじめに こんにちは。N予備校iOSアプリ開発チームです。 以前、N予備校iOSアプリへ SwiftUI を導入するまでの道のりについてという記事を書かせていただきました。今回は導入しSwiftUI化を一部の画面で行った結果、どうなったかを

    N予備校iOSアプリへ SwiftUI を導入してみて List編 - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2023/04/12
  • N予備校バックエンドでサーバーサイドKotlin移行を始めました - ドワンゴ教育サービス開発者ブログ

    はじめに 現在、N予備校バックエンドチームでは、現行のRails製アプリケーションからKotlin製の新アプリケーションへ一部移行する計画を始めました。 N予備校サービス構成図 移行の主な対象は、上記の図の紫の部分の 教材管理サービス まわりになります。 移行の目的 今回の移行は、主に次の2つの問題の解決を目指しています。 DBスキーマを含めたモデルの再設計 N予備校はサービスの仕様が十分に固まらないうちから基設計が開始されたため、必要以上の柔軟性を持つ形で設計されている部分も多く、現在の事業ドメインの知識がモデルで十分に表現されているとは言い難い面があります。 特にコンテンツデータ同士の参照関係については、階層構造の大きな変化1にも対応できるように、多くがActiveRecordのポリモーフィック関連を使って実装され、コードやDBスキーマからデータ構造を読み取るのが非常に難しくなってい

    N予備校バックエンドでサーバーサイドKotlin移行を始めました - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2023/03/24
  • N予備校の就業型インターンシップに参加してきました! - ドワンゴ教育サービス開発者ブログ

    はじめに 動機 インターンシップ参加までの流れ 期間 就業環境 開発環境 業務内容 メインのタスクへの準備 メインのタスク「未送信解答救済機能の追加」 最後に はじめに 修士1年 (インターンシップ参加当時) の杉水俊輝です。 2022年の10月から12月までの3ヶ月間 N予備校 PCWeb フロントエンドチームの就業型のインターンシップに参加させていただきました。 github.com 動機 応募の動機としては、サマーインターンシップなど数日から数週間のインターンシップに参加する中で、それらのインターンシップでは、インターンシップ用に用意された課題が多く*1、実際に動くサービスに関わりたい、そして、それを通して今の自分のレベルがどの程度なのか (何ができて、何ができないのか) を明確にしたいなどと思っていました。それに加え、普段の Web 開発でフロントエンドの開発をする際に TypeS

    N予備校の就業型インターンシップに参加してきました! - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2022/12/23
  • 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について - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2022/12/09
  • ドワンゴ新卒採用はじまっています - ドワンゴ教育サービス開発者ブログ

    2022年度のドワンゴ新卒採用がはじまりました。 ニコニコ、教育、DMV(Dwango Media Village)と3つの事業で新卒を募集しています。 saiyo.dwango.co.jp 教育事業でも引き続き新卒を募集しています。 2022年度は3人の新卒が配属されました(年度によって配属人数や配属チームは異なります)。 この記事では新卒の方向けに、ドワンゴの教育事業について、いくつかの資料を通して紹介します。 教育事業についてインプットした上で、興味をもっていただけるとうれしいです! サービスについて 新卒として入社したら 各チームの様子 フロントエンド Webフロントエンド iOSアプリ Androidアプリ バックエンド フロンティア企画開発 We are hiring! サービスについて www.nnn.ed.nico ドワンゴの教育事業では、「未来の当たり前の教育をつくる」と

    ドワンゴ新卒採用はじまっています - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2022/11/18
  • 研修で初めて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を触って学んだこと - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2022/11/09
  • N予備校iOSアプリへ SwiftUI を導入するまでの道のりについて - ドワンゴ教育サービス開発者ブログ

    はじめに 導入に向けて検討したこと 流れ 1. UIKit 及び Storyboard をどのように置き換えるのか 2. 書き慣れた MVVM パターンを維持できるのかどうか 3. 既存のプロジェクト構成でもスムーズに導入できるのか 4. アプリのサポートOSが iOS14.0+ だが、 SwiftUI 特有の苦しみは問題なさそうか 5. 当に開発効率は向上できるのか 導入決定後から格対応までにやったこと 流れ 1. 画面構成がシンプルで、利用頻度の低い設定画面の SwiftUI 化 2. チーム勉強会の時間を使って一緒に学習 実践 移行計画 成果 おわりに We are hiring! はじめに N予備校 iOS アプリ 開発チームでは、長い間 UIKit & Storyboard & RxSwift & MVVM で開発してきました。 以前から「Storyboard やめたい!」「

    N予備校iOSアプリへ SwiftUI を導入するまでの道のりについて - ドワンゴ教育サービス開発者ブログ
    sifue
    sifue 2022/10/26