慣性聚合 関心のあるブログ、ニュース、テクノロジーを効率的に追跡
原文を読む 慣性聚合で開く

おすすめ購読元

Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
博客园 - 叶小钗
MyScale Blog
MyScale Blog
V
Visual Studio Blog
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
I
InfoQ
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
Jina AI
Jina AI
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI
雷峰网
雷峰网
Stack Overflow Blog
Stack Overflow Blog
博客园 - Franky

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python)
システムが死にたくないというシステムの静かな建築構造
Sonia Bobrik · 2026-05-25 · via DEV Community

特定の種類のソフトウェアがある。それはオハイオ州の製造会社で給与計算を実行している。それはあなたが訪れたことがない都市で列車のスケジュールを設定している。それは2011年以来生産されており、3人のCTOと民間投資による買収を生き延びてきた。それをメンテナンスする人々は、古い船乗りが経験した船について話すようにそれについて話す。読んで現実で崩れない変更安全システムの設計図は、私たちがこれらのシステムをあまり学ばないことと、この業界で発表しているものの多くが逆のことであること——緑地プロジェクト、リライト、アンビックス映像の建築的同等物——を思い出させてくれました。退屈なソフトウェアが勝ち、私たちはほとんど理由を問いません.

存続バイアスは私たちが無視し続けている

会議スケジュールをいくつか見て、5年以上古いシステムに関する講演の数を数えてみてください。指がなくなる前にスロットがなくなります。業界は新しさに対して構造的な好みがあり、その好みが静かに若手エンジニアが良いアーキテクチャとは何かと思うものを歪めています。彼らは書かれているシステムから学びますが、それは現在主流で作られているものが不釣り合いに多く、つまり彼らはまだ失敗する時間が経っていないシステムから学んでいるということです。

時間をかけて失敗し、それでも改善しなかったシステムたちは、履歴書上では時代遅れに見える特徴を共有する傾向がある。彼らは古いデータベースを使用している。中間にモノリシスがあり、誰もそれを分割しようとしない。彼らのデプロイメントプロセスには、現在の正統派が受け入れがたいと考えるよりも多くの人間が関与している。そして彼らは動き続けている。面白い問題は、これらのシステムが「現在の基準で『良い』かどうか」ではない。面白い問題は、私たちが忘れっぽいことを彼らが理解しているということだ。

物理的な力としての変化

エンジニアたちは変化を抽象的に考える傾向がある——機能リクエスト、リファクタリング、移行だ。しかし変化はより構造に作用する物理的な力のように振る舞う。それは方向性、大きさ、頻度を持っている。小さく頻繁な変化を吸収するシステムは、稀で大きな変化を吸収するシステムと異なる振る舞いをする。同じように、日常の交通に対応する橋と地震に備える橋は異なる振る舞いをする。すべての変化を同等と扱うことで、チームは数百回の小さなデプロイを順調に処理していたアーキテクチャが単一の大きな移行で壊れるのを驚くことになる。

この枠組みは、その主題に関する最も役立つ長文書の中で何度も取り上げられます。IEEE Computer Societyが出版したシリーズの回復性工学は同じ観察を繰り返し言及しています:複雑なシステムの失敗モードはほとんどの場合、構成要素に関することではありません。それは構成要素間の結合に関することです。そして、結合は正に何人かが小さな修正をリリースするたびに、静かに、蓄積的に変化するものです。橋の類比は比喩ではありません。それは実際のメカニズムです.

古いコードベースが正しく理解していたこと

数年間、地域別の決済機関の財務決済処理システムを開発していました。その核心部分は私が運転免許を取る前に書かれたものです。最初の6ヶ月は触れるだけで恐ろしく、その後は毎月明確になるものでした。そのコードベースから学んだパターンは今でも私に残っており、それ以来私は遭遇したあらゆる長期間稼働しているシステムでそれを見ることがあります。

  • 誰も足を踏み入れることのない境界。 linterやコードレビューで強制される境界線ではない。境界線は、それを越えると異なるチームが異なる建物で所有する異なるデータベースに書き込む必要があるという事実によって強制される。物理的な分離は誠実なアーキテクチャを生み出す
  • 証言のように読むログ。 あらゆる重要な行動は、何をしようとしていたか、どのような入力を受け取っていたか、そして何を決定したかを記録しました。デバッグのために——責任のために。何か問題が6週間後に発生した時、あなたは結果だけでなく、その推論のプロセスを再構築することができました。
  • 適切なコードに対する病的な恐怖。 上級エンジニアは、正しく、十分にテストされ、より高速なプルリクエストを定期的に却下していました。その理由は、2029年の午前2時にデバッグする人間が理解できないからです。彼らはほぼ常に正しいでした。
  • 意図的に数ヶ月かかるマイグレーション。 数週間にわたって二重記述、さらに数週間にわたって二重読み取り、古いパスが最終的に削除されるまでの長い検証の尾。移行は退屈だった。それが要点だった。
  • 共有可変状態へのアレルギー。 パフォーマンスのせいではない。並行処理の理論のせいでもない。共有可変状態が組織記憶の死因であるからだ。同じ行を触る二つのシステムは、結局のところ、その行が意味することについて意見が合わなくなるだろう.

変化が無料であると装うコスト

現代のツール群は変化を安価に感じさせるようになった。コンテナは数秒で起動する。機能フラグは何もしないコードをリリースし、後で有効にできる。インフラストラクチャはコードとして意味することで、単一のコマンドで環境を再現できる。これらはすべて現実的だが、実際に変化を安価にするものではない。変化をリリースする行為を安価にするだけだ。コストは後で、結果として生じたシステムについて考える人々の認知的負荷として現れる。

アメリカン・コンピューティング・マシン協会は、このに関する長いシリーズの実証的研究を発表しており、彼らのACM Queue アーカイブで集められた運用複雑性の資料は、システムが変化を蓄積する中でチームが実際に何が起こるのかについて書かれている中で最も根拠のある文章の一つです。何度も現れるパターンは、システムがどれか一つの悪い決断のために失敗するというものではなく、それぞれの決断が個別には合理的だったが、その決断の蓄積された重みがどのエンジニア一人でも頭の中に保持できるものを超え、チームはそれでもツールが何も問題ないように感じさせたためにリリースし続けたからです。

実践的な再定義

オリジナルの作者を超えて存続しているシステムから学ぶべきことは一つだけ:文脈なしでこのコードを引き継ぐ人にとって最適化することだ。先週書いたあなたのバージョンでもなく、デザインがまだ新鮮なまま次の四半期にメンテナンスを行うあなたのバージョンでもない。その不慣れな人。2028年に特定の機能がなぜ存在するのか、削除しても安全かどうかを理解しようとしている新しい雇われ人。あなたが選択するたびに、その人は贈り物か税金かとなる。生存可能なシステムは、ほとんどの選択が贈り物だったシステムだ。

これは遺留コードに対するロマンチックな見方ではありません。古いシステムには実際の問題があります——死んだパスを蓄積し、時代遅れの仮定をエンコードし、難しいことをより難しくします。しかし、緑地プロジェクトにはない唯一の利点があるのです。それは現実との接触を生き延びたということです。彼らは間違って、正されて、再び間違って、再び正されて、その修正の残りは、どのアーキテクチャ図でも捉えることができないような知恵のようです。仕事は、ほとんどの場合、その知恵を置き換えることではなく、それを拡張することです。

誰も教えてくれない規則

このコースはありません。認定証書もありません。システムが生き残るために採用できるフレームワークもありません。この学科はより感覚に近いものです——コミットする直前に、あなたが行っている変更がシステムが吸収できるものか、それとも静かに将来の重みとして蓄積されるものかを尋ねる習慣です。この感覚を持つエンジニアは、短期的には同僚よりもリリースが遅くなる傾向がありますが、長期的には劇的に速くなります。なぜなら、彼らは常に、自分が負っている債務に気づかなかったことを支払っているからです。

死にやまないシステムは運が良くない。それは将来を真剣に受け止めた人々によって作られたものであり、その職業はほとんど現在を真剣に受け止めることに報酬を与えるものではない。何か長く続くものを作りたいなら、退屈なソフトウェアを学びなさい。15年間稼働し続けているもののソースコードを読みなさい。何をしないのかに注意しなさい。どのファイルにもどれだけの自制心が埋め込まれているかに注意しなさい。その規律はコードベースにすでに座っており、誰かがそれを古いものでなく、代わりに置き換える必要があるものとしてではなく、規律として認識するのを待っているのだ。