このページ
このガイドの背後にあるSkill: Viktor - Software Architect AI Skill。すでに運用しているもの、変更できないもの、すでに決めたことを保持するため、選択肢は何もない場所ではなく、実際のシステムに基づいて絞り込まれて届きます - $19、1回の支払いで、永久にあなたのものです。
Viktor Skillを見る →アーキテクチャとは、実行できないと決めたことの一覧です。モデルが伝えられるのは、設計ができることだけです。これは不誠実なのではありません。学習した資料は、機能したシステムについて、それを書く価値がある規模で運用した人々によって書かれています。そして、今も問題なく動いている退屈なモノリスについて記事を書く人はいません。だから返ってくるのは、常にグリーンフィールドで、常に最大規模です。あなたが想像したピーク時のシステムを、何もない場所に構築したものであり、差し押さえられた資産は省かれています。
1つの原因から生じる2つの失敗
役に立たないアーキテクチャの回答は、ほとんどすべて同じことに行き着きます。コーパスが、興味深い問題について、それを経験した人々によって書かれているのです。
何もない場所で設計します。 現実のアーキテクチャがグリーンフィールドであることは、ほとんどありません。実在するシステムに対する変更であり、実在する人員が担当し、触れることを許されていないものと接続されています。設計を求めると、そのどれも存在しない前提のものが返ってきます。そして、この分野で最も高くつく失敗は、間違ったデータベースを選ぶことではなく、制約が存在しないかのように設計することです。
ピークを前提に設計します。 イベント駆動、ドメインごとのサービス、すべてのコンポーネント間にキュー、基盤はKubernetes。これらは間違いではありません。それらを必要とした組織の記録であり、必要とせずにうまくやっていけた企業の記録は存在しません。だから文献の平均は、あなたの会社より大きな会社向けのアーキテクチャになります。
どちらも修正可能ですが、設計についてより良い質問をするだけでは、どちらも修正できません。モデルが前提としてよいことを変えることで修正します。
ボックスは簡単な部分です
アーキテクチャを求めると、ボックスと矢印が返ってきます。ボックスはほとんど無料です。明確な1つのことを行うサービスは解決済みの問題であり、誰でもその姿を思い描けます。
難しさはすべて矢印にあります。 2つのボックスの間にある矢印は、その2つが通信できるという主張ですが、その主張が図によって正当化されることはありません。呼び出しは同期的ですか。そうなら、呼び出し元は待っている200ミリ秒の間に何をするのでしょうか。失敗したらどうなりますか - リトライするのですか。そうなら、その操作は冪等ですか。それともリトライによってカードに2回請求されますか。タイムアウトはどのくらいで、その後はどうなりますか。順序は重要ですか。何かがそれを保証しますか。この矢印が1時間停止したら、何がまだ動き、何が動かなくなるのでしょうか。
A diagram answers none of that, and a model will generate a beautiful one anyway, because diagrams are a genre and it has read thousands. Interrogate the arrows, and the design usually changes. Frequently it collapses back into fewer boxes, which is the correct outcome.
What it is genuinely good at
図はそのどれにも答えない。それでもモデルは美しい図を生成する。図は一つのジャンルであり、モデルは何千もの図を読んでいるからだ。矢印を問いただせば、設計はたいてい変わる。多くの場合、箱の数が減る形に戻るが、それが正しい結果だ。
本当に得意なこと
障害の可能性を洗い出す。「これがうまくいかない方法はすべて何か」は、膨大な量の事後検証、インシデント報告、苦労して得られたコメントスレッドを横断する想起の問題であり、まさにこれらのツールが得意とすることだ。本番環境で8か月後に発見するはずだった障害モードを表面化してくれる。
できないのは、それらに順位を付けることだ。順位付けには、トラフィック、チーム、許容度、予算が必要だからだ。したがって役割分担は明確だ。一覧を生成するのはモデル、順序を決めるのはあなた。順序付けまでできると言う人は、何かを売り込んでいる。
設計空間を最も制限する制約は何か、そして率直にどれが
私の回答のいくつかは、測定されたものというより願望のように聞こえる。
$19 · 1回払い
分離しているのは何か?名前を挙げてください。2つのボックスを統合するのも有効な回答です
それが当てはまるなら、ぜひ聞かせてほしい。
プロンプト5 - 障害の可能性を洗い出し、その後で優先順位を付ける
プロンプト6 - 実際にどうやってそこへ到達するか
グリーンフィールド設計はこれを飛ばすが、実際のコストが存在するのはここだ。移行経路のない目標アーキテクチャは、願望にすぎない。
それが知り得ないことを断言する二つの事柄
パフォーマンスの数値。設計が1秒あたり何リクエスト処理できるか、レイテンシーがどの程度になるかを尋ねると、数値を出してくる。実際には何も分かっていない。その数値は、ハードウェア、データの形状、クエリパターン、アクセス分布に依存し、得る唯一の方法は計測することだ。提示されたスループット、レイテンシー、容量の数値はすべて仮置きとして扱い、その数値があるべき場所に負荷テストを置くこと。
現在のバージョン、制限、料金。サービスクォータ、マネージドデータベースの制限、インスタンスサイズ、クラウドプロバイダーの料金、どのバージョンで何が非推奨になったか。これらはすべて変わり、モデルは最後に見た情報をもとに回答する。これらはすべて、決定する当日にプロバイダー自身の最新ドキュメントから確認すること。古いクォータを前提に構築したアーキテクチャは、最悪のタイミングで、導入から1年後に失敗する設計だからだ。
どこで失敗するか
| 障害 | 何が起きるか | その対処法 |
|---|---|---|
| デフォルトではグリーンフィールド | 空のフィールド、レガシーなし、触れることを禁じられたものもないと仮定した設計 | 何かを要求する前に、恥ずかしい部分も含め、現在稼働しているものを説明する |
| ピーク時を前提に設計する | その興味深い問題に直面し、それについて書いた企業のアーキテクチャ | 同じシステムを負荷10分の1で要求し、その後比較する |
| 機能だけで、差し押さえはない | あなたが与えたもので設計が可能にすること。ただし、何を諦めたかは語られないまま | まず差し押さえリストを要求し、何もない選択肢は疑わしいものとして扱う |
| 美しい図 | 難しい問いがすべて矢印の中にあり、そのどれにも答えがないボックスと矢印 | 矢印を一つひとつ問いただす。2つのボックスを統合することも有効な結果です |
| 捏造されたパフォーマンス | 裏付けのない、1秒あたりのリクエスト数やレイテンシーの数値 | あらゆる数値を負荷テスト用のプレースホルダーとして扱う |
| 古いプラットフォーム情報 | 最後に確認した時点のクォータ、制限、インスタンスタイプ、価格 | その時点のプロバイダーのドキュメントを、項目ごとに提示する |
| 移行経路がない | システムが稼働中のままそこへ到達する方法を考慮していない目標設計 | 独立してリリース可能なステップを要求し、それぞれの時点で停止できるようにする |
| 尋ねれば優先順位を付けます | どの失敗が最も重要か尋ねると、あなたの数字を一切使わずに答えます | 空間を生成させます。順序付けはあなたが行います |
Viktor Skillはどうやってインストールしますか?
ダウンロードは、アーカイブのルートにSKILL.mdがあるZIPであり、入れ子になったフォルダー内にはありません。このフォルダー構成が、アップロードに失敗する一般的な原因です。Claudeデスクトップアプリでカスタマイズ → Skillsを開き、ZIPをアップロードしてオンに切り替えます。
Skillsには、設定 → 機能でコード実行を有効にする必要があります。Anthropicのヘルプセンターでは現在、SkillsをFree、Pro、Max、Team、Enterpriseで利用できると記載していますが、AcademyのチュートリアルではPro、Max、Team、Enterpriseと記載されています。そのため無料プランを利用している場合は、どちらかのページの記載を鵜呑みにせず、設定 → 機能で自分のアカウントを確認してください。詳しい手順はSkillのインストールガイドにあります。
ChatGPTやGeminiでは、アップロード手順はありません:開いて SKILL.md、内容をコピーしてカスタム指示に貼り付けます。自動トリガー機能は失われますが、手法はそのまま使えます。
これは誰向けですか?
思考のパートナーとして反論してくれる相手を求めるアーキテクトやスタッフエンジニア、自分の給与等級を超える設計判断を下すテックリード、そして実際に着手する前にどう構築するかを決める創業者向けです。Claude、ChatGPT、または任意のAIチャットで動作します。
エンジニアリングの各ロールは、それぞれ独立したSkillsに分かれており、各19ドルの買い切りダウンロードです:
- Dante - テックリード - チームが実行しなければならない、1段階下の同じ意思決定
- Oleg - データベースエンジニア - 本当に取り消せない選択の大半が存在する場所
- Rami - DevOpsエンジニア - あらゆる移行ステップが依存する、デプロイとロールバックの筋書き
- Mira - QAエンジニア - 失敗の領域を、実際にテストする対象へと変える
- Tariq - クラウド移行エンジニア - 設計が繰り返し衝突するプラットフォーム上の制約
- Kael - サイバーセキュリティアナリスト - 不運ではなく、誰かの意図によって生じる障害パターン
より幅広いセットは、ソフトウェア開発者Skillとソフトウェア&IT Skillです。
要約:
アーキテクチャとは、できないようにすると選択した事柄のリストです。そしてモデルは常に、能力しか説明しません。なぜなら、そのコーパスは、興味深く出版する価値のある問題に取り組んだ人々によって書かれているからです。何かを提案する前に、何がすでに稼働し、何を変更できず、誰が構築しているのかを伝えてください。可能にすることより先に、何をできなくするのかを尋ね、欠点のない選択肢は推奨ではなく警告とみなしてください。ボックスは無視して、すべての矢印を問いただしてください。失敗、順序付け、冪等性、影響範囲が存在するのはそこだからです。そして、2つのボックスを再び1つにまとめることも厭わないでください。負荷の10分の1を想定して同じシステムを設計し、どの複雑さが不可欠かを見極めてください。失敗の可能性をすべて生成させ、順位付けは自分で行ってください。そして移行経路を、途中で止められる段階に分けて示させてください。そこへ至る道筋のない目標設計は、願望にすぎないからです。セッション間で保持される実際の制約や過去の意思決定に対応するViktor - ソフトウェアアーキテクトAI Skill(19ドル)。Claude、ChatGPT、その他あらゆるAIチャットで利用でき、30日間の返金保証付きです。
Viktor - ソフトウェアアーキテクトAI Skill
何かを提案する前に、まず何がすでに稼働しているかを尋ねます。可能にすることではなく、設計によって何ができなくなるかを起点にし、ボックスを描くのではなく矢印を問いただし、途中で止められる段階に分けて移行経路を示します。サブスクリプション不要。永久にあなたのものです。
KissMySkillsは、Claude、ChatGPT、その他あらゆるAIチャット向けの2,000以上のAISkill、80以上のpromptパック、75以上のagent、および無料ツールを扱うマーケットプレイスです。