アンチパターン

アーキテクチャ アンチパターンのまとめ

ソフトウェア アーキテクチャ アンチパターン(Software Architecture Antipattern)をまとめた. 基本的に下記の本を邦訳した内容になっている. https://www.amazon.com/AntiPatterns-Refactoring-Software-Architectures-Projects/dp/0471197130 この本自…

【アーキテクチャ アンチパターン】The Grand Old Duke of York

どんな問題が起こる? 開発者には2種類いる 抽象化する人 詳細を気にせずソフト設計を議論できる 定義や説明をできる 具体化する人(実装する人) 概念を理解するときにソースコードを必要とする 抽象化する人は複雑さをどう管理するかが鍵であることを知っ…

【アーキテクチャ アンチパターン】Reinvent The Wheel

概要 ソフトウェアシステムはスクラッチから作られることが多い たとえ機能的に類似するシステムが過去あったとしても外部と独立して作られることが多い. これらのシステムはgreenfield systemと呼ばれる greenfield systemの特徴 以下を欠いたstovepipe sy…

【アーキテクチャ アンチパターン】Swiss Army Knife

どんな問題? クラスが複雑すぎるインターフェースをもつこと 設計者がクラスの利用ニーズに対して,すべて満たそうとした結果,下記を失ってしまった状態 明快な抽象化 クラスの目的 Swiss Army Knivesは,商用ソフトのインターフェースに多い. ベンダーが…

【アーキテクチャ アンチパターン】Design By Committee

どんな問題? 背景 ソフト設計は会議で作られると言っても過言ではない. 変数が多いため,すべての仕様を明らかにして比較するのは不可能 もし設計ができたとしてもテストはできない 症状と問題 設計書が下記の特徴を備えている 複雑 大規模 読みにくい 一…

【アーキテクチャ アンチパターン】Warm Bodies

背景 IT業界は常に人不足. ソフトウェアの構成を改善するより,人員を見直すことのほうが大事なこともある. 後者が前者のボトルネックになりうる. どんな問題? 大規模システム開発プロジェクトは,いろんな分野で発生する. 100~400人が従事するのも普通…

【アーキテクチャ アンチパターン】Architecture By Implication

どんな問題? アーキテクチャ仕様の不足という一言でまとめられる. 具体的には以下の不足項目がある ソフトアーキテクチャと仕様 言語,ライブラリ,コーディング規約,メモリ管理など ハードアーキテクチャ 通信アーキテクチャ ネットワークプロトコル,デ…

【アーキテクチャ アンチパターン】Wolf Ticket

由来 Wolf Ticketはスラングから来ている. ロックコンサートの入場のための非公式なパスという意味. どんな問題? Wolf Ticketとは,デファクトスタンダード(de facto standards)にまつわる問題 「非公式だが,人気があり市場機会も多いため,事実上スタ…

【アーキテクチャ アンチパターン】Vendor lock-in

どんな問題? ベンダーロックイン(英: vendor lock-in)とは、特定ベンダー(メーカー)の独自技術に大きく依存した製品、サービス、システム等を採用した際に、他ベンダーの提供する同種の製品、サービス、システム等への乗り換えが困難になる現象のこと。…

【アーキテクチャ アンチパターン】Cover Your Assets

どんな問題? 設計書駆動なソフト開発プロセスでは,その端緒となる設計書の出来がよくないことがある. たとえば,設計書の内容が膨大になったり,そのせいで内容の全体理解が難しくなることがある. なぜこんなことが起きるかというと,この設計書を書く人…

【アーキテクチャ アンチパターン】Stovepipe system

このアンチパターンは,stovepipe-enterpriseの単一システム版である. どんな問題が起きる? アーキテクチャのドキュメントとソフトウェアの実装の乖離が起きる. アーキテクチャがシステムの統合についてどうすればよいかわからなくなる. プロジェクトの…

【アーキテクチャ アンチパターン】Jumble

どんな問題が起こる? 垂直設計の要素と水平設計の要素が混ざると,不安定なアーキテクチャになりやすい. 垂直設計の要素とは, ある機能(authentificationやauditingなど)に着目したときの横断的な要素 個々のアプリ・特定のソフトウェア実装に依存する …

【アーキテクチャ アンチパターン】Stovepipe Enterprise

Stovepipe ストーブの煙突. その場しのぎのアーキテクチャで構成されたソフトウェアシステムを表す. こういったシステムは往々にして保守しにくい. 概要 エンタープライズシステムはそのシステムの階層ごとに設計され,それぞれ作られる. 各階層は以下の…

【アーキテクチャ アンチパターン】Autogenerated Stovepipe

Autogenerated 自動生成された Stovepipe ストーブの煙突. その場しのぎのアーキテクチャで構成されたソフトウェアシステムを表す. こういったシステムは往々にして保守しにくい. したがって autogenerated stovepipeとは, その場しのぎで次々に生成され…