タグ

2023年9月1日のブックマーク (3件)

  • これだけは覚えたい、ユニットテストを書くための4つのデザイン - Qiita

    もうちょっと規約的なものを「JavaでのUT作成基準を整理してみた」にもまとめてみました。 はじめに 去年、ブログの方に「ふつうのユニットテストのための7つのルール」という記事を書いたのですが、思ったより反響がありました。 あの記事で書いたのはあくまで原理・原則で、それを実現するためにはいくつかのテクニックが必要です。 特に、ああいうルールを作って「ユニットテストを書く事」を厳守するようにしても、 適切なテクニックを知らなければメンテが困難だったり、品質に寄与しなかったり、実行性能が悪いゴミが量産される可能性があります。 じゃあ、どうすれば良いかというと「最初からユニットテストが書きやすいように元のコードを設計する」ということです。 そう。まず身に付けるべきは「テストコードの書き方」では無く「テスト対象コード」すなわち「プロダクトコードの書き方」なのです。 また、ここで言ってる「最初から」

    これだけは覚えたい、ユニットテストを書くための4つのデザイン - Qiita
    dorapon2000
    dorapon2000 2023/09/01
    "ユニットテストで最も意識を傾けないといけないのはロジックのテストです。 ファイル入出力や標準入出力、あるいはログ出力のような既に品質が十分に確認されたテストをする必要はありません。"
  • Branded Typesを導入してみる / TypeScript一人カレンダー

    こんにちは、クレスウェア株式会社の奥野賢太郎 (@okunokentaro) です。記事はTypeScript 一人 Advent Calendar 2022の18日目です。昨日は『NonNullable<T>と実例 assertExists()』を紹介しました。 Nominal TypingとStructural Typing あらゆるプログラミング言語において、型付けという機構は言語ごとに異なります。このアドベントカレンダーで紹介している型はいずれもTypeScriptのためのもので、これらが他の言語、Java, Scala, Rust…などですべて互換な知識かというと、まったくそんなことはありません。包括的な概念としては似通う部分も多々ありますが、言語ごとに「この言語はどういった型付けの機構を有しているのか」を理解するのが好ましいです。それは言語ごとに処理系が異なり、用途が異なり、

    Branded Typesを導入してみる / TypeScript一人カレンダー
    dorapon2000
    dorapon2000 2023/09/01
    “このように、Brand<K, T>型を宣言しておくことで、number型でありながら異なる構造をとるように__brandというダミープロパティを定義し、Tによって型が一致しないようにして”
  • GitHub ActionsのSelf-hosted Runnerで複数設定のRunnerを使う - Mobile Factory Tech Blog

    駅メモ!開発基盤チームの id:xztaityozx です!今回は CI/CD のお話です。 現在、駅メモ!チームでは Jenkins を使った CI/CD が構築されています。今回ここに GitHub Actions を加えることとなりました。チームでは段階的に GitHub Actions に移行していく計画です。 GitHub Actions を採用した理由としては、技術スタックの変化による需要の増加と Jenkins で抱えていた問題を解決するためという 2 点が主です。この記事では後者について書こうと思います。 現在の Jenkins 構成で困っていたこと 現在の Jenkins 構成では、起動できるサーバのスペックを柔軟に切り替えたり、追加できるようにしたいというリクエストに答えづらい状態でした。仕組み上の制約などから、追加の作業はそこそこ時間のかかる作業となっていたからです。

    GitHub ActionsのSelf-hosted Runnerで複数設定のRunnerを使う - Mobile Factory Tech Blog
    dorapon2000
    dorapon2000 2023/09/01
    “どうやらこのモジュール、1 つの GitHub App に様々な設定の Runner を複数個構築できるというもののようです。”