アプリケーション

セキュア・バイ・デザイン: 安全なソフトウェア設計

アプリケーション

セキュア・バイ・デザイン: 安全なソフトウェア設計を読んだ。 ソフトウェア設計からセキュリティを向上させていくアプローチについて書かれた本。 特徴的なのは、設計のアプローチとしてDDDを中心に据えている点。 セキュリティはドメインのモデリングを誤ると生じるリスクの一つでもあると思うが、その重要性が語られている。 具体的な脆弱性に対する対応方法については多くは語られていない。 ...

セキュリティ 設計 DDD

API設計について学べる本

アプリケーション

最近API設計について学び直そうと思って数冊ピックアップして読書したので、読んだ本をリストアップしておく。 API設計の本リスト おすすめの読書順でリストアップする。 Web API: The Good Parts 一般的なAPIの設計における基本的な考え方を学ぶことができる API設計本におけるリーダブルコードのような教科書的立ち位置の本(だと感じている) Web APIの設計 Web A...

API 設計

APIデザイン・パターン

アプリケーション

APIデザイン・パターンを読んだ。  APIの設計原則に始まり、豊富なAPIのデザイン・パターンを紹介している。 リソース指向 単一のリソースに対して、標準メソッド(ex, Create/Get/List/Delete/Update)をかけ合わせて処理を決める RPC指向 メソッドを指定して特定の手続きを呼び出して処理を決める API設計を良くするため観点 実行可能であること 表現力があ...

API 設計

Web APIの設計

アプリケーション

Web APIの設計を読んだ。 API設計の視点を与えてくれる本。 API設計のインターフェースだけでなく、もっと手前の入り口から書かれている。 API設計は、仕組みではなくユーザーが何をできるかに焦点を当てて設計すると良い。仕組みに焦点を当てると複雑化する APIのゴールを洗いだすアプローチとしてゴールキャンパスというフレームワークの解説があったが、良い方法だと思った APIバージョニングのパ...

API OpenAPI 設計

契約テストとPactについて

アプリケーション

概要 契約テストとPactについて調べたことをまとめる。 契約テスト(Contract Testing)とは コンシューマ(サービスを呼び出す側)とプロバイダー(サービスを提供する側)の間の動作をテストするテスト手法のことである。 コンシューマーとプロバイダー間での合意を契約として記述し、その契約に基づいてテストを行う。 コンシューマーが契約を発行し、プロバイダーはその契約に従ってテストを行う形式...

契約テスト Pact プロデューサー駆動契約テスト コンシューマー駆動契約テスト

TypeScriptの基本を学び直す

アプリケーション

概要 TypeScriptの基本について学び直す。 JavaScriptの復習 変数のスコープ(scope) グローバルスコープ windowオブジェクトのプロパティとして定義されるスコープ。 const a = "Hello"; console.log(window.a); // Hello ローカルスコープ 関数スコープ 関数内で定義された変数はその関数内でのみ有効。 f...

TypeScript

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

アプリケーション

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

JavaScript jest