聞き流しプログラミング言語学習 cover art

All Episodes

聞き流しプログラミング言語学習 — 185 episodes

#
Title
1

Rust 063 const generics - 長さが型の一部になる

2

Rust 062 Newtype - 包んで、通すものを選ぶ

3

Rust 061 Cow - 必要になるまで複製しない

4

Rust 060 rayon - データ並列を当たり前にする

5

Rust 059 キャッシュと局所性 - メモリの速度は均一でない

6

Rust 058 FFIと所有権 - 境界を越える解放とパニック

7

Rust 057 repr(C) - メモリレイアウトを契約にする

8

Rust 056 FFI境界 - Rustでない世界と地続きになる

9

Rust 055 transmuteと未定義動作 - 越えてはいけない線

10

Rust 054 UnsafeCell - 内部可変性の底

11

Rust 053 生ポインタ - メモリの直接操作

12

Rust 052 unsafe入門 - 安全性の境界

13

Rust 051 Pin - 動かないことの保証

14

Rust 050 ブロッキングと協調スケジューリングの衝突 - awaitで譲らない時の帰結

15

Rust 049 Stream - 時間をかけて届く複数のあたい

16

Rust 048 待ち合わせ - 複数のFutureを1つにまとめて待つ

17

Rust 047 タスクのライフサイクル - パニックとキャンセル

18

Rust 046 実行器 - Futureを動かすもの

19

Rust 045 Future - まだ無い結果を表す型

20

Rust 044 非同期入門 - 待ちを手放す実行の流れ

21

Rust 043 デッドロック - 停止を生む取得順序

22

Rust 042 アトミック - ロックを使わない原子的操作

23

Rust 041 RwLock - 読みと書きを区別する排他

24

Rust 040 Mutex - 排他アクセスで共有を守る

25

Rust 039 Arc - スレッドをまたぐ共有所有権

26

Rust 038 チャネル - 所有権を移して通信する

27

Rust 037 SendとSync - 型がスレッド境界を越える条件

28

Rust 036 スレッド - 独立した実行の流れ

29

Rust 035 手続き的マクロ - トークンを書くRust

30

Rust 034 繰り返しと衛生性 - 構造的に組み立てる

31

Rust 033 マクロのパターン - フラグメント指定子と分岐

32

Rust 032 宣言的マクロ入門 - 関数では届かない領域

33

Rust 031 Cargo - 言語設計を支えるもの

34

Rust 030 モジュールシステム - 構造・境界・名前

35

Rust 029 BTreeMap と BTreeSet - 順序を保つ対応表

36

Rust 028 HashSet と VecDeque - 派生コレクション

37

Rust 027 Entry API - 効率的な更新

38

Rust 026 HashMap - キーと値の対応表

39

Rust 025 Vec詳細 - 容量と成長

40

Rust 024 Weak - 弱い参照

41

Rust 023 RefCell - 内部可変性

42

Rust 022 Rc - 共有所有権

43

Rust 021 Box - ヒープに置く箱

44

Rust 020 スタックとヒープ - 2つのメモリ領域

45

Rust 019 UTF-8の世界 - 文字とバイト

46

Rust 018 文字列の変換 - 所有と借用を行き来する

47

Rust 017 &str入門 - 借りる文字列

48

Rust 016 String入門 - 所有する文字列

49

Rust 015 ライフタイム省略と’static - 書かなくてよい場合

50

Rust 014 関数と構造体のライフタイム - 注釈を書く

51

Rust 013 ライフタイム - 参照の有効期間

52

Rust 012 関連型 - トレイトが型を持つとき

53

Rust 011 トレイト境界 - ジェネリクスに条件を付ける

54

Rust 010 ジェネリクス - 型を引数にする

55

Rust 009 エラー処理 - エラー型を設計する

56

Rust 008 トレイト - 型と振る舞いを分離する

57

Rust 007 パターンマッチ - 値の構造で分岐する

58

Rust 006 StructとEnum - データに形を与える

59

Rust 005 クロージャ - 環境を捕獲する関数

60

Rust 004 イテレータ - 流れとして処理する

61

Rust 003 Result - 失敗を型で表現する

62

Rust 002 Option - 値の不在を型で表現する

63

Rust 001 所有権 - Rustの心臓部

64

Rust 140 メモリの統合 - すべてはメモリに帰る

65

Rust 139 メモリ境界 - asyncと所有権が交差するとき

66

Rust 138 asyncの内部構造 - ステートマシンがメモリに刻まれるとき

67

Rust 137 メモリ上の仮想表 - ブイテーブルの構造

68

Rust 136 メモリと判別子 - enumの内部表現

69

コンピュータ基礎 031 メモリオーダリング - 書いた順に実行されるとは限らない

70

Rust 135 メモリ具体化 - ジェネリクスが形を持つ瞬間

71

コンピュータ基礎 030 同期 - データを守る仕組みとその代償

72

Rust 134 メモリと並行性 - 複数のスレッドが同じバイト列に触れるとき

73

コンピュータ基礎 029 データ競合 - なぜデータが壊れるのか

74

Rust 133 メモリアクセス規則 - 借用チェッカーの本質

75

コンピュータ基礎 028 スレッド - 1つのプロセスの中の複数の実行の流れ

76

Rust 132 メモリ配分 - アロケータの仕組み

77

コンピュータ基礎 027 並行と並列 - 複数の処理が動くとは何か

78

Rust 131 メモリの一生 - 確保、使用、解放

79

コンピュータ基礎 026 ルーティング - データが宛先に届くまで

80

Rust 130 メモリの移動 - ムーブとコピーの正体

81

コンピュータ基礎 025 ネットワーク - データが線に乗るまで

82

Rust 129 メモリ上の参照 - 借りるとはポインタを持つこと

83

コンピュータ基礎 024 ディスク - 読み込み要求が届くまで

84

Rust 128 メモリ構造 - スタックとヒープの所有モデル

85

コンピュータ基礎 023 マウス - 1ミリの移動で何が起きているか

86

Rust 127 メモリレイアウト - 型がバイト列になるとき

87

コンピュータ基礎 022 入出力 - CPUと外界の速度差

88

Rust 126 メモリという現実 - すべての制約はここに帰る

89

コンピュータ基礎 021 リンクとロード - 部品から動くプログラムへ

90

Rust 125 パニック - プログラムが自ら止まるとき

91

コンピュータ基礎 020 コンパイル - ソースコードから機械語へ

92

Rust 124 実行時の検査 - コンパイラが手放したもの

93

コンピュータ基礎 019 システムコール - プログラムとOSの境界

94

Rust 123 安全の境界 - 型とキーワードで引かれた線

95

コンピュータ基礎 018 プロセス - 「動いているプログラム」の正体

96

Rust 122 式指向 - すべてが値を返す

97

Rust 121 明示性 - 暗黙を拒否する言語

98

コンピュータ基礎 017 スタックとヒープ - プログラムのメモリの使い分け

99

Rust 120 ゼロコスト抽象 - 抽象化しても遅くならないという約束

100

コンピュータ基礎 016 キャッシュ - なぜメモリは遅いのか

101

コンピュータ基礎 015 アセンブリ - 機械語を人間が読める形に

102

【Rust音声学習 第119章】コンパイラとの協働 ― 敵ではなく設計相手

103

コンピュータ基礎 014 機械語 - CPUが理解する唯一の言葉

104

【Rust音声学習 第118章】終焉の確定性 ― 破棄は構造に埋め込まれている

105

コンピュータ基礎 013 命令サイクル - フェッチ、デコード、実行

106

【Rust音声学習 第117章】網羅性の強制 ― 考え漏らしを許さない

107

コンピュータ基礎 012 クロック - 心臓の鼓動、同期の仕組み

108

【Rust音声学習 第116章】合成可能性 ― 小さな部品を組み合わせる

109

コンピュータ基礎 011 アドレス - どうやって「場所」を指定するか

110

【Rust音声学習 第115章】コストの可視性 ― 暗黙の代償を排除する

111

コンピュータ基礎 010 メモリセル - 大量のビットをどう保持するか

112

【Rust音声学習 第114章】表現可能性の制限 ― 書けないことが設計を導く

113

コンピュータ基礎 009 レジスタ - CPUの中の小さな記憶

114

【Rust音声学習 第113章】効果の追跡 ― 何が起きるかを型に刻む

115

コンピュータ基礎 008 フリップフロップ - 1ビットを「覚えておく」とは

116

【Rust音声学習 第112章】線形性 ― あたいは一度だけ使われる資源である

117

【Rust音声学習 第111章】局所推論 ― その場だけで正しさがわかる

118

コンピュータ基礎 007 ALU - 足し算以外の演算はどうするか

119

【Rust音声学習 第110章】自己参照の壁 ― なぜRustはこれを嫌うか

120

コンピュータ基礎 006 加算器 - 0と1の足し算はどう実現するか

121

【Rust音声学習 第109章】変性 ― 長い寿命を短い寿命の代わりに使えるか

122

コンピュータ基礎 005 2進数 - なぜ10進数ではないのか

123

【Rust音声学習 第108章】ライフタイムとトレイト ― dyn Trait + 'aの意味

124

コンピュータ基礎 004 組み合わせる - ゲートを繋ぐと何ができるか

125

【Rust音声学習 第107章】借用チェッカーの目 ― コンパイラは何を見ているか

126

コンピュータ基礎 003 論理ゲート - NOT、AND、OR、XOR

127

【Rust音声学習 第106章】エラー型の設計 ― 呼び出し側の視点で選ぶ

128

コンピュータ基礎 002 トランジスタ - スイッチとして動く小さな素子

129

【Rust音声学習 第105章】型で状態を表現する ― 実行時チェックからコンパイル時保証へ

130

コンピュータ基礎 001 0と1は何か - 電圧の高低、それだけ

131

【Rust音声学習 第104章】ジェネリクスの境界 ― 抽象をどこまで広げるか

132

【Rust音声学習 第103章】enumとトレイトオブジェクト ― 閉じた世界と開いた世界

133

【Rust音声学習 第102章】拡張トレイトとシールドトレイト ― トレイトの応用設計

134

【Rust音声学習 第101章】関連型と型パラメータ ― 「一つだけ」か「複数」か

135

【Rust音声学習 第100章】スーパートレイト ― トレイトの階層

136

【Rust音声学習 第99章】オーファンルール ― トレイトの一貫性を守る壁

137

【Rust音声学習 第98章】マーカートレイト ― メソッドのない約束

138

【Rust音声学習 第97章】SendとSync ― 所有権がスレッド安全を生む

139

【Rust音声学習 第96章】ブランケット実装 ― 条件が満たされたら、能力が生まれる

140

【Rust音声学習 第95章】トレイトオブジェクト ― 型を消す抽象

141

【Rust音声学習 第94章】Sized ― コンパイラが最初に確認すること

142

【Rust音声学習 第93章】Default ― 型の始まりの姿

143

【Rust音声学習 第92章】Drop ― 所有権の最後の仕事

144

【Rust音声学習 第91章】Fn、FnMut、FnOnce ― クロージャは三つのトレイトである

145

【Rust音声学習 第90章】Iterator ― nextから生まれる世界

146

【Rust音声学習 第89章】Deref ― 透明になる型の境界

147

【Rust音声学習 第88章】std::convert ― 型と型の橋を架ける

148

【Rust音声学習 第87章】std::fmt ― 型が自分の見せ方を決める

149

【Rust音声学習 第86章】標準ライブラリ:外界 ― 環境、パス、時間

150

【Rust音声学習 第85章】標準ライブラリ:入出力 ― ReadとWriteがすべてを繋ぐ

151

【Rust音声学習 第84章】言語構文、プレリュード、組み込みマクロ ― useを書かない世界

152

【Rust音声学習 第83章】Tauriのビルドと配布 ― デスクトップアプリを届ける

153

【Rust音声学習 第82章】Tauriの状態管理 ― コマンドをまたぐデータの共有

154

【Rust音声学習 第81章】Tauri - Capabilities フロントエンドに何を許すか

155

【Rust音声学習 第80章】Tauri - コマンドとIPC RustとJavaScriptの境界

156

【Rust音声学習 第79章】Tauri入門 ― なぜブラウザを同梱しないのか

157

【Rust音声学習 第76章】関数の設計 ― 呼び出し側の視点で考える

158

【Rust音声学習 第75章】API設計 ― 使う人を守るインターフェース

159

【Rust音声学習 第74章】メモリ確保戦略 ― アロケータの正体と付き合い方

160

【Rust音声学習 第73章】clap ― コマンドラインインターフェースを型で設計する

161

【Rust音声学習 第72章】Tokio深掘り ― ランタイムの中で何が起きているか

162

【Rust音声学習 第71章】キャッシュと局所性 ― メモリの速度は均一ではない

163

【Rust音声学習 第69章】anyhowとthiserror ― エラー処理の二刀流

164

【Rust音声学習 第68章】名前が約束する「振る舞い」

165

【Rust音声学習 第67章】名前が教える「コストと所有権」

166

【Rust音声学習 第66章】serde ― すべてのデータが通る門

167

【Rust音声学習 第65章】イテレータパターン ― カスタム実装

168

【Rust音声学習 第64章】エラーハンドリングパターン ― 実践的な設計

169

【Rust音声学習 第63章】RAIIパターン ― リソース管理の定石

170

【Rust音声学習 第62章】ビルダーパターン ― 柔軟なオブジェクト構築

171

【Rust音声学習 第61章】属性とコンパイラ ― メタデータの活用

172

【Rust音声学習 第60章】型レベルプログラミング ― コンパイル時の計算

173

【Rust音声学習 第59章】型状態パターン ― 状態遷移を型で表現

174

【Rust音声学習 第58章】Newtypeパターン ― 型で意味を表現

175

【Rust音声学習 第57章】バインディング生成 ― 自動化ツール

176

【Rust音声学習 第56章】FFI基礎 ― Cとの連携

177

【Rust音声学習 第52章】非同期のエラーハンドリング ― ?演算子とasync

178

【Rust音声学習 第40章】手続き的マクロ概要 ― ディライブの裏側を知る

179

【Rust音声学習 第37章】テストの制御 ― 実行を操る

180

【Rust音声学習 第36章】結合テストとdocテスト ― 外から検証する

181

【Rust音声学習 第35章】ユニットテスト ― 部品を検査する

182

【Rust音声学習 第34章】crates.io ― ライブラリの宝庫

183

【Rust音声学習 第33章】Cargo.toml ― プロジェクトの設計図

184

【Rust音声学習 第31章】use ― 名前を整理する

185

【Rust音声学習 第29章】mod ― コードを分割する