技術デューデリジェンスはコード品質のコンテストではありません。それにもかかわらず、これから受ける側のチームは、たいてい見当違いのところに時間を注ぎ込みます。会社を買おうとしている人間で、あなたの設計した抽象化に点数をつけたい人はひとりもいません。買い手が知りたいのは、このシステムを保有し続けるのにいくらかかるのか、そして資金が動いたあとにどれほどひどいことが起こりうるのか、その二点だけです。 この捉え直しが大事なのは、最初に直すべきものが変わるからです。見た目は汚いけれども動いていて、チームが中身を理解していて、安全に手を入れられるコードは、軽微な指摘で終わります。逆に、洗練されてはいるがひとりの人間しか理解していないコードは重大な...
記事
すべての記事を一か所で閲覧。AI、プログラミング、セキュリティ、インフラ、Web 開発に関するチュートリアルや解説、ガイド、更新情報を見つけましょう。
データベース性能の改善作業は、たいてい誰かが「もっと大きなインスタンスにしよう」と言い出すところから始まり、そしてたいていは、ページを開くたびにひとつのクエリが400万行を順次スキャンしていた、という発見で終わります。制約はもともとハードウェアではありませんでした。制約は実行計画のほうにあったのです。 この筋書きは十分に繰り返し起きるので、既定の仮説としてはっきり言葉にしておく価値があります。アプリケーションが遅く、そのうえデータベースが忙しいのなら、原因はほぼ必ず、ごく少数の特定のクエリであって、処理能力全体の不足ではありません。そしてサーバーを大きくする対処は、テーブルがふたたび育つのに必要な時間のぶんだけ、問題を覆い隠してくれ...
エンティティSEOは、多くの最適化アドバイスが今も見落としている一つの事実から始まります。検索エンジンはずっと以前に文字列の照合をやめました。いま照合しているのは「モノ」です。ページはある語句を含んでいるかどうかで評価されるのではなく、その語句の背後にある概念について書かれたページだとシステムが信じているかどうか、そしてその概念が何であるかについてシステムがどれだけ確信を持てているかで評価されます。 この区別が、キーワードの繰り返しが効くのか、それともまったく何も動かさないのかを決めます。文字列を照合するシステムでは、繰り返しはシグナルでした。エンティティを照合するシステムでは、繰り返しは単なるノイズです。実際に順位や引用を動かすの...
ソフトウェアテスト戦略は、たいていカバレッジという数字で語られます。しかしカバレッジは、この分野全体のなかで最も情報量の少ない数字です。カバレッジ九十パーセントのコードベースであっても、最もよく使われる経路でバグを本番に送り出すことがあります。カバレッジが測っているのは、テスト実行中にどの行が実行されたかであって、その行について意味のある検証が行われたかどうかではないからです。 自分たちのテストスイートを信頼しているチームは、パーセンテージが最も高いチームではありません。本当に壊れているときにテストが落ち、それ以外のときは静かにしているチームです。そしてこの性質は、お金で買うのがはるかに難しいことが分かっています。 どんなテストにつ...
フィンテックのソフトウェア開発は、誰が資金を保有する認可を持っているのかと誰かが問うその瞬間まで、ごく普通のソフトウェア開発とまったく同じように見積もられ、同じように日程が組まれます。その問いが出た時点で、案件は工学の課題であることをやめ、工学の要素を含んだ規制の課題に変わります。そして頭の中に描いていた日程は、そのままでは達成できないものになります。 技術が難所になることはめったにありません。資金を動かすこと自体はすでに解かれた問題で、成熟した事業者があり、仕様が文書化されたインターフェースがあり、初日から触れるテスト環境も用意されています。フィンテックの構築を長引かせるのは、認可上の立場と、監査に対して証跡を示す義務と、アーキテ...
MVPのソフトウェア開発が失敗するのは、実装のさなかではなく、スコープを決める会議の席です。誰かが「実用最小限の製品」と口にすると全員がうなずき、そのあとに届く機能一覧には、ユーザーアカウント、管理画面、課金、通知、ダッシュボード、そしてモバイルアプリまで並んでいます。それは実用最小限の製品ではありません。それはもう完成した製品であり、頭のなかに思い浮かべた数字の三倍の時間がかかります。 害をもたらしている言葉は「実用」、つまり viable の部分です。多くのチームはこれを「誰にでも売れるだけの出来ばえ」と読みますが、本来の意味は「これを欲しがる人がいるかどうかを知るのに、ぎりぎり足りる程度」です。 もっとも費用を節約できるスコー...
順位は取れているのに引用されない。検索エンジン最適化を正しく実行しているのに、それが何も生まないという、非常に特有の苛立ちがこれです。順位は上がります。表示回数も伸びます。それなのにクリックは後に続かず、タイトルタグを何度書き直しても状況は変わりません。 これはあなたの最適化の失敗ではありません。検索結果ページがリンクの一覧であることをやめ、ひとつの回答になったときに起きることです。そしていまや、これは診断に値する異常ではなく、ごく普通の状態になりました。 Search Consoleから取得した、2026年8月上旬までの28日間の自社実測値: このサイトでは531件のクエリが上位十位以内に入り、28,847回の表示に対してクリック...
llms.txt は今のところ何かの役に立っているのか。その問いに対する正直な答えはこうです。測定できる範囲ではほとんど何の役にも立っておらず、このファイルが AI 上での可視性に不可欠だと言ってくる人は、たいてい何かを売ろうとしています。それでいて「一つ用意しておいたほうがよい」と勧めるのは、かなり落ち着かない立場です。ですからこの記事では、まず数字を並べ、そのうえで推奨の理由を順に説明していきます。 ファイルそのものは筋の通ったアイデアです。サイトのルートに置くマークダウン形式の索引で、robots.txt がクローラーに「何を取得してよいか」を伝えるのと同じように、言語モデルに「何を公開していて、それがどこにあるか」を伝えま...
AIクローラーを遮断すべきかどうかは、技術の問題として持ち出されることがほとんどです。しかし技術の問題ではありません。遮断そのものは設定を数行書くだけの作業で、robots.txt に記述を足すか、ネットワーク側でルールを一つ有効にするか、いずれにしても十分もあれば終わります。難しいのは、自分がそれを本当に望んでいるのかを決めるところであり、その判断は完全に商売の判断です。自社のコンテンツが学習に使われないよう守るのか、それとも人々が検索結果の一覧の代わりに受け取るようになった回答の中に居続けるのか、そのどちらかを選ぶことになります。 ネット上の助言の多くは、まず立場を決めてから、その立場だけを弁護します。誠実な言い方をすれば、正解...
Cloudflare Queues は、サーバーレスアプリケーションが遅かれ早かれ必ず突き当たる問題を解決します。すなわち、ユーザーを待たせるべきではない処理を引き起こすリクエストが届く、という問題です。確認メールの送信、アップロードされた画像のリサイズ、レコードを外部サービスへ同期する処理。従来型のサーバーであれば、そうした仕事はバックグラウンドのワーカープロセスに渡せば済みます。ところが Workers には、渡す相手となるプロセスそのものが存在しません。 よく使われる回避策は、見た目よりもたちが悪いものばかりです。処理をリクエストの中でそのまま実行すれば、ユーザーはメール配信事業者の応答を待たされることになります。...