Book description
Rustは速度や安全性、並行性に優れたプログラミング言語で、ゲームエンジン、オペレーティングシステム、ブラウザなど、さまざまな分野で使われています。Rustは学習が難しい言語だと言われていますが、本書では小さなコマンドラインツールを多数書くことを通して、Rustの機能やテスト方法を素早く学ぶことができます。各章では、Rustの重要な概念を取り上げ、関連するコマンドラインツールを作成しながら学習を進めていきます。Rustの初心者から経験者まで、実際にプログラムを書きながらスキルを向上させたい人に最適な一冊です。
Table of contents
- 大扉
- 原書大扉
- クレジット
- 賞賛の声
- 訳者まえがき
- まえがき
- 1章 イントロダクション
- 1.1 Hello, world!
- 1.2 Rustプロジェクトのディレクトリ構成
- 1.3 Cargoを使ったプロジェクトの作成と実行
- Cargoコマンド
- 1.4 統合テストの書き方と実行方法
- 1.4.1 プロジェクトに依存関係を追加する
- 1.4.2 プログラムの終了コードを確認する
- 1.4.3 プログラムの出力をテストする
- 1.4.4 終了コードはプログラムを組み合わせ可能にする
- 1.5 まとめ
- 2章 echoコマンド
- 2.1 echoの動作
- 2.2 プロジェクトの作成
- 2.2.1 コマンドライン引数へのアクセス
- 2.2.2 依存関係にclapを追加する
- 2.2.3 clapを使ったコマンドライン引数の解析
- 2.2.4 プログラムの出力を作成する
- 2.3 統合テストの作成
- 2.3.1 テスト用ファイルの作成
- 2.3.2 プログラムの出力を比較する
- 2.3.3 Result型の使用
- スタックとヒープ
- 2.4 まとめ
- 3章 catコマンド
- 3.1 catの動作
- 3.2 プロジェクトの作成
- 3.2.1 テストから始める
- 3.2.2 ライブラリクレートの作成
- 3.2.3 引数の定義
- 3.2.4 ファイル引数の反復処理
- 3.2.5 ファイルまたは標準入力を開く
- 3.2.6 テストスイートの使い方
- 3.3 解答例
- 3.3.1 ファイルから行を読み込む
- 3.3.2 行番号の表示
- 3.4 今後の学び方
- 3.5 まとめ
- 4章 headコマンド
- 4.1 headの動作
- 4.2 プロジェクトの作成
- 4.2.1 文字列を数値に変換する機能の単体テスト
- 4.2.2 文字列をエラーに変換する
- 4.2.3 引数の定義
- 4.2.4 入力ファイルの処理
- 4.2.5 バイトと文字の読み込み
- 4.3 解答例
- 4.3.1 ファイルを1行ずつ読み込む
- 4.3.2 改行を保持したままファイルを読み込む
- 4.3.3 ファイルからバイトを読み込む
- 4.3.4 ファイルセパレーターを表示する
- 4.4 今後の学び方
- 4.5 まとめ
- 5章 wcコマンド
- 5.1 wcの動作
- 5.2 プロジェクトの作成
- クロージャを引数に取るイテレータのメソッド
- 5.2.1 ファイルの反復処理
- 5.2.2 ファイルの要素を数える関数の作成とテスト
- 5.3 解答例
- 5.3.1 ファイルや標準入力の要素を数える
- 5.3.2 出力の整形
- 5.4 今後の学び方
- 5.5 まとめ
- 6章 uniqコマンド
- 6.1 uniqの動作
- 6.2 プロジェクトの作成
- 6.2.1 引数の定義
- 変数の生存期間
- 6.2.2 プログラムのテスト
- 6.2.3 入力ファイルの処理
- 6.3 解答例
- クロージャと関数の比較
- 6.4 今後の学び方
- 6.5 まとめ
- 7章 findコマンド
- 7.1 findの動作
- 7.2 プロジェクトの作成
- 7.2.1 引数の定義
- 7.2.2 引数の検証
- 7.2.3 検索の実装
- 7.3 解答例
- 7.4 UnixとWindowsでの条件付きテスト
- 7.5 今後の学び方
- 7.6 まとめ
- 8章 cutコマンド
- 8.1 cutの動作
- 8.2 プロジェクトの作成
- 8.2.1 引数の定義
- 8.2.2 ポジションリストの解析
- 8.2.3 文字またはバイトの抽出
- 8.2.4 区切り文字を含むテキストファイルの解析
- 8.3 解答例
- 8.3.1 文字列から文字を選択する
- 8.3.2 文字列からバイトを選択する
- 8.3.3 csv::StringRecordからフィールドを選択する
- 8.3.4 最終版
- 8.4 今後の学び方
- 8.5 まとめ
- 9章 grepコマンド
- 9.1 grepの動作
- 9.2 プロジェクトの作成
- 9.2.1 引数の定義
- 9.2.2 検索対象のファイルを探す
- 9.2.3 入力にマッチする行を検索する
- 9.3 解答例
- 9.4 今後の学び方
- 9.5 まとめ
- 10章 commコマンド
- 10.1 commの動作
- 10.2 プロジェクトの作成
- 10.2.1 引数の定義
- 10.2.2 入力ファイルを検証してから開く
- 10.2.3 ファイルの処理
- 10.3 解答例
- 10.4 今後の学び方
- 10.5 まとめ
- 11章 tailコマンド
- 11.1 tailの動作
- 11.2 プロジェクトの作成
- 11.2.1 引数の定義
- 11.2.2 正負の数値引数の解析
- 11.2.3 符号が付きうる整数への正規表現を用いたマッチング
- 11.2.4 コマンドライン引数の解析と検証
- 11.2.5 ファイルの処理
- 11.2.6 ファイルの行数とバイト数を数える
- 11.2.7 表示開始行の特定
- 11.2.8 表示開始バイトの特定
- 11.2.9 巨大な入力ファイルを使ったプログラムのテスト
- 11.3 解答例
- 11.3.1 ファイルの行数とバイト数を数える
- 11.3.2 表示開始位置の特定
- 11.3.3 行の表示
- 11.3.4 バイトの表示
- 11.3.5 解答例のベンチマーキング
- 11.4 今後の学び方
- 11.5 まとめ
- 12章 fortuneコマンド
- 12.1 fortuneの動作
- 12.2 プロジェクトの作成
- 12.2.1 引数の定義
- 乱数生成器のシード設定
- 12.2.2 入力ソースの検索
- 12.2.3 ファイルを読み込む
- 12.2.4 引用句のランダムな選択
- 12.2.5 パターンに一致する引用句の表示
- 12.3 解答例
- 12.4 今後の学び方
- 12.5 まとめ
- 13章 calコマンド
- 13.1 calの動作
- 13.2 プロジェクトの作成
- 13.2.1 引数の定義と検証
- 13.2.2 プログラムを書く
- 13.3 解答例
- 13.4 今後の学び方
- 13.5 まとめ
- 14章 lsコマンド
- 14.1 lsの動作
- 14.2 プロジェクトの作成
- 14.2.1 引数の定義
- 14.2.2 ファイルの検索
- 14.2.3 長形式の整形
- 14.2.4 パーミッションの8進表記
- 14.2.5 長形式のテスト
- 14.3 解答例
- 14.4 難易度の高いテストへの挑戦
- 14.5 今後の学び方
- 14.6 まとめ
- 付録A clapの新しいAPI
- A.1 Builder APIとDerive API
- A.2 Derive APIを使う準備
- A.3 Derive APIの基本
- A.4 #[command]属性
- A.5 引数の定義
- A.5.1 位置引数
- A.5.2 値を取るオプション
- A.5.3 値を取らないオプション
- A.6 おわりに
- エピローグ
- 著者紹介
- 奥付
Product information
- Title: Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ
- Author(s):
- Release date: January 2024
- Publisher(s): O'Reilly Japan, Inc.
- ISBN: 9784814400584
You might also like
book
初めてのTypeScript ―型安全なJavaScriptでWeb開発を加速する
TypeScriptの本格的な入門書。TypeScriptは、世界で最もよく使われ、かつ最も好まれているプログラミング言語の1つです。本書では、JavaScriptの基礎的な知識のあるプログラマーを対象に、「型」や「型システム」の基本から、明快かつ包括的にTypeScriptを解説します。TypeScriptはバグやタイプミスを防ぎ、コードを読みやすくするのに有用なだけでなく、JavaScriptがどのように動くべきかを宣言し、それを維持するのに役立つ優れたシステムです。読者は本書を読むことで、TypeScriptの基礎と最も重要な機能をマスターできるでしょう。
book
ユニコーン企業のひみつ ―Spotifyで学んだソフトウェアづくりと働き方
大規模な成功を収めているテック企業(ユニコーン企業)は、スタートアップで機能していたテクニックをエンタープライズ企業レベルにまでスケールさせる方法を見いだし、日々実践しています。Amazon、Facebook、Googleなどは、何万人もの従業員を抱えているにもかかわらず、スタートアップのように働いています。本書はSpotifyでアジャイルコーチやエンジニアの経験を持つ著者がユニコーン企業のソフトウェアづくりと働き方を解説します。 ミッションによってチームに目的を持たせ、スクワッドに権限を与え、信頼する。カンパニーベットを通じて大規模な取り組みを調整する。このような働き方とそれを実現するための文化のあり方を解説し、複数チームが連携しながら質の高いプロダクトを早くリリースし、迅速に技術革新を行うための方法を学びます。 プロダクトのデリバリーにフォーカスする世界有数のテック企業の事例を紹介する本書は、デリバリープロセスやプロダクト組織自体を改善したいエンジニアやマネージャー、経営リーダー必携の一冊です。
book
クラウドデータレイク ―無限の可能性があるデータを無駄なく活かすアーキテクチャ設計ガイド
大量のデータを効率的に管理し、ビッグデータ分析、機械学習、AIなどの高度なデータ分析を実現するためのデータ基盤として、クラウドデータレイクが注目されています。スケーラビリティと多様なデータ管理機能を兼ね備えたクラウドデータレイクは、現代のデータ分析ニーズにマッチする技術として、データの重要性が増す昨今、多くの企業の関心を集めています。本書は、クラウドデータレイクのセットアップ、管理、ガバナンスについて、包括的に解説した実践的なガイドです。設計におけるポイントやベストプラクティス、データフォーマットとパフォーマンスの最適化、コスト管理、セキュリティなど、クラウドデータレイクの構築方法を、架空の組織をモデルにわかりやすく解説します。クラウドデータレイクの構築とデータアーキテクチャの実践的なノウハウをコンパクトにまとめた1冊です。
book
エンジニアリングマネージャーのしごと ―チームが必要とするマネージャーになる方法
本書は、エンジニアリングチームのマネジメントの仕事全般を紹介し、エンジニアリングマネージャーに必要な考え方やスキルを解説します。はじめに、自分の役割と組織のさまざまな部分がどう関係するかを理解し、習慣を整えることで自分自身を管理することを学びます。そして、日々のマネジメント業務で必要なツールとプロセスを紹介し、スタッフとの関係性の構築、モチベーションの理解、評価や採用などを解説します。さらに社内政治や難しい状況での判断、その後のキャリアについて説明します。 マネジメントのさまざまな段階に沿って、日々の仕事に取り入れられる実践的なアドバイスを紹介する本書は、エンジニアリングチームのマネージャーに必携の一冊です。