hmiyadoのブックマーク (160)

  • Zod を使って CSV からの入力データをバリデーションする - ドワンゴ教育サービス開発者ブログ

    こんにちは、バックエンドエンジニアの日下です。 CSV から JSON へ変換するスクリプトを、TypeScript で実装する機会がありました。 今回は、CSV のデータのバリデーションに Zod を使った話をします。 スクリプトの目的 システム間のデータ連携が目的です。 連携元のシステムから CSV 出力されたデータを、連携先のシステムで利用する JSON へ変換します。 また、JSON への変換以外にも以下の要件があります。 CSV のデータをバリデーションする 連携先のシステムで利用できるデータであることを保証するために、バリデーションを実行します。 バリデーション失敗時に、日語のエラーメッセージを表示する スクリプトの実行は業務担当のエンドユーザーが行うため、日語のエラーメッセージを表示します。 CSV の読み込み 元データとなる CSV の読み込みは、csv-parse を

    Zod を使って CSV からの入力データをバリデーションする - ドワンゴ教育サービス開発者ブログ
    hmiyado
    hmiyado 2024/05/22
    Zod でCSVパースだけでなく、関連ツールも利用することでエンドユーザー向けの日本語エラーメッセージもシュッと出せるのは良いですね 👍
  • TSKaigi 2024 参加レポート - ドワンゴ教育サービス開発者ブログ

    バックエンドエンジニアの松尾です。 2024 年 5 月 11 日に開催された日最大級の TypeScript をテーマとした技術カンファレンス TSKaigi 2024 に参加しました。 記事では弊社からの登壇内容やスポンサーブースの様子をお伝えします。 登壇内容まとめ 弊社からは下記の LT で 2 名のエンジニアが登壇しました。 TypeScript で使いやすい OpenAPI の書き方 speakerdeck.com yukimochi さんからは OpenAPI の書き方について紹介しました。 変更に強く、ドメインモデルを正確に表現する書き方にすることで、TypeScript で使いやすいコードを生成できるとのことでした。 筆者は最近 OpenAPI spec を書くことは無いのですが、Union を用いた定義は非常に同意するところであり、今後の開発で活用していきたいと思い

    TSKaigi 2024 参加レポート - ドワンゴ教育サービス開発者ブログ
    hmiyado
    hmiyado 2024/05/17
  • プロダクトマネジメントクライテリア

    プロダクトマネジメントを体系化したクライテリアです。企業がプロダクトを成功に導くために必要な要素を多角的かつ具体的に記載してあります。対象はプロダクトマネージャー個人ではなくプロダクトを取り巻くチームとし、プロダクトマネジメント全体をスコープにしています。

    プロダクトマネジメントクライテリア
    hmiyado
    hmiyado 2024/05/12
  • pnpm の node_modules を探検して理解しよう - ドワンゴ教育サービス開発者ブログ

    はじめに こんにちは。ドワンゴ教育事業でエンジニアをしているユーンです。 N予備校アプリケーションやその他複数のプロジェクトで pnpm を採用しました。pnpm とは何か、npm とどう違うのかというのを node_modules の構造を追いながら理解しつつ、教育事業での採用した結果についてお話します。 pnpm とは pnpm とは、npm や yarn とレイヤーを同じくするパッケージマネージャであり、サードパーティのものです。 pnpm.io pnpm は他のツールと比較して高速でありディスク効率が良いと謳っています。 その pnpm の最大の特徴は、 node_modules の構造にあります。 例えば npm では v3 からフラットな node_modules を使うようになっております。yarn もデフォルトでは同様にフラットな node_modules を提供しています

    pnpm の node_modules を探検して理解しよう - ドワンゴ教育サービス開発者ブログ
    hmiyado
    hmiyado 2024/05/10
    yarn v3→pnpmで "CI ではキャッシュは使っていませんが...約 20 分かかっていたところが約 14 分に、 CD では cache がうまく効くことによって 7 分から 1 分へ、短縮ができました。" とのことでうれしいですね 👍
  • Eraser – Docs and Diagrams for Engineering Teams

    All-in-one markdown editor, collaborative canvas, and diagram-as-code builder

    Eraser – Docs and Diagrams for Engineering Teams
  • 組織に“できたてホヤホヤの暗黙知”をシェアする仕組みをどうつくるか?子どもの「逆上がり」習得過程を見て気づいたこと|安斎勇樹

    組織に“できたてホヤホヤの暗黙知”をシェアする仕組みをどうつくるか?子どもの「逆上がり」習得過程を見て気づいたこと 今日は「子どもの日」ということで、個人的な話になりますが、先日、5歳の娘が「逆上がり」を習得しました。 一人の親として感動を覚える瞬間だったことはもちろん、習得のプロセスがまさにヴィゴツキーの言う「ZPD(Zone of Proximal Development、最近接発達領域)」そのもので、親としても、研究者としても非常に感激してしまいました。 そこで記事では、「娘の『逆上がり』習得」というきわめて身近なエピソードを通じて私が感じた、ナレッジマネジメントにおける「できたてホヤホヤの暗黙知」の重要性と、「ZPD」を学びにつなげるためのポイントについて、書いてみたいと思います。 ある日の公園での「驚き」の出来事ある日、保育園の帰り道に寄った公園にて。5歳になったばかりの娘が、

    組織に“できたてホヤホヤの暗黙知”をシェアする仕組みをどうつくるか?子どもの「逆上がり」習得過程を見て気づいたこと|安斎勇樹
    hmiyado
    hmiyado 2024/05/05
  • ヘッダー(グローバルナビゲーション)のデザイン事例100選|akane

    こんにちは!株式会社Rabeeのデザイナーのakaneです🐏 今回は、ヘッダー(グローバルナビゲーション)のデザイン事例を調べてみました!パターンごとに分類しながら紹介していくので、どうぞ最後までお楽しみください✍ はじめに:グローバルナビゲーションとは?グローバルナビゲーションとは、Webサイトの全ページに共通して表示される「主要なコンテンツへの案内リンク」です。 一般的には画面上部のヘッダーに設置されることが多く、ユーザーが「今、どこにいるのか?」「目的のページはどこか?」と迷わないように誘導する大切な役割があります。 どんなサイトを作るときもほとんど必須のパーツですが、わたしは気付けばいつも似たようなレイアウトを使いがち…。そこで今回は、グローバルナビゲーションのデザインを100事例見比べて分類してみます🔍 ・ ・ ・ 1. スタンダード型まずは、一般的に「ヘッダー」の言葉で想像

    ヘッダー(グローバルナビゲーション)のデザイン事例100選|akane
    hmiyado
    hmiyado 2024/04/26
  • 株式会社ドワンゴは TSKaigi 2024 をスポンサーしています - ドワンゴ教育サービス開発者ブログ

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

    株式会社ドワンゴは TSKaigi 2024 をスポンサーしています - ドワンゴ教育サービス開発者ブログ
    hmiyado
    hmiyado 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 に移行した話 - ドワンゴ教育サービス開発者ブログ
    hmiyado
    hmiyado 2024/04/17
    7年ものの自前運用 Kubernetes 環境が EKS に移りました 🎉
  • ドワンゴの就業型インターンの体験記 - ドワンゴ教育サービス開発者ブログ

    はじめに 大阪産業大学3年の関佑太です。 2023年12月18日~2024年3月31日の間N予備校Androidチームにインターンで参加していました。 私がこのインターンに参加した時のスキルレベルとしては次のような感じです。 個人開発でアプリを作ったことはある テストコードは簡単なものしか書けない アーキテクチャは最近意識し始めた ドワンゴのインターンに参加するのに上記のスキルが必須かというと全くそのような事はなく、後述する開発サポートの時間で分からない事を現場のエンジニアに聞く事ができる時間があるので個人開発でアプリを作ったことがなかったり、テストコードを書いたことがなくても大丈夫だと思います。また、私は、インターンが始まった後にスキルレベルを聞かれましたが、その際に素直に言えば学習する時間を取ってくれると思います。 私は以下のインターンに応募して今回参加させていただく事になりました。

    ドワンゴの就業型インターンの体験記 - ドワンゴ教育サービス開発者ブログ
    hmiyado
    hmiyado 2024/03/25
    先日のバックエンドに続いて、Androidからもインターン体験記が公開されました 🚀 "就業型のインターンに参加する事によって自分がエンジニアとして働くイメージを鮮明に持つ事ができる" 長期就業型ならではですね!
  • Conventional CommitsとCHANGELOGの自動生成でリリースのユーザ影響をわかりやすくした話 - ドワンゴ教育サービス開発者ブログ

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

    Conventional CommitsとCHANGELOGの自動生成でリリースのユーザ影響をわかりやすくした話 - ドワンゴ教育サービス開発者ブログ
    hmiyado
    hmiyado 2024/03/19
    Squash Merge で Conventional Commits 運用(=PRタイトルでConventional Commits)なところが個人的には興味深かったです 👀
  • 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を拡張する - ドワンゴ教育サービス開発者ブログ
    hmiyado
    hmiyado 2024/03/13
    いざというときライブラリ側に拡張の選択肢がある、拡張しやすいというのは大事ですね〜
  • メンバー1人1人のスキルアップを促す「等級(グレード)」と「給与テーブル」|風音屋(かざねや)

    風音屋(@Kazaneya_PR)では、メンバー1人1人のスキル水準をモニタリングし、さらなる成長を促すための仕組みとして「等級(グレード)」を設定しています。プロフェッショナル人材が少しでも正当な評価とフィードバックを受けられるように試行錯誤を経てきました。 採用選考を進める中で「自分の場合はどのくらいのグレードになるのか?」というご質問をいただく機会が多々あります。この記事では、どういった考え方でグレードを設計・運用しているのかを、給与テーブルとセットで解説します。 注意事項クライアントワークを担当するAnalytics部門を想定した内容となっています。Backoffice部門の給与テーブルは試行錯誤中ですが、ベースとなる考え方は同じような形に落ち着くはずです。 人事周りのルールは今後変わっていく可能性があります。最新状況についてはカジュアル面談でお問い合わせください。 すべての人にと

    メンバー1人1人のスキルアップを促す「等級(グレード)」と「給与テーブル」|風音屋(かざねや)
    hmiyado
    hmiyado 2024/03/12
  • 生産性指標をFour Keysから変更した話 - Sansan Tech Blog

    技術部 Mobile Applicationグループの山です。名刺アプリEightの開発を行っています。 今回はMobile ApplicationグループのEight開発チームの生産性指標をFour Keysからベロシティを含む別の値に変更した話をします。 一般的にはベロシティは生産性指標にすべきではない、Four Keysは生産性指標として適切であるという評価だと思います。もちろんそれは理解した上でこの選択をしています。その理由について説明します。 なお組織全体がこのように考えているわけではないということに御注意ください。例えば同じMobile ApplicationグループでもSansan開発チームはFour Keysを生産性指標にしています。 生産量2倍計画 現在技術部では中期的な課題として1年で単月の生産量を2倍にするという目標を掲げています。 ポイントとして、技術部のレ

    生産性指標をFour Keysから変更した話 - Sansan Tech Blog
    hmiyado
    hmiyado 2024/03/05
    審査やアプリインストールのあるモバイルアプリ開発に合わせて指標を選んだ話
  • N予備校エンジニアインターンシップ体験記🌟 - ドワンゴ教育サービス開発者ブログ

    初めに 初めまして、「教育学習サービス『N予備校』サーバーサイドエンジニアインターンシップ」に参加した落合大輔です。 私は大学院の修士1年生の秋頃にインターンシップに応募しました。内容はTypeScriptによるバックエンドの開発です。私の場合は期間は4ヶ月程で1週間あたり16時間程のシフトです。 参加をおすすめする人 ドワンゴのインターンシップは下記の様な人にお勧めです。特に「ものづくりが好き」という人にお勧めです。 ものづくりや技術が好きな人 自分の手でコーディングを行い開発がしたい人 チーム開発のノウハウを学びたい人 開発環境 ドワンゴのインターンシップでは各自にPCが支給されます。OSはMacWindowsが選べて、私はMacを選びました。 技術スタック 言語・フレームワーク TypeScript/NestJS/TypeORM 開発プラットフォーム Docker/JFlog/AW

    N予備校エンジニアインターンシップ体験記🌟 - ドワンゴ教育サービス開発者ブログ
    hmiyado
    hmiyado 2024/02/29
    "1人で技術を学んでいるだけでは知り得ない事がたくさんあります。エンジニアを志す学生には積極的にインターンに参加して様々な学びを得てほしいなと思います。" ドワンゴに限らずインターン参加は良さそうです!
  • @swc/jestで手間をかけずにテストを早くする - ドワンゴ教育サービス開発者ブログ

    こんにちは、ドワンゴ教育事業 Web フロントエンドチームの猪井です。 この記事では babel-jest から @swc/jest に移行することで Jest によるテストが速くなった事例について紹介します。 JavaScript のテストツールは、Vitest のバージョンが 1 を迎えたり Bun が登場したりして、よく使われる Jest 以外にもよさそうな選択肢が増えています。業務の手が少し空いたタイミングでそれらについて調査し実際に試してみたところ、最終的に @swc/jest を使用することで既存のテストを大きく書き換えることなく実行時間を短縮できました。 今回試した JavaScript のテストツール 今回は Vitest、Bun、そして @swc/jest の 3 つを試してみました。 これら以外にも、Node.js 自体に搭載されているテストランナーや、@swc/jes

    @swc/jestで手間をかけずにテストを早くする - ドワンゴ教育サービス開発者ブログ
    hmiyado
    hmiyado 2024/02/26
    テストランナーももう Jest 以外にいろいろ選択肢がでてきていますね 👀
  • iOS版Twitter(X)アプリではツイート内のURLがUniversal linksとして機能しないので、N予備校アプリへの導線を見直した話 - ドワンゴ教育サービス開発者ブログ

    こんにちは。N 予備校 Webフロントエンド開発チームの中村です。 去年の夏頃、記事タイトルの件に絡んで起きていた問題の対応をしたのでその時の話を書きます。1 なおTwitter社の社名及び同社のサービス名は現在ではXとなっていますが、文内容の当時はまだTwitterだったためこの記事ではTwitterと表記しています。 何が問題か 以前から開発チームに寄せられていた改善の要望として、「iOSのTwitterアプリ上でN予備校のURLをタップした際にN予備校アプリではなくWebページが開いてしまい、ユーザが目的のページに遷移できない」というものがありました。 iOSにはUniversal linksという、ネイティブアプリとURLを紐付け、Webブラウザやネイティブアプリから他のネイティブアプリに遷移できる仕組み(URLをタップするとアプリが開くアレ)があります。しかしながらiOS版Tw

    iOS版Twitter(X)アプリではツイート内のURLがUniversal linksとして機能しないので、N予備校アプリへの導線を見直した話 - ドワンゴ教育サービス開発者ブログ
    hmiyado
    hmiyado 2024/02/08
    "Webサービス全体や一部の機能が特定のユーザエージェントに対応しない(できない)場合でも、ユーザが代替手段でアクセスできるような情報設計を心がける必要があるということでしょうか。" 大事ですね……!
  • ふりかえりカタログ / Retrospective Catalog

    <> 2024.1.11 みなさんも編集可能・かつさらに使いやすくなった「コミュニティ版」をリリースしました。 是非そちらもご参照ください! https://qiita.com/viva_tweet_x/items/f4db2c923d474f67fe0f 古今東西のふりかえり手法を集めています。 pdfをダウンロードしてお使いください。 詳細な利用方法や更新履歴は以下をご覧ください。 https://qiita.com/viva_tweet_x/items/cc3bad3bd298406b6cc7

    ふりかえりカタログ / Retrospective Catalog
    hmiyado
    hmiyado 2024/01/30
  • マネージャーの評価基準(シート・動画付き)|長村禎庸@EVeM

    はじめに約1年ぶりのエントリーになります。今回はマネージャーの評価基準というタイトルで書きたいと思います。 マネージャーを評価する基準というのはありそうでないなと、この1年色々な経営者・マネージャーの方と話す中で感じていました。 その時残すべき成果が出ていればマネージャーとしてOKとしている会社もあれば、「マネージャーとしての行動リスト」のようなものが5個〜多くて30個程度であり、その行動リストを評価とまではいかなくとも、チェックリストのように使っている会社もあります。 しかし、前者の場合は「成果が出ていれば色々な犠牲が出てもよし」となりますし、後者の場合は「行動リストのうち今必要が無いことも行動せよ」となるので、両方ともマネージャーを評価する基準としては何か違うなと違和感を覚えてました。 しかし、何を以て良いマネージャーなのか、それを判断する基準がなければ、マネージャーに何を求めて良いか

    マネージャーの評価基準(シート・動画付き)|長村禎庸@EVeM
    hmiyado
    hmiyado 2024/01/16
  • 「プロダクトマネージャーがプロダクトマネジメントを失敗させる!?」大企業病の罠を乗り越え若々しいチームを実現する/Traps of Optimization in Product Management 2024

    「プロダクトマネージャーがプロダクトマネジメントを失敗させる!?」カオスなプロダクト開発を効率化したら硬くて息苦しい官僚組織になっちゃった! 大企業病の罠を乗り越え若々しいチームを実現するぞ 効率化を進めていったら息苦しい組織になってきたと悩む方に向けたセッションです。 概要 https://confengine.com/conferences/regional-scrum-gathering-tokyo-2024/proposal/19268 発表者 https://twitter.com/_N_A_ https://note.com/mryy 関連スライド 「私考える人、あなた作業する人」を越えて、プロダクトマネジメントがあたりまえになるチームを明日から実現していく方法 https://speakerdeck.com/moriyuya/product-management-rsgt20

    「プロダクトマネージャーがプロダクトマネジメントを失敗させる!?」大企業病の罠を乗り越え若々しいチームを実現する/Traps of Optimization in Product Management 2024
    hmiyado
    hmiyado 2024/01/14