2023年8月5日のブックマーク (3件)

  • チームのテストフローを見直して、実装時間を2倍に増やした話 - SmartHR Tech Blog

    こんにちは!SmartHRで基機能の開発を担当している、エンジニアのwakasaです。2023年の1月から半年かけて、自チームのテストフロー見直しを行い、実装時間を大幅に増やすことができました。今回はその取り組みをご紹介します。 見直し前のチームの状態 私の所属するEチームは、SmartHRの基機能の中でも、従業員情報やマスターデータの履歴データ管理周りの機能開発を主に担当しています。2023年8月現在、エンジニアが6名、プロダクトマネージャーが1名、プロダクトデザイナーが1名所属しており、QAエンジニアは所属していません。以前はQAエンジニアがチームに所属していましたが、2022年10月にチームを離れました。QAエンジニアがチームを離れたあとはエンジニアがテスト業務を兼務しています。 今回の取り組みを始めるきっかけとなったのは、2022年の年末に実装にどのくらい時間を使えているのか計

    チームのテストフローを見直して、実装時間を2倍に増やした話 - SmartHR Tech Blog
    shingo-sasaki-0529
    shingo-sasaki-0529 2023/08/05
    こういう計測したことなかったけど、実際どうだろ。やっぱりテスト周りが大半を締めてるのであれば実装スピードを上げるより、開発者自身が関わるテストのプロセスをQAと協力して見直していくのはかなり効果的そう。
  • 空でない配列を型で表現する正しい方法【TypeScript】

    TypeScriptでは配列が空でないことを型レベルで表現できます。 この記事ではその型をNonEmptyArray<T>と書くことにします。 結論だけ先に書くと、次のように定義するのが正しいです。 export type NonEmptyArray<T> = [T, ...T[]] | [...T[], T] 現在ネット上では上記とは異なる、少し不具合のある型定義が紹介されているので要注意です。 それらも含めて簡単に解説します。 よくある間違いその1:T[] & { 0: T } 2つあるうち最初に紹介するのはこの型定義です。[1]

    空でない配列を型で表現する正しい方法【TypeScript】
    shingo-sasaki-0529
    shingo-sasaki-0529 2023/08/05
    よくある間違いその1 がすごい直感的だと思ったけど、スプレッド構文と合わさると穴があるのかぁ。 型パズルとしては楽しいけど、要素数は型レベルじゃなくてランタイムでちゃんと検査しようなってなりそう。
  • なぜ我々はRailsを選択したのか?Smart Craftバックエンドのご紹介

    はじめに Smart Craft テックリードの星井です。 前回の記事で Smart Craft の技術スタックの全体像についてお伝えしましたが、今回はバックエンドについてお話します。 Ruby on Rails / GraphQL な構成になっているので同じような構成を検討している方の参考になれば幸いです。 バックエンドのフレームワーク選定 新しくアプリケーションの開発をやるぞとなったときに、バックエンドで何を使うかというのは毎回頭を悩ませる人が多いのではないでしょうか? フロントエンドに関しては最近だととりあえず React を使っておけば文句を言う人はいないと言う認識ですが(偏見)、バックエンドはいろいろあって迷いますよね。 自分は Rails 信者でして個人的に何かを作る時には脳死で Rails を採用することが多いですが、Smart Craft でのプロダクト開発は当然そんな安易

    なぜ我々はRailsを選択したのか?Smart Craftバックエンドのご紹介
    shingo-sasaki-0529
    shingo-sasaki-0529 2023/08/05
    インタフェース周りの型は GraphQL でスキーマ駆動でバリデーションまで自動でできるって考えると、型の無さの問題は結構解決できるものなのかな。