記事

Jestのスナップショットテストのデメリット

アプリケーション

Jestのスナップショットテストを避けたほうが良いかもしれないデメリットについて雑メモ。 デメリット テストが脆くなってしまう スナップショットテストはUIの変更を簡単に検知することができる反面、テストの関心事ではないような変更(ex. class名のリネームだけで見た目は変わらない変更)であってもテストがFailしてしまう。 アサーションの期待が不明確 スナップショットテストではtoMatchS...

JavaScript jest

Web APIテスト技法

アプリケーション

Web APIテスト技法を読んだ。 API設計のテストで5w1hを使って問いを考える話があったが、具体例が分かりやすく、示唆に富んでいた 現場のテスタビリティについて理解するフレームワークとして挙げられていた10個のPモデルが良かった。テスト戦略や計画を考える前提の整理に役立ちそう テスト計画の整備と文書化について書かれているテスト計画のフォーマット例も考えやすいシンプルなもので良かった。戦略と...

API

集合について

数学

概要 集合の基本についてまとめる。 集合とは 集合論における集合とは、特定条件を満たす要素の集まりのこと。 集合に含まれる要素のことを元という。(当記事内では要素と表記する。) ソフトウェアエンジニアと集合 ソフトウェアエンジニアにとって集合は、データ構造やアルゴリズムの基礎概念である。配列やマップ、グラフ理論や組み合わせ理論など集合の概念が関係している。 RDBにおいては、集合論が非常に重要な概...

離散数学 集合

健康のために行っている習慣について

ヘルスケア

自分が健康のために行っている習慣について書き留めておく。半分くらいはポエム。そのうち将来振り返ることがあるかもしれないので、いつかの改善のために。 自分が健康のために行っている習慣について書き留めておく。半分くらいはポエム。そのうち将来振り返ることがあるかもしれないので、いつかの改善のために。 免責 この記事で書いていることの正しさ(≒エビデンスがある)については保証できません。自分が調べたこと、...

健康

大規模データ管理 ―エンタープライズアーキテクチャのベストプラクティス

システムアーキテクチャ

大規模データ管理 ―エンタープライズアーキテクチャのベストプラクティスを読んだ。 データ管理そのものというよりもアーキテクチャの話に興味があって手にとってみた。 データ管理を中央集権的に行うとデータ管理のトレンドの変化について行くことが難しくなるので、そのためにスケーラブルなアーキテクチャにしていきましょうという話。 データウェアハウスはサイロ化しがちなので避けたほうが良いというのは学びがあった。...

アーキテクチャ

マイクロサービスアーキテクチャ 第2版

システムアーキテクチャ

マイクロサービスアーキテクチャ 第2版 を読んだ。 マイクロサービスに取り組んでいる、マイクロサービスを検討しているなら読んでおきたい一冊。 分散システムに求められるアーキテクチャの特性(非機能要件)についてもよく触れられており、マイクロサービスオンリーな観点に囚われず読んでも良さそう。 マイクロサービスの概念についてサッと確認したい場合には第一章がよくまとまっているので参照したい。 一部モノリス...

モノリス マイクロサービス

GoReleaserを使ってDocker Imageをbuild&pushする

アプリケーション

以前、GoReleaserを使ってのGoのアプリケーションを配布するというタイトルの記事でGoReleaserを使ったバイナリ配布の方法について書いたが、Dockerhubへのイメージプッシュもやってみたのでまとめておく。 ソースコードの全体像はbmf-san/gondolaを参照。 .goreleaser.yamlを設定 ockers: - image_templates: - ...

Golang GitHub Actions

モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイド

システムアーキテクチャ

モノリスからマイクロサービスへ ―モノリスを進化させる実践移行ガイドを読んだ。 モノリスからマイクロサービスへの移行アプローチについて書かれている。 最もページが割かれている第4章はマイクロサービス化への1番の砦と思われるデータベースの分割について書かれている。時間がない、振り返りだけしたいならこの章だけは目を通しておきたい。 この本はタイトル通りアプローチに特化している内容であるので、マイクロサ...

モノリス モジュラモノリス マイクロサービス

Bitemporal Data Modelについて

データベース

概要 Bitemporal Data Modelについて調べたことをまとめる。 Bitemporal Data Modelとは Temporal Data Modelsという分野で扱われるデータモデルの1つで、時間軸を取り扱うデータモデルのうち、2つの時間軸を持つデータモデルのことを指す。 ノンテンポラル(Non-Temporal) 現在の状態のみを保持する 過去の履歴や将来の変更に関する情報は...

Bi-Temporal Uni-Temporal Non-Temporal 履歴 Temporal Data Model

セキュアで信頼性のあるシステム構築 ―Google SREが考える安全なシステムの設計、実装、保守

システムアーキテクチャ

セキュアで信頼性のあるシステム構築 ―Google SREが考える安全なシステムの設計、実装、保守を読んだ。 前半部分に興味の中心があったのでメモしておく。 セキュリティと信頼性は創発特性、単純に実装されるものではなく、デプロイや運用における複数の要因(仕組みやテスト、検証状態などから)から創発される特性である。 プロジェクトの初期段階からセキュリティと信頼性について考えておいたほうがよい。プロ...

セキュリティ 信頼性