ますたーさん
聞き流しプログラミング言語学習
生成AIが作成した汎用的なプログラミング言語の知識を、聞き流しで学習するための音声コンテンツです。個人学習用として作成しています。音声:VOICEVOX(青山龍星)
Where to listen?
Podcasts in the app Replaio Radio Coming soonPodcasts are coming to the app soon. Install now and be the first to see a whole new take on podcasts
Episodes
【Rust音声学習 第92章】Drop ― 所有権の最後の仕事 23.02.2026 6:58
第92章へようこそ。 今日のテーマは「所有権の最後の仕事」です。 所有権には、始まりと終わりがあります。 値を生成したとき、所有権が生まれる。 値がスコープを抜けたとき、所有権が終わる。 この「終わるとき」に何が起きるか。 それを定義するのが、Dropトレイトです。 Derefは、所有している値へのアクセスを透明にしました。 Fn、FnMut、FnOnceは、値のキャプチャ方法を定義しました。 Dropは、値の後始末を定義します。 所...
【Rust音声学習 第91章】Fn、FnMut、FnOnce ― クロージャは三つのトレイトである 22.02.2026 7:46
第91章へようこそ。 今日のテーマは「クロージャは三つのトレイトである」です。 前章で、Iteratorのデフォルトメソッドを見ました。 map、filter、fold。これらはすべてクロージャを受け取ります。 しかし、受け取るクロージャの種類が同じではない。 あるメソッドはFnMutを要求する。あるメソッドはFnOnceを要求する。 Fn、FnMut、FnOnce。 この三つの名前は何を意味しているのか。 なぜ区別が必要なのか。 答えは、Rustの根幹に...
【Rust音声学習 第90章】Iterator ― nextから生まれる世界 21.02.2026 8:30
第90章へようこそ。 今日のテーマは「nextから生まれる世界」です。 ここ数章で、あるパターンが繰り返し現れてきました。 Displayを実装すれば、to_stringが手に入る。 Fromを実装すれば、Intoが手に入る。 Derefを実装すれば、メソッド呼び出しの透過性が手に入る。 一つを実装すれば、多くが手に入る。 Rustのトレイト設計に貫かれた原則です。 今日は、この原則の究極の体現者を見ます。 Iteratorトレイト。 Iteratorトレイト...
【Rust音声学習 第89章】Deref ― 透明になる型の境界 20.02.2026 7:49
第89章へようこそ。 今日のテーマは「透明になる型の境界」です。 前章で、FromとIntoの話をしました。 型と型の間に橋を架けるトレイト。 fromメソッドやintoメソッドを呼んで、明示的に変換する。 橋を渡ることを、コードの中で宣言する。 今日の話は違います。 橋を渡っているのに、渡っていることが見えない。 型の境界が、透明になる。 Derefトレイト。 Rustの中で最も静かに、最も広範に働いているトレイトの一つです。
【Rust音声学習 第88章】std::convert ― 型と型の橋を架ける 18.02.2026 8:27
第88章へようこそ。 今日のテーマは「型と型の橋」です。 Rustの道具は5つに分類できます。 言語構文、プレリュード、組み込みマクロ、標準ライブラリ、外部クレート。 今日も標準ライブラリの章です。 プレリュードの章で、FromとIntoに触れました。 ある型から別の型への変換は、あらゆる場面で発生する。 だからプレリュードに入っている、と。 前章では、ブランケット実装の話をしました。 Displayを実装すれば、ToStringが自...
【Rust音声学習 第87章】std::fmt ― 型が自分の見せ方を決める 18.02.2026 8:28
第87章へようこそ。 今日のテーマは「型が自分の見せ方を決める」です。 Rustの道具は5つに分類できます。 言語構文、プレリュード、組み込みマクロ、標準ライブラリ、外部クレート。 今日も標準ライブラリの章です。 前々章で、プレリュードの話をしました。 そのとき、一つの不在に触れました。 Debugトレイトはプレリュードに含まれる。しかしDisplayトレイトは含まれない。 今日は、そのDisplayの世界に入ります。 std::fmtモ...
【Rust音声学習 第86章】標準ライブラリ:外界 ― 環境、パス、時間 17.02.2026 6:24
第86章へようこそ。 今日のテーマは「プログラムの外側」です。 Rustの道具は5つに分類できます。 言語構文、プレリュード、組み込みマクロ、標準ライブラリ、外部クレート。 今日も標準ライブラリの章です。 前章では、入出力を見ました。 ReadとWriteというトレイトが、ファイル、ネットワーク、標準入出力を統一していた。 今日は、プログラムが外の世界と接する残りの部分を見ます。 プログラムはどう起動されたか。どこにいる...
【Rust音声学習 第85章】標準ライブラリ:入出力 ― ReadとWriteがすべてを繋ぐ 17.02.2026 7:11
第85章へようこそ。 今日のテーマは「標準ライブラリの入出力」です。 Rustの道具は5つに分類できます。 言語構文、プレリュード、組み込みマクロ、標準ライブラリ、外部クレート。 前章では、useを書かずに使える最初の3つを見ました。 今日から、4つ目に入ります。 標準ライブラリ。useが必要だが、Cargo.tomlには書かない世界です。 ファイルを読む。ネットワークからデータを受信する。標準入力からテキストを受け取る。 これ...
【Rust音声学習 第84章】言語構文、プレリュード、組み込みマクロ ― useを書かない世界 17.02.2026 11:36
第84章へようこそ。 今日のテーマは「useを書かない世界」です。 Rustで使える道具は、5つに分類できます。 1つ目は、言語構文。if、match、for、let、useのような、言語そのものの文法。 2つ目は、プレリュード。Option、Vec、Cloneのような、自動的にインポートされる型とトレイト。 3つ目は、組み込みマクロ。println!、panic!、assert!のような、常に使えるマクロ。 4つ目は、標準ライブラリ。HashMap、File、TcpStreamのよう...
【Rust音声学習 第83章】Tauriのビルドと配布 ― デスクトップアプリを届ける 15.02.2026 6:32
第83章へようこそ。 今日のテーマは「ビルドと配布」です。 Rustでビルドすれば、実行ファイルが1つ出来上がります。 それをコピーすれば、確かに動く。 しかし、「動く」と「届けられる」は違います。 実行ファイルをそのまま渡されたユーザーは、まず疑います。 これは本当に安全なのか。誰が作ったのか。途中で改ざんされていないか。 OSも同じ疑いを持ち、警告を出してブロックする。 開発者の環境では動いたが、ユーザーの環...
【Rust音声学習 第82章】Tauriの状態管理 ― コマンドをまたぐデータの共有 15.02.2026 6:48
第82章へようこそ。 前章では、Tauriのセキュリティモデルを学びました。 今日のテーマは「状態管理」です。 Tauriのコマンドは、JavaScriptからRustの関数を呼び出す仕組みでした。 しかし、関数呼び出しは一回きり。呼ばれて、結果を返して、終わり。 ではアプリケーションは、どうやって「前の操作の結果」を覚えているのか。 今日はその問いから始めます。
【Rust音声学習 第81章】Tauri - Capabilities フロントエンドに何を許すか 14.02.2026 7:48
第81章へようこそ。 前回は、コマンドとイベントを学びました。 フロントエンドとバックエンドの間で、データをやり取りする仕組み。 今日のテーマは、セキュリティです。 Tauriアプリケーションでは、フロントエンドはWebViewで動いています。 HTML、CSS、JavaScript。Webページと同じ。 Webページには、ブラウザがセキュリティ制限を課しています。 ローカルファイルを読めない。任意のプロセスを起動できない。 しかしTauriでは...
【Rust音声学習 第80章】Tauri - コマンドとIPC RustとJavaScriptの境界 14.02.2026 7:52
第80章へようこそ。 前回は、Tauriのアーキテクチャを学びました。 フロントエンドはWebViewで動き、バックエンドはRustで動く。 今日のテーマは、この2つの世界を繋ぐ仕組みです。 コマンドとイベント。 フロントエンドがバックエンドに処理を依頼する。 バックエンドが結果をフロントエンドに返す。 バックエンドからフロントエンドに通知を送る。 これらの通信は、すべてIPC、プロセス間通信を通じて行われます。
【Rust音声学習 第79章】Tauri入門 ― なぜブラウザを同梱しないのか 14.02.2026 8:10
第79章へようこそ。 今日のテーマは「Tauri」です。 Rustでデスクトップアプリケーションを作るフレームワーク。 デスクトップアプリを作る方法はいくつかあります。 その中で、Web技術を使う方法が人気を集めてきました。 HTML、CSS、JavaScriptで画面を作る。慣れた技術でUIを構築できる。 この分野で長く支配的だったのがElectronです。 VS Code、Slack、Discord。多くの有名アプリがElectronで作られている。 しかしElectronに...
【Rust音声学習 第78章】Pin ― 動かないことの保証 13.02.2026 5:33
第78章へようこそ。 今日のテーマは「Pin」です。 Pinは、Rustの中でも特に混乱しやすい概念の一つ。 ドキュメントを読んでも、最初は何を言っているかわからない。 「値をメモリ上の位置に固定する」。 それが何を意味するのか。なぜ必要なのか。 答えは「自己参照構造体」にある。 自分自身の一部を指すポインタを持つ構造体。 Rustの所有権モデルでは、これが問題になる。 そして、async/awaitが生成するFutureは、まさに自己参...
【Rust音声学習 第77章】rayon ― データ並列を当たり前にする 13.02.2026 5:30
第77章へようこそ。 今日のテーマは「rayon」です。 データ並列処理。聞くだけで複雑そうに感じる。 スレッドの生成、タスクの分割、結果の集約、レースコンディション。 気をつけることが多すぎる。 でもrayonを使うと、話が変わる。 逐次処理のイテレータをpar_iterに変える。それだけで、 CPUコアをすべて使い切る並列処理になる。 コードの見た目はほぼ同じ。 魔法ではありません。 rayonの内部で何が起きているのか。 どんな...
【Rust音声学習 第76章】関数の設計 ― 呼び出し側の視点で考える 13.02.2026 5:34
第76章へようこそ。 前章では、型を使って不正を防ぐAPI設計の思想を学びました。 今日はもう少し具体的な話です。 関数やメソッドの「引数」と「戻り値」をどう設計するか。 Rustでは、引数で所有権を取るか参照を取るかという選択があります。 戻り値にも、コレクションを返すかイテレータを返すかという選択がある。 これらの判断基準を学びます。 共通するのは「呼び出し側の視点で考える」という姿勢です。
【Rust音声学習 第75章】API設計 ― 使う人を守るインターフェース 13.02.2026 6:51
第75章へようこそ。 今日のテーマは「API設計」です。 ライブラリを書く。モジュールを設計する。関数のシグネチャを決める。 これらはすべてAPI設計の一部です。 良いAPIとは何か。 「使いやすい」だけでは足りません。 「間違った使い方ができない」ことが、Rustらしい良いAPIの条件です。 今日は、型システムを使ってAPIの利用者を守る、その思想を学びます。
【Rust音声学習 第74章】メモリ確保戦略 ― アロケータの正体と付き合い方 12.02.2026 15:08
第74章へようこそ。 今日のテーマは「メモリ確保戦略」です。 Vec::newを呼ぶ。String::fromを呼ぶ。Box::newを呼ぶ。 何気なく書くこれらのコードの裏側で、アロケータが動いている。 アロケータとは何か。なぜメモリ確保は「コスト」と言われるのか。 そのコストを減らすために、どんな手法があるのか。 今日は、普段は意識しないレイヤーに降りていきます。 「なぜこれが速くて、あれが遅いのか」の本当の理由がわかるようにな...
【Rust音声学習 第73章】clap ― コマンドラインインターフェースを型で設計する 11.02.2026 14:01
第73章へようこそ。 今日のテーマは「clap」です。 RustでCLIツールを作るとき、ほぼ確実に使うことになるクレート。 名前はCommand Line Argument Parserの略。 コマンドライン引数の解析というと、地味な仕事に聞こえるかもしれません。 でも、よく設計されたCLIツールは使いやすい。 引数の解析がしっかりしていると、ユーザーが間違った使い方をしたとき、何が問題かを明確に教えてくれる。 ヘルプメッセージが自動生成される...
【Rust音声学習 第72章】Tokio深掘り ― ランタイムの中で何が起きているか 11.02.2026 16:13
第72章へようこそ。 今日のテーマは「Tokioの深掘り」です。 第51章でTokioの基本を学びました。 spawnでタスクを作り、awaitで待ち、sleepで非同期に眠る。 でもあの章では「何が起きているか」をほとんど説明しませんでした。 ランタイムの中で、タスクはどう管理されているのか。 マルチスレッドランタイムとシングルスレッドランタイムは、何が違うのか。 selectマクロは、なぜ複数のFutureを同時に扱えるのか。 tokio::syncと...
【Rust音声学習 第71章】キャッシュと局所性 ― メモリの速度は均一ではない 09.02.2026 10:42
第71章へようこそ。 今日のテーマは「キャッシュと局所性」です。 第20章でスタックとヒープを学びました。 でもメモリの話には、もう一つ重要な次元があります。 CPUキャッシュです。 同じメモリアクセスでも、速いときと遅いときがある。 1ナノ秒で済むこともあれば、100ナノ秒かかることもある。 100倍の差。なぜこんなことが起きるのか。 答えはCPUキャッシュにあります。 そして、キャッシュを意識したデータ配置が「局所性」...
【Rust音声学習 第70章】Cow ― 必要になるまでコピーしない 09.02.2026 9:17
第70章へようこそ。 今日のテーマは「Cow」です。 Copy on Writeの略。コピーオンライト。 Rustを書いていると、こんな場面に出会います。 「この文字列、ほとんどの場合はそのまま使うけど、たまに加工が必要」。 そのまま使うなら参照でいい。加工するなら所有権が要る。 両方に対応したい。でも常にcloneするのは無駄。 この「必要になるまでコピーしない」を実現するのがCowです。 名前が可愛いので軽く見られがちですが、実用...
【Rust音声学習 第69章】anyhowとthiserror ― エラー処理の二刀流 09.02.2026 3:37
第69章へようこそ。 今日のテーマは「anyhowとthiserror」です。 Rustのエラー処理には、2つの代表的なクレートがあります。 anyhowとthiserror。 この2つは、それぞれ異なる場面で使います。 どういう場面か。それを理解するのが今日の目標です。
【Rust音声学習 第68章】名前が約束する「振る舞い」 08.02.2026 6:53
第68章へようこそ。 前回は、名前が「コストと所有権」を教えることを学びました。 今日は、名前が「振る舞い」を約束することを学びます。 メソッド名は、呼び出し側との契約です。 名前を見れば、何が起きるか予測できる。 予測できるから、安心してコードが書ける。 Rustのエコシステム全体が同じ約束を守っている。 だから、初めて見るクレートでも読みやすい。 今日はその約束を学びます。
Similar podcasts
Replaio is not a podcast publisher; show names, artwork and audio belong to their authors and are distributed through public RSS feeds.