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

  • Conventional CommitsとCHANGELOGの自動生成でリリースのユーザ影響をわかりやすくした話 - ドワンゴ教育サービス開発者ブログ

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

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

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

    遠隔地勤務の働き方 - ドワンゴ教育サービス開発者ブログ
  • N予備校バックエンドでサーバーサイドKotlin移行を始めました - ドワンゴ教育サービス開発者ブログ

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

    N予備校バックエンドでサーバーサイドKotlin移行を始めました - ドワンゴ教育サービス開発者ブログ
    tsumuchan
    tsumuchan 2023/09/10
  • Kotlin sealedタイプによる論理和型の実装: ポリモーフィズム形式と代数的データ型形式 - ドワンゴ教育サービス開発者ブログ

    はじめに ポリモーフィズム形式の実装 ポリモーフィズム形式の実装の利点 ポリモーフィズム形式の実装の欠点 代数的データ型形式の実装 代数的データ型形式の実装の利点 代数的データ型形式の実装の欠点 まとめ We are hiring! はじめに Kotlinのsealedタイプ (sealed class と sealed interface) は、外部モジュールによるクラスの継承やインターフェースの実装 (以降は実装で統一します) を制限することで、継承先クラスの一覧を静的に取得できるようにする機能です。 以下は公式ドキュメントの例ですが、sealedタイプを使うことで log() 関数内の when が全てのとり得るパターンを網羅していることがコンパイル時にチェックされ、冗長な else を省くことができます。 また、Error インターフェースの直接の実装先が増えて when が網羅性

    Kotlin sealedタイプによる論理和型の実装: ポリモーフィズム形式と代数的データ型形式 - ドワンゴ教育サービス開発者ブログ
    tsumuchan
    tsumuchan 2023/08/31
  • kotlin-result入門 - ドワンゴ教育サービス開発者ブログ

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

    kotlin-result入門 - ドワンゴ教育サービス開発者ブログ
    tsumuchan
    tsumuchan 2023/06/22
  • Androidアプリエンジニアから見たiOSアプリ開発 - ドワンゴ教育サービス開発者ブログ

    N予備校iOSアプリ開発チームのyoppieです。 筆者のN予備校での経歴は Androidアプリ開発チーム 2021年4月 - 2022年3月 iOSアプリ開発チーム 2022年4月 - 現在 です。iOSアプリ開発にチャレンジしたくなり、Androidアプリ開発からiOSアプリ開発に移りましたが、iOSアプリ開発とAndroidアプリ開発(以下I/A)でのさまざまな違いがあり、苦労しました。(iOSアプリ開発チームに移り10ヶ月経ちますが、今も苦労しています...) I/Aでのさまざまな違いがありますが、この記事では筆者が特に違いを感じた点をまとめています。 I/Aどちらかのエンジニアの方がもう一方に移りたて、もしくは移ろうか迷っている方に向けた記事となっています。 IDEに関連した各種バージョン 一般的にXcodeでiOSアプリ開発を行い、Android StudioでAndroid

    Androidアプリエンジニアから見たiOSアプリ開発 - ドワンゴ教育サービス開発者ブログ
  • 6 年にわたる Android アプリの開発環境改善への取り組み - ドワンゴ教育サービス開発者ブログ

    N予備校 Android アプリ は 2016 年 4 月にリリースされてから執筆時点(2022 年 8 月)まで、6 年以上に渡って開発・運用されてきました。この 6 年間で Android まわりでは新しい技術が続々と登場し、古い技術が次々と非推奨になっていきました。 この記事では、技術の変化が激しかった 6 年間で、Android チームが開発環境の改善に対してどのように取り組んだのかをまとめます。同じく技術の変化と闘っているみなさんの参考になればと思います。 アーキテクチャを整備する(2017 年 2 月 ~ 2021 年 4 月) Kotlin を導入する(2017 年 4 月 ~ 2020 年 9 月) Jetpack Navigation を導入する(2020 年 1 月 ~ 2021 年 4 月) Single Activity にする(2021 年 7 月 ~ 2021

    6 年にわたる Android アプリの開発環境改善への取り組み - ドワンゴ教育サービス開発者ブログ
  • Jetpack Compose を少しずつアプリに導入する方法と得られた知見について - ドワンゴ教育サービス開発者ブログ

    この記事は、ドワンゴ Advent Calendar 2021 の15日目の記事です。 N予備校 Android チームでは、アプリの各画面を少しずつ Jetpack Compose で書き換えています。 developer.android.com この記事では、チームで Compose を学習した過程や、段階的な Compose 導入の方法について、また導入して良かったことと、実装でつまづいたことをまとめます。 これから Compose の導入を考えている方や、具体的な導入事例を知りたい方の参考になれば幸いです。 Composeの学習について アプリに Compose を導入するために、まずはチームでの学習から始めました。学習内容は、Jetpack Compose learning pathway を参考に、各 Google Codelab の学習を進めました。 以下に、学習した Cod

    Jetpack Compose を少しずつアプリに導入する方法と得られた知見について - ドワンゴ教育サービス開発者ブログ
  • iOSチームではリファレンスリポジトリを運用しています - ドワンゴ教育サービス開発者ブログ

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

    iOSチームではリファレンスリポジトリを運用しています - ドワンゴ教育サービス開発者ブログ
  • 1