テーマ: coding
-
エッジトリガーの epoll:次のエッジを待つ前にノンブロッキングで可能な処理を尽くす
準備完了通知と完全なアプリケーションメッセージを区別し、接続の停滞を避けます。
-
CMake の PUBLIC、PRIVATE、INTERFACE:グローバルフラグなしで依存範囲を直す
利用側ターゲットの契約から依存範囲を選び、最小の外部利用プログラムで検証します。
-
Go の経過時間:シリアライズで単調時計の成分が失われる
プロセス内の時間計測を、永続化するタイムスタンプやプロセス間の期限方針と分けて扱います。
-
Rust のパックされたフィールド:生ポインターへのキャスト前に非整列参照を作らない
一時的な参照でも既にアラインメント要件に違反し得る理由を理解し、可能なら明示的なバイトデコードを優先する。
-
Rust Pin:ポインター変数を固定せず、参照先のアドレスを保つ
アドレスに依存する値と、それを移動し得る操作を特定して、ピン留めのエラーを診断します。
-
Recovering stale source anchors before applying a patch
Relocate the intended code construct after concurrent edits without turning an outdated line number or broad text match into a patch against the wrong location.
-
FFI 境界の CString:借用ポインターと所有権の移転を区別する
借用する呼び出しでは CString の所有者を生存させ、所有権を raw 形式へ変換するのは明示的な返却契約がある場合に限ります。
-
EINTR の処理:期限を最初から延ばさず、該当する操作を再試行する
インターフェースごとにシグナルによる中断を調べ、再試行をまたいで進捗とキャンセル状態を保ちます。
-
JavaScript のテキストオフセット:UTF-16 コード単位、コードポイント、見える文字を区別する
エディターや API の各境界でオフセットの単位を明示し、テキストを切り出す前に意識して変換する。
-
Jev でリポジトリ内の領域を探し、別の経路も保持する
リポジトリの分類体系を使い、コーディングエージェントが次に調べるべき場所を提案しつつ、初期の分類では捨てられかねない代替経路を保つ。
-
Go append のエイリアス:余剰容量と再割り当ての両経路をテストする
ビューへの追加が他から見える記憶領域を変更し得る場合、スライスの所有権を明示します。
-
asyncio のキャンセル:CancelledError を握りつぶさずに後始末する
中断された経路でリソースを解放しながら、タスクの所有者がキャンセルを観測できる状態を保ちます。
-
AddressSanitizer の調査:後の動作を信頼する前に最初の不正アクセスを直す
問題のない実行を証明とみなさず、AddressSanitizer のレポートを所有権や境界の最小回帰ケースに変えます。
-
Python のループ内コールバック:遅延実行の前に意図する値を束縛する
変化する名前を参照するクロージャーと、登録時の値を保持しなければならないコールバックを区別する。
-
部分書き込み:全データを再送せず、バッファーのオフセットを進める
正の値を返す短い書き込みを進捗として扱い、バックプレッシャーをまたいで未送信の状態を保持します。
-
Python の可変デフォルト値:引数の省略と共有状態を区別する
値がない場合の方針を明示し、独立した呼び出しが一つの可変デフォルト値を誤って共有しないようにする。
-
コンパイルデータベース:ヘッダーを変える前に失敗した翻訳単位を再現する
実際のコンパイルコマンドと作業ディレクトリを使い、ソースの不具合とエディター設定の誤りを区別します。
-
Rust FFI のレイアウト:外側の構造体に repr(C) を付けても入れ子のフィールドは修正されない
C ABI 境界を越えるすべてのフィールドを確認し、対応する各ターゲットでレイアウトを検証する。
-
Rust FFI のリソース所有権:外部コンストラクターを実際のデストラクターと組にする
外部リソースを包む限定的な Rust ラッパーで、割り当て、解放、コールバックの有効期間を明示する。
-
Protocol Buffers の決定的シリアライズは正規のメッセージ識別を定めない
任意の protobuf バイト列を、ランタイムやバージョンをまたいで安定した意味上のフィンガープリントとして使うことを避ける。
機械可読: JSON