Sort by - linked count
-
RESTRepresentational State Transfer #API Architecture HTTPを基礎とするアーキテクチャ上の制約、定義 Architectural Styles and the Design of Network-based Software ArchitecturesにRESTfulとみなされるための定義が書かれている 第一にサービス提供者と利用者のやり取りがモデル化されていること、が定義となる
-
逆コンウェイ戦略#Software Design #Team Organization コンウェイの法則に対して、開発チームの組織構造を変更して、望ましいソフトウェア設計を目指すという考え方 マイクロサービスが注目されるようになった2015年頃にコンウェイの法則が再評価され生まれた
-
市谷 聡啓
-
技術的負債Technical Debt
-
Eric Evans
-
TypeScript#Programming #JavaScript
-
E2EテストEnd to End Testing #Testing 組織のドメイン外にある外部システムを除いて実際に全てのサービスを動作させUIレベルで行うテスト 一般的な形式として1つまたは複数のユーザアクションに基づくシナリオテストがあり、テストコストが増えすぎないよう主要なシナリオにフォーカスして行う
-
APIゲートウェイ#API Architecture #Network 外部トラフィックに対してリバースプロキシ・ロードバランシングが持つようなネットワークのルーティング・セキュリティと可用性の向上に加え、以下のような機能横断的な要件を扱う役割 認証 認可 レートリミット リトライ サーキットブレーカー etc.
-
Go#Programming
-
ユビキタス言語#Documentation #Software Design DDDにおいて、ドメインエキスパートと開発者、またその周辺のステークホルダーが共有する言語 以下、原著から抽出 モデルを言語の骨格として使用すること。チーム内のすべてのコミュニケーションとコードにおいて、その言語を厳格に用いることを、チームに約束させること。図やドキュメント、そして何より会話の中では同一の言語を使用すること。 ドメインエキスパートは、ドメインについての理解を伝えるには使いにくかったり不適切だったりする用語や構造に異議を唱えるべきであり、開発者は、設計を妨害することになるあいまいさや不整合に目を光らせるべきである。 Eric Evans | エリック・エヴァンスのドメイン駆動設計 | P26-27 また同一の単語でも異なるユビキタス言語として定義するケースもあり、境界づけられたコンテキストを明示にした上で、どのコンテキストで用いる言語なのかを決定する
-
カナリアリリースCanary Release #Continuous Delivery リリース時に旧環境と新環境を同時に稼働させ、一部のユーザーに絞って新環境を限定公開し徐々に移行していくことでパフォーマンス劣化等の問題がないかをテストするリリース手法 ブルーグリーン戦略との違いはトラフィックを徐々に切り替える点 Canary Release
-
プロンプトエンジニアリングLLMに対して入力(プロンプト)を調整し必要なタスクを実行するようにモデルを条件付けする取り組み
-
Robert C. Martin
-
モニタリング既知の障害状態に対してメトリクスを設定し、アラートを飛ばすようなリアクティブ(反応的)なシステム
-
ユーザーストーリー#Agile Whoとして、Whatをしたい。なぜならWhyだからだ のように Who What Why を含む形で書かれる、ユーザーにとっての価値を説明する文 INVESTであるストーリーが良いとされる
-
JSON#Programming
-
Kubernetes/Nodes
-
Kubernetes/カスタムリソースCustomResourceDefinitionによって追加できるカスタマイズ可能なリソース
-
オブジェクト指向プログラミングObject Oriented Programming #Software Design #Programming
-
TCPTransmission Control Protocol #Network L4にあたる通信プロトコル エンドデバイス間でコネクションを確立することで信頼性を向上させる データ送信は複数のパケットをシーケンス番号とともに送信し、パケットロスがないよう再送制御がされる
-
Gherkin#Testing #Documentation Chris Mattsによって考えられた、以下のフォーマットでテストシナリオを記述する記法 Scenario: Breaker joins a game Given the Maker has started a game with the word "silky" When the Breaker joins the Maker's game Then the Breaker must guess a word with 5 characters https://cucumber.io/docs/gherkin/reference
-
サーキットブレーカー#Reliability アプリケーションが失敗する可能性のある操作を繰り返し試行するのを防ぐ信頼性パターン サーキット ブレーカー パターン - Azure Architecture Center
-
風間 裕也
-
和智 右桂
-
ブルーグリーン戦略#Continuous Delivery リリース時に旧環境と新環境を同時に稼働させ、リバースプロキシ/ロードバランシング/APIゲートウェイ相当のポイントで旧環境から新環境へ完全に切り替えるリリース手法 旧環境をブルー、新環境をグリーンとする
-
自己組織化#Team Organization チームまたは個人が外部に依存せず自律して意思決定をし行動できる度合い
-
リレーショナルデータベース#Data Store
-
スプリント#Agile 主にスクラムにおいて扱われる、タイムボックス化されたある期間のこと 1~2週間が多く、長くても1ヶ月にするにする
-
ストリームアラインドチーム#Continuous Delivery #Team Organization Team Topologiesにおける4つのチームタイプの中で中心となるチーム ビジネス価値を提供するフロー(ストリーム)に従って、クロスファンクショナルチームを形成する 要求の探索から本番環境の運用までの全ての能力を備え、他のチームを待たずにデリバリーができる
-
ユーザーストーリーマッピング#Agile #Documentation ユーザーストーリーを洗い出すためのプラクティス 優先度付けや段階的なリリースのスコープ整理を行う Blog / Agile Studio
-
プラットフォームチーム#Team Organization Team Topologiesにて紹介される4つのチームタイプの内の1つ 機能横断的なインフラやツール、ライブラリ等をを実装しストリームアラインドチームにAPIを提供する
-
フィーチャーフラグ#Continuous Delivery ソフトウェアの機能のON/OFFを管理するフラグ、機能フラグと呼ばれることもある 簡易的な例だと環境変数を用いて管理される
-
リバースプロキシ#API Architecture #Network 外部トラフィックに対して単一のサーバーへルーティングを行い、サーバーの保護や負荷分散を行う役割
-
RPCRemote Procedure Call #Network #API Architecture リモート上のリクエスト発行をプログラミング言語の関数呼び出しのように利用できるよう抽象化したもの。 ただし実際に関数呼び出しと同等に利用できるわけではなく、ネットワーク上の様々な不測の事態を考慮する必要がある。
-
サイドカー#Cloud Native 1つのPod内で複数のコンテナを定義し、メインアプリケーションコンテナとそれを拡張するSidecarコンテナのような関係性を持たせるパターン
-
DDD/集約#Software Design DDDにおいて不変条件を適用するエンティティや値オブジェクトのようなオブジェクトのグループ単位 原文は以下 エンティティと値オブジェクトを集約の中にまとめ、各集約の周囲に境界を定義すること。各集約に対してルートとなるエンティティを1つ選び、境界の内部に存在するオブジェクトへのアクセスはそのルートを経由して制御すること。外部のオブジェクトが参照を保持できるのは、ルートのみとすること。内部のメンバに対する一時的な参照を渡してよいのは、単一の操作で使用する時だけだ。ルートがアクセスを制御するので、内部が知らないうちに変更されることはなくなる。この取り決めにより、どんな状態変化においても、集約内にあるオブジェクトと集約全体に対して、不変条件をすべて強制することが現実的になる。 Eric Evans | エリック・エヴァンスのドメイン駆動設計 | P127
-
DDD/エンティティ#Software Design DDDにおいて同一性を持つオブジェクトの呼び名 原文は以下 オブジェクトの中には、主要な定義が属性によってなされないものもある。そういうオブジェクトは同一性のつながりを表現するのであり、その同一性は、時間が経っても、異なるかたちで表現されても変わらない。そういうオブジェクトは属性が異なっていても、他のオブジェクトと一致しなければならないことがある。また、あるオブジェクトは、同じ属性を持っていたとしても、他のオブジェクトと区別しなければならない。同一性を取り違えるとデータの破損につながりかねない。 Eric Evans | エリック・エヴァンスのドメイン駆動設計 | P89
-
認知負荷個人やチームの認知容量に対する負荷のこと 認知負荷は3つに分類することができる 課題内在性認知負荷 問題領域のタスクの難易度に関する負荷、研修・技術選定・ペアプログラミング等で解消する 課題外在性認知負荷 タスクを実施する環境に関する負荷、CIによる自動化等で解消する 学習関連負荷 知識の構築に関する負荷、学習によって増やすべき負荷とされる 情報過多にご用心!生産性の低下を招く「認知的過負荷」への対処法 ── 海の向こうからオピニオン その70 (1/2) - チームの教科書|アトラシアン株式会社
-
Markdown#Documentation
-
SLOService level objectives #Reliability サービスレベル目標の略。 サービスレベル指標(Service level indicators = SLI)に対してターゲットとする値または範囲を目標とする。 サービスレベル指標に用いられるのは主に以下のようなもの 可用性 リクエストレイテンシ エラー率 システムスループット サービスレベルアグリーメント(Service level agreement = SLA)は、SLOを守るまたは守れないケースに関する規定をユーザーと同意するもの。 SLO, SLI, SLAは定義が曖昧になりやすいので注意が必要
-
Envoy
-
Swarming#Agile #Team Organization 重要な領域または主要な活動に焦点を置いてチームのエネルギーを集中させる。バックログに課題を積むのは最後の手段である。 障害にチームメンバー複数人で集中して対処するイメージを日々のスプリントにも適用していく。
-
Agile Testing#Agile #DevOps #Testing
-
Kubernetes/CustomResourceDefinition
-
Kubernetes/Probe#Continuous Delivery #Kubernetes Pod上で定期的に実行されるコンテナの診断、ヘルスチェック チェックの方法として以下の4つがある gRPC HTTP TCP Socket Exec 任意のコマンドを実行し、成功の返り値0を期待する Probeには戦略を示すようないくつかの種類が存在する Podのライフサイクル | Kubernetes
-
HTTPSHyperText Transfer Protocol Secure #Network #Security HTTPをTLSによって暗号化した通信
-
RBACRole-based access control #Security #Authorization ロールごとに許可を定義する認可モデル これによりユーザーの部署異動等の際に即座に権限を変更できる
-
kube-scheduler
-
レートリミット#Security #API Architecture 以下のような目的でAPIの使用回数を制限する、制限を超過した時はHTTPの場合一般に429エラーを返す処理 STRIDEにあるようなDenial of Service(サービス拒否)からアプリケーションを保護する カスケード障害の可能性を制限する リソースの使用量を測定し従量課金に利用できる レートリミットの実装アルゴリズムには以下のようなものがある 固定ウインドウ(Fixed window) 固定期間内の制限 スライディングウインドウ(Sliding window) 直近の期間内の制限 トークンバケット方式(Token bucket) 総リクエスト数(トークンのバケツ)を定義しリクエストごとにトークンが利用される。バケツは定期的に充填される リーキーバケット方式(Leaky bucket) リクエストが処理される速度は固定で、バケツから溢れ出るリクエストを漏れ(リーキー)として扱う APIゲートウェイを利用している場合、ゲートウェイに配置するとよい
-
ユニットテスト#Testing