All Episodes
聞き流しプログラミング言語学習 — 172 episodes
Rust 030 モジュールシステム - 構造・境界・名前
Rust 029 BTreeMap と BTreeSet - 順序を保つ対応表
Rust 028 HashSet と VecDeque - 派生コレクション
Rust 027 Entry API - 効率的な更新
Rust 026 HashMap - キーと値の対応表
Rust 025 Vec詳細 - 容量と成長
Rust 024 Weak - 弱い参照
Rust 023 RefCell - 内部可変性
Rust 022 Rc - 共有所有権
Rust 021 Box - ヒープに置く箱
Rust 020 スタックとヒープ - 2つのメモリ領域
Rust 019 UTF-8の世界 - 文字とバイト
Rust 018 文字列の変換 - 所有と借用を行き来する
Rust 017 &str入門 - 借りる文字列
Rust 016 String入門 - 所有する文字列
Rust 015 ライフタイム省略と’static - 書かなくてよい場合
Rust 014 関数と構造体のライフタイム - 注釈を書く
Rust 013 ライフタイム - 参照の有効期間
Rust 012 関連型 - トレイトが型を持つとき
Rust 011 トレイト境界 - ジェネリクスに条件を付ける
Rust 010 ジェネリクス - 型を引数にする
Rust 009 エラー処理 - エラー型を設計する
Rust 008 トレイト - 型と振る舞いを分離する
Rust 007 パターンマッチ - 値の構造で分岐する
Rust 006 StructとEnum - データに形を与える
Rust 005 クロージャ - 環境を捕獲する関数
Rust 004 イテレータ - 流れとして処理する
Rust 003 Result - 失敗を型で表現する
Rust 002 Option - 値の不在を型で表現する
Rust 001 所有権 - Rustの心臓部
Rust 140 メモリの統合 - すべてはメモリに帰る
Rust 139 メモリ境界 - asyncと所有権が交差するとき
Rust 138 asyncの内部構造 - ステートマシンがメモリに刻まれるとき
Rust 137 メモリ上の仮想表 - ブイテーブルの構造
Rust 136 メモリと判別子 - enumの内部表現
コンピュータ基礎 031 メモリオーダリング - 書いた順に実行されるとは限らない
Rust 135 メモリ具体化 - ジェネリクスが形を持つ瞬間
コンピュータ基礎 030 同期 - データを守る仕組みとその代償
Rust 134 メモリと並行性 - 複数のスレッドが同じバイト列に触れるとき
コンピュータ基礎 029 データ競合 - なぜデータが壊れるのか
Rust 133 メモリアクセス規則 - 借用チェッカーの本質
コンピュータ基礎 028 スレッド - 1つのプロセスの中の複数の実行の流れ
Rust 132 メモリ配分 - アロケータの仕組み
コンピュータ基礎 027 並行と並列 - 複数の処理が動くとは何か
Rust 131 メモリの一生 - 確保、使用、解放
コンピュータ基礎 026 ルーティング - データが宛先に届くまで
Rust 130 メモリの移動 - ムーブとコピーの正体
コンピュータ基礎 025 ネットワーク - データが線に乗るまで
Rust 129 メモリ上の参照 - 借りるとはポインタを持つこと
コンピュータ基礎 024 ディスク - 読み込み要求が届くまで
Rust 128 メモリ構造 - スタックとヒープの所有モデル
コンピュータ基礎 023 マウス - 1ミリの移動で何が起きているか
Rust 127 メモリレイアウト - 型がバイト列になるとき
コンピュータ基礎 022 入出力 - CPUと外界の速度差
Rust 126 メモリという現実 - すべての制約はここに帰る
コンピュータ基礎 021 リンクとロード - 部品から動くプログラムへ
Rust 125 パニック - プログラムが自ら止まるとき
コンピュータ基礎 020 コンパイル - ソースコードから機械語へ
Rust 124 実行時の検査 - コンパイラが手放したもの
コンピュータ基礎 019 システムコール - プログラムとOSの境界
Rust 123 安全の境界 - 型とキーワードで引かれた線
コンピュータ基礎 018 プロセス - 「動いているプログラム」の正体
Rust 122 式指向 - すべてが値を返す
Rust 121 明示性 - 暗黙を拒否する言語
コンピュータ基礎 017 スタックとヒープ - プログラムのメモリの使い分け
Rust 120 ゼロコスト抽象 - 抽象化しても遅くならないという約束
コンピュータ基礎 016 キャッシュ - なぜメモリは遅いのか
コンピュータ基礎 015 アセンブリ - 機械語を人間が読める形に
【Rust音声学習 第119章】コンパイラとの協働 ― 敵ではなく設計相手
コンピュータ基礎 014 機械語 - CPUが理解する唯一の言葉
【Rust音声学習 第118章】終焉の確定性 ― 破棄は構造に埋め込まれている
コンピュータ基礎 013 命令サイクル - フェッチ、デコード、実行
【Rust音声学習 第117章】網羅性の強制 ― 考え漏らしを許さない
コンピュータ基礎 012 クロック - 心臓の鼓動、同期の仕組み
【Rust音声学習 第116章】合成可能性 ― 小さな部品を組み合わせる
コンピュータ基礎 011 アドレス - どうやって「場所」を指定するか
【Rust音声学習 第115章】コストの可視性 ― 暗黙の代償を排除する
コンピュータ基礎 010 メモリセル - 大量のビットをどう保持するか
【Rust音声学習 第114章】表現可能性の制限 ― 書けないことが設計を導く
コンピュータ基礎 009 レジスタ - CPUの中の小さな記憶
【Rust音声学習 第113章】効果の追跡 ― 何が起きるかを型に刻む
コンピュータ基礎 008 フリップフロップ - 1ビットを「覚えておく」とは
【Rust音声学習 第112章】線形性 ― あたいは一度だけ使われる資源である
【Rust音声学習 第111章】局所推論 ― その場だけで正しさがわかる
コンピュータ基礎 007 ALU - 足し算以外の演算はどうするか
【Rust音声学習 第110章】自己参照の壁 ― なぜRustはこれを嫌うか
コンピュータ基礎 006 加算器 - 0と1の足し算はどう実現するか
【Rust音声学習 第109章】変性 ― 長い寿命を短い寿命の代わりに使えるか
コンピュータ基礎 005 2進数 - なぜ10進数ではないのか
【Rust音声学習 第108章】ライフタイムとトレイト ― dyn Trait + 'aの意味
コンピュータ基礎 004 組み合わせる - ゲートを繋ぐと何ができるか
【Rust音声学習 第107章】借用チェッカーの目 ― コンパイラは何を見ているか
コンピュータ基礎 003 論理ゲート - NOT、AND、OR、XOR
【Rust音声学習 第106章】エラー型の設計 ― 呼び出し側の視点で選ぶ
コンピュータ基礎 002 トランジスタ - スイッチとして動く小さな素子
【Rust音声学習 第105章】型で状態を表現する ― 実行時チェックからコンパイル時保証へ
コンピュータ基礎 001 0と1は何か - 電圧の高低、それだけ
【Rust音声学習 第104章】ジェネリクスの境界 ― 抽象をどこまで広げるか
【Rust音声学習 第103章】enumとトレイトオブジェクト ― 閉じた世界と開いた世界
【Rust音声学習 第102章】拡張トレイトとシールドトレイト ― トレイトの応用設計
【Rust音声学習 第101章】関連型と型パラメータ ― 「一つだけ」か「複数」か
【Rust音声学習 第100章】スーパートレイト ― トレイトの階層
【Rust音声学習 第99章】オーファンルール ― トレイトの一貫性を守る壁
【Rust音声学習 第98章】マーカートレイト ― メソッドのない約束
【Rust音声学習 第97章】SendとSync ― 所有権がスレッド安全を生む
【Rust音声学習 第96章】ブランケット実装 ― 条件が満たされたら、能力が生まれる
【Rust音声学習 第95章】トレイトオブジェクト ― 型を消す抽象
【Rust音声学習 第94章】Sized ― コンパイラが最初に確認すること
【Rust音声学習 第93章】Default ― 型の始まりの姿
【Rust音声学習 第92章】Drop ― 所有権の最後の仕事
【Rust音声学習 第91章】Fn、FnMut、FnOnce ― クロージャは三つのトレイトである
【Rust音声学習 第90章】Iterator ― nextから生まれる世界
【Rust音声学習 第89章】Deref ― 透明になる型の境界
【Rust音声学習 第88章】std::convert ― 型と型の橋を架ける
【Rust音声学習 第87章】std::fmt ― 型が自分の見せ方を決める
【Rust音声学習 第86章】標準ライブラリ:外界 ― 環境、パス、時間
【Rust音声学習 第85章】標準ライブラリ:入出力 ― ReadとWriteがすべてを繋ぐ
【Rust音声学習 第84章】言語構文、プレリュード、組み込みマクロ ― useを書かない世界
【Rust音声学習 第83章】Tauriのビルドと配布 ― デスクトップアプリを届ける
【Rust音声学習 第82章】Tauriの状態管理 ― コマンドをまたぐデータの共有
【Rust音声学習 第81章】Tauri - Capabilities フロントエンドに何を許すか
【Rust音声学習 第80章】Tauri - コマンドとIPC RustとJavaScriptの境界
【Rust音声学習 第79章】Tauri入門 ― なぜブラウザを同梱しないのか
【Rust音声学習 第78章】Pin ― 動かないことの保証
【Rust音声学習 第77章】rayon ― データ並列を当たり前にする
【Rust音声学習 第76章】関数の設計 ― 呼び出し側の視点で考える
【Rust音声学習 第75章】API設計 ― 使う人を守るインターフェース
【Rust音声学習 第74章】メモリ確保戦略 ― アロケータの正体と付き合い方
【Rust音声学習 第73章】clap ― コマンドラインインターフェースを型で設計する
【Rust音声学習 第72章】Tokio深掘り ― ランタイムの中で何が起きているか
【Rust音声学習 第71章】キャッシュと局所性 ― メモリの速度は均一ではない
【Rust音声学習 第70章】Cow ― 必要になるまでコピーしない
【Rust音声学習 第69章】anyhowとthiserror ― エラー処理の二刀流
【Rust音声学習 第68章】名前が約束する「振る舞い」
【Rust音声学習 第67章】名前が教える「コストと所有権」
【Rust音声学習 第66章】serde ― すべてのデータが通る門
【Rust音声学習 第65章】イテレータパターン ― カスタム実装
【Rust音声学習 第64章】エラーハンドリングパターン ― 実践的な設計
【Rust音声学習 第63章】RAIIパターン ― リソース管理の定石
【Rust音声学習 第62章】ビルダーパターン ― 柔軟なオブジェクト構築
【Rust音声学習 第61章】属性とコンパイラ ― メタデータの活用
【Rust音声学習 第60章】型レベルプログラミング ― コンパイル時の計算
【Rust音声学習 第59章】型状態パターン ― 状態遷移を型で表現
【Rust音声学習 第58章】Newtypeパターン ― 型で意味を表現
【Rust音声学習 第57章】バインディング生成 ― 自動化ツール
【Rust音声学習 第56章】FFI基礎 ― Cとの連携
【Rust音声学習 第55章】生ポインタ ― メモリの直接操作
【Rust音声学習 第54章】unsafe入門 ― 安全性の境界
【Rust音声学習 第53章】Stream ― 非同期イテレータ
【Rust音声学習 第52章】非同期のエラーハンドリング ― ?演算子とasync
【Rust音声学習 第51章】Tokioランタイム ― 実践的な非同期
【Rust音声学習 第50章】Future ― 非同期の中核
【Rust音声学習 第49章】async/await入門 ― 非同期処理の基本
【Rust音声学習 第48章】アトミック操作 ― ロックフリーの同期
【Rust音声学習 第47章】デッドロック ― 並行処理の落とし穴
【Rust音声学習 第46章】Arc ― スレッドセーフな参照カウント
【Rust音声学習 第45章】チャネル ― メッセージパッシング
【Rust音声学習 第44章】RwLock ― 読み書きの区別
【Rust音声学習 第43章】Mutex ― 排他的アクセス
【Rust音声学習 第42章】SendとSync ― 安全性の型レベル保証
【Rust音声学習 第41章】スレッド入門 ― 独立した実行の流れ
【Rust音声学習 第40章】手続き的マクロ概要 ― ディライブの裏側を知る
【Rust音声学習 第39章】マクロのパターン ― 繰り返しとマッチング
【Rust音声学習 第38章】宣言的マクロ入門 ― macro rules!の基本
【Rust音声学習 第37章】テストの制御 ― 実行を操る
【Rust音声学習 第36章】結合テストとdocテスト ― 外から検証する
【Rust音声学習 第35章】ユニットテスト ― 部品を検査する
【Rust音声学習 第34章】crates.io ― ライブラリの宝庫
【Rust音声学習 第33章】Cargo.toml ― プロジェクトの設計図
【Rust音声学習 第32章】Cargo ― プロジェクトを管理する
【Rust音声学習 第31章】use ― 名前を整理する
【Rust音声学習 第29章】mod ― コードを分割する