二つの種類の誤り

2026/03/02 8:29

二つの種類の誤り

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Summary

この記事は、開発者が「期待されるエラー」と「予期しないエラー」を意図的に区別し、それぞれを異なる方法で扱うことでソフトウェアの信頼性を向上させるべきだと主張しています。

  • 期待されるエラー – ユーザー入力や環境条件(バリデーション失敗、ネットワーク障害、権限拒否など)によって発生し、回復可能です。これらは低い重大度(WARN/INFO)でログに残し、フォールバックロジックを用いて優雅に処理すべきです。
  • 予期しないエラー – アサーション違反、論理ミス、ヌルポインタ例外、データ整合性問題などのバグは、クラッシュやパニックを引き起こし、より高い重大度(ERROR/FATAL)でログに残すべきです。

著者は、Node.js のメモリ割り当て事故を例に挙げ、動的言語でも予測可能な失敗が発生することを示しています。Rust と Zig は既に「エラーは期待される」というマインドセットを採用しているのに対し、JavaScript と Python では多くの障害をサプライズとして扱う傾向があります。この分類はプロジェクトの性質(クイックプロトタイプからミッションクリティカルなシステムまで)によって決まり、厳格なエラー処理と柔軟なスクリプティングとの間に広範な緊張を反映しています。

著者はチームに対し、失敗をより多く期待する傾向へ移行するよう促しており、日常運用で多くの予期せぬ問題が浮上することを想定しています。この前向きな姿勢は早期バグ検出、クラッシュ減少、業界慣行の強化につながり、最終的にはユーザー、企業、およびソフトウェアエコシステム全体に利益をもたらすと結論付けています。

本文

要点だけで言うと:
エラーは大きく2つに分類できると考えています。

  • 期待されるエラー(Expected errors) – 通常の運用中に発生し得るもの(例:ユーザー入力の検証失敗)。開発者側の過ちではなく、優雅に処理すべきです。
  • 予期しないエラー(Unexpected errors) – バグや仮定違反(例:ヌルポインタ例外)のこと。通常はクラッシュを起こし、コード上で何かがうまくいかなかったことを示します。

期待されるエラー

なぜ期待されるのか一般的な対処
ユーザーが無効なデータを入力した際の検証エラー入力は開発者の制御外
WARN
INFO
でログ、メッセージ表示、フォールバック使用
ネットワーク障害(例:インターネット不可)外部要因再試行、ユーザーへの通知、
WARN
ログ
権限エラー(許可されていないファイルを読む際など)システムが禁止しているユーザーへ通知、
WARN
ログ
  • 復旧 – 期待されるエラーは復旧可能です。例外投げるよりも、
    Result
    や nullable 型、あるいはエラーコードで結果を返すほうが望ましい。
  • ログ
    WARN
    または
    INFO
    を使用する。警告が頻発しているなら原因究明を。

予期しないエラー

なぜ予期しないのか一般的な対処
アサーション失敗(例:空文字列が許されていない場所で空文字)契約違反クラッシュ / パニック
論理エラー(未初期化の依存関係など)仮定が誤っているクラッシュ / パニック
ヌルポインタ例外予想外のヌルクラッシュ / パニック
信頼できるソースからの不正データ(例:DB破損)バグや破損クラッシュ / パニック
  • 復旧 – 原則として試みません。プログラムをクラッシュさせ、バグを顕在化させます。
  • ログ
    ERROR
    FATAL
    を使用します。これらは真剣な問題を示す。

線の所在

  • プロトタイピング / クイックスクリプト – ほとんどのエラーを予期しないものとして扱い、ネットワーク・ファイルシステム・ユーザー入力の問題は処理せずに済ませます。
  • ミッションクリティカルなシステム(例:宇宙探査機) – ほぼすべてを期待されるものとして扱い、ハードウェア障害でさえも優雅に対処します。

実際には多くのアプリケーションはその中間に位置し、エラーが「期待できる」か「予期しない」かはタスクと失敗許容度によって決まります。


言語ごとの慣習

言語一般的なエラークラス分け
Rust / Zig多くのエラーが期待される(必ず処理しなければならない)
JavaScript / Pythonエラーはしばしば予期しないものとして扱われる(例外がそのまま伝搬)

私は、本番コードには厳格なコンパイラを、スクリプトやプロトタイプには緩い言語を好みます。これはそれぞれのエラーフィロソフィーに合致しています。


結論として:
予測可能なものは 期待される として扱い、適切に処理します。サプライズは 予期しない と見なし、そのまま顕在化させます。このマインドセットが信頼性を高め、エラー処理戦略を明確にします。

同じ日のほかのニュース

一覧に戻る →

2026/03/04 7:24

あなたとチャットボットとの会話を私に強要しないでください。

## Japanese Translation: > **メインメッセージ:** 著者は「あなたのチャットボットに話しかけさせない」という原則を擁護しています。AI に文章を書かせると、結果として生まれるプローズはしばしば冗長で不透明になり、著者が呼ぶ *AI Slop*(AIスロップ)になります。この問題を回避するためには、まず何を言いたいのか決めてから、それを簡潔に表現し、ジャーナリズムの逆ピラミッド方式を模倣すべきです。 > > **重要性:** 人間のコミュニケーションは個人が育んだ信念を伴います。AI の出力をそのままコピーすると、その意図が曖昧になり「悪いコミュニケーション」を生む可能性があります。AI のテキストが明確で独立しており、読者の視点を尊重している場合は許容できるかもしれませんが、それ以外の場合は *AI Slop* に寄与します。 > > **PR(プルリクエスト)への実践的ヒント:** 開発者はしばしば長い AI 要約を生成し、冒頭の重要情報(レデ)が埋もれてしまいます。この問題に対処する一般的な方法として、短い人間が作成した説明文を先頭に付け加え、意図と主要な決定事項を明示します。これによりレビュアーは目的を迅速に把握でき、編集作業を最小限に抑えることができます。依存関係のバンプなど、目的が明らかなルーチン変更については、この前置きを省略しても構いません。 > > **結論:** AI 出力を貼り付ける前に一度立ち止まってください。チャットボットの言葉を他者に解釈させる必要があるかどうかを問うべきです。PR やその他の文脈で最小限のキュレーションを行う「ベストエフォート」戦略は、読者の理解力を尊重し、編集時間を短縮し、協働性を向上させ、コードベースを読みやすく保ちます。これらは企業がドキュメントとレビュー全体で *AI Slop* を抑制することで得られるメリットです。

2026/03/03 23:02

マックブック プロ(新型 M5 Pro と M5 Max搭載)

## Japanese Translation: Appleは2026年3月3日に最新のMacBook Proラインアップを発表しました:14インチと16インチモデルが新しいM5 ProおよびM5 Maxチップで動作します。 M5シリコンはFusion Architectureを採用し、最大18コアCPU(6つのスーパーコア+12のパフォーマンスコア)と各コアにNeural Acceleratorsを備えたGPUを搭載しており、AI性能が前世代より最大4倍、元のM1より8倍高速です。SSDは読み書き速度が最大14.5 GB/sで、以前の約2倍速く、ストレージ容量はM5 Proで最低1 TB(M5 Maxでは2 TB)、メモリオプションは64 GB(307 GB/s)または128 GB(614 GB/s)です。 バッテリー寿命は最大24時間に延長され、高速充電では≥96 W USB‑Cを使用して0 %から50 %まで約30分で充電できます。接続性にはWi‑Fi 7、Bluetooth 6(Apple N1チップ経由)、3つのThunderbolt 5ポート、8K対応HDMI、SDXCスロット、MagSafe 3、および外部ディスプレイ最大2台(M5 Pro)または4台(M5 Max)が含まれます。 ディスプレイはLiquid Retina XDRパネルでピークHDR輝度が1600 ニト、オプションのナノテクスチャコーティングがあります。12MP Center StageカメラにDesk View機能、スタジオ品質マイク、6スピーカー構成のSpatial Audioシステムが組み込まれ、メディア体験を充実させます。 macOS Tahoeは強化されたSpotlight、Apple Intelligence、Messages/FaceTime/PhoneでのLive Translation、新しいControl Center、Liquid Glass UI、および拡張カスタマイズオプションを搭載しています。 Appleは環境への取り組みを強調しています:全体で45 %のリサイクル素材使用(ケースは100 %再生アルミニウム、バッテリーは100 %再生コバルト)、製造における電力の50 %が再生可能エネルギーから供給され、紙パッケージは100 %ファイバーベースです。 価格は14インチM5 Proで$2,199(教育用$2,049)から開始し、16インチM5 Maxは$3,599(米国小売$3,899、教育用$3,299)となります。予約は3月4日から始まり、3月11日にスペースブラックまたはシルバーで入荷します。Appleはトレードインクレジット、AppleCare+/AppleCare Oneプラン、パーソナルセットアップセッション、およびApple Cardの毎月分割払い(0 % APR、米国顧客向け3 % Daily Cash back)を提供します。

2026/03/04 3:54

インテルの破壊的な18 Aプロセスノードが、データセンター向けに288コア構成のXeonで初登場します。

## Japanese Translation: > **概要:** > インテルは、次世代Xeon 6+プロセッサー(コードネーム「Clearwater Forest」)を発表しました。18A(1.8 nm)プロセス上で構築され、最大288個の省エネルギー型Darkmontコアを備えています。テレコミュニケーション、クラウド、およびエッジAIワークロード向けに設計されたこのCPUは、Advanced Matrix Extensions(AMX)、QuickAssist Technology(QAT)、およびIntel vRAN Boost を搭載し、5G/6G および AI 推論タスクで仮想化ラジオアクセスネットワークをサポートします。各コアには64 KBのL1命令キャッシュがあり、拡張フェッチ/デコードパイプライン、より深いアウト・オブ・オーダーエンジン、および高スカラー/ベクトルスループットを実現する追加実行ポートがあります。コアは4つのグループに分けられ、約4 MBのL2キャッシュを共有し、パッケージ全体で1 GB以上のレベルキャッシュを提供します。このプロセッサーは現在のXeonソケットとドロップイン互換であり、最大12チャネルのDDR5‑8000メモリをサポートし、96 PCIe 5.0レーン(64 CXL 2.0レーン)を提供します。これにより、デュアルソケットシステムで576コアを実現できます。年末までに出荷予定のこのCPUは、テレコミオペレーターとクラウドプロバイダーがラックあたりの仮想マシン数を増やしつつ、電力消費を削減できるよう設計されています。 この改訂された概要は、主要ポイントをすべて保持し、市場への影響に関する推測的な主張を除外し、欠落していたキャッシュ情報を追加しています。