Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ

Book description

Rustは速度や安全性、並行性に優れたプログラミング言語で、ゲームエンジン、オペレーティングシステム、ブラウザなど、さまざまな分野で使われています。Rustは学習が難しい言語だと言われていますが、本書では小さなコマンドラインツールを多数書くことを通して、Rustの機能やテスト方法を素早く学ぶことができます。各章では、Rustの重要な概念を取り上げ、関連するコマンドラインツールを作成しながら学習を進めていきます。Rustの初心者から経験者まで、実際にプログラムを書きながらスキルを向上させたい人に最適な一冊です。

Table of contents

  1.  大扉
  2.  原書大扉
  3.  クレジット
  4.  賞賛の声
  5.  訳者まえがき
  6.  まえがき
  7.  1章 イントロダクション
  8.   1.1 Hello, world!
  9.   1.2 Rustプロジェクトのディレクトリ構成
  10.   1.3 Cargoを使ったプロジェクトの作成と実行
  11.      Cargoコマンド
  12.   1.4 統合テストの書き方と実行方法
  13.    1.4.1 プロジェクトに依存関係を追加する
  14.    1.4.2 プログラムの終了コードを確認する
  15.    1.4.3 プログラムの出力をテストする
  16.    1.4.4 終了コードはプログラムを組み合わせ可能にする
  17.   1.5 まとめ
  18.  2章 echoコマンド
  19.   2.1 echoの動作
  20.   2.2 プロジェクトの作成
  21.    2.2.1 コマンドライン引数へのアクセス
  22.    2.2.2 依存関係にclapを追加する
  23.    2.2.3 clapを使ったコマンドライン引数の解析
  24.    2.2.4 プログラムの出力を作成する
  25.   2.3 統合テストの作成
  26.    2.3.1 テスト用ファイルの作成
  27.    2.3.2 プログラムの出力を比較する
  28.    2.3.3 Result型の使用
  29.      スタックとヒープ
  30.   2.4 まとめ
  31.  3章 catコマンド
  32.   3.1 catの動作
  33.   3.2 プロジェクトの作成
  34.    3.2.1 テストから始める
  35.    3.2.2 ライブラリクレートの作成
  36.    3.2.3 引数の定義
  37.    3.2.4 ファイル引数の反復処理
  38.    3.2.5 ファイルまたは標準入力を開く
  39.    3.2.6 テストスイートの使い方
  40.   3.3 解答例
  41.    3.3.1 ファイルから行を読み込む
  42.    3.3.2 行番号の表示
  43.   3.4 今後の学び方
  44.   3.5 まとめ
  45.  4章 headコマンド
  46.   4.1 headの動作
  47.   4.2 プロジェクトの作成
  48.    4.2.1 文字列を数値に変換する機能の単体テスト
  49.    4.2.2 文字列をエラーに変換する
  50.    4.2.3 引数の定義
  51.    4.2.4 入力ファイルの処理
  52.    4.2.5 バイトと文字の読み込み
  53.   4.3 解答例
  54.    4.3.1 ファイルを1行ずつ読み込む
  55.    4.3.2 改行を保持したままファイルを読み込む
  56.    4.3.3 ファイルからバイトを読み込む
  57.    4.3.4 ファイルセパレーターを表示する
  58.   4.4 今後の学び方
  59.   4.5 まとめ
  60.  5章 wcコマンド
  61.   5.1 wcの動作
  62.   5.2 プロジェクトの作成
  63.      クロージャを引数に取るイテレータのメソッド
  64.    5.2.1 ファイルの反復処理
  65.    5.2.2 ファイルの要素を数える関数の作成とテスト
  66.   5.3 解答例
  67.    5.3.1 ファイルや標準入力の要素を数える
  68.    5.3.2 出力の整形
  69.   5.4 今後の学び方
  70.   5.5 まとめ
  71.  6章 uniqコマンド
  72.   6.1 uniqの動作
  73.   6.2 プロジェクトの作成
  74.    6.2.1 引数の定義
  75.      変数の生存期間
  76.    6.2.2 プログラムのテスト
  77.    6.2.3 入力ファイルの処理
  78.   6.3 解答例
  79.      クロージャと関数の比較
  80.   6.4 今後の学び方
  81.   6.5 まとめ
  82.  7章 findコマンド
  83.   7.1 findの動作
  84.   7.2 プロジェクトの作成
  85.    7.2.1 引数の定義
  86.    7.2.2 引数の検証
  87.    7.2.3 検索の実装
  88.   7.3 解答例
  89.   7.4 UnixとWindowsでの条件付きテスト
  90.   7.5 今後の学び方
  91.   7.6 まとめ
  92.  8章 cutコマンド
  93.   8.1 cutの動作
  94.   8.2 プロジェクトの作成
  95.    8.2.1 引数の定義
  96.    8.2.2 ポジションリストの解析
  97.    8.2.3 文字またはバイトの抽出
  98.    8.2.4 区切り文字を含むテキストファイルの解析
  99.   8.3 解答例
  100.    8.3.1 文字列から文字を選択する
  101.    8.3.2 文字列からバイトを選択する
  102.    8.3.3 csv::StringRecordからフィールドを選択する
  103.    8.3.4 最終版
  104.   8.4 今後の学び方
  105.   8.5 まとめ
  106.  9章 grepコマンド
  107.   9.1 grepの動作
  108.   9.2 プロジェクトの作成
  109.    9.2.1 引数の定義
  110.    9.2.2 検索対象のファイルを探す
  111.    9.2.3 入力にマッチする行を検索する
  112.   9.3 解答例
  113.   9.4 今後の学び方
  114.   9.5 まとめ
  115.  10章 commコマンド
  116.   10.1 commの動作
  117.   10.2 プロジェクトの作成
  118.    10.2.1 引数の定義
  119.    10.2.2 入力ファイルを検証してから開く
  120.    10.2.3 ファイルの処理
  121.   10.3 解答例
  122.   10.4 今後の学び方
  123.   10.5 まとめ
  124.  11章 tailコマンド
  125.   11.1 tailの動作
  126.   11.2 プロジェクトの作成
  127.    11.2.1 引数の定義
  128.    11.2.2 正負の数値引数の解析
  129.    11.2.3 符号が付きうる整数への正規表現を用いたマッチング
  130.    11.2.4 コマンドライン引数の解析と検証
  131.    11.2.5 ファイルの処理
  132.    11.2.6 ファイルの行数とバイト数を数える
  133.    11.2.7 表示開始行の特定
  134.    11.2.8 表示開始バイトの特定
  135.    11.2.9 巨大な入力ファイルを使ったプログラムのテスト
  136.   11.3 解答例
  137.    11.3.1 ファイルの行数とバイト数を数える
  138.    11.3.2 表示開始位置の特定
  139.    11.3.3 行の表示
  140.    11.3.4 バイトの表示
  141.    11.3.5 解答例のベンチマーキング
  142.   11.4 今後の学び方
  143.   11.5 まとめ
  144.  12章 fortuneコマンド
  145.   12.1 fortuneの動作
  146.   12.2 プロジェクトの作成
  147.    12.2.1 引数の定義
  148.      乱数生成器のシード設定
  149.    12.2.2 入力ソースの検索
  150.    12.2.3 ファイルを読み込む
  151.    12.2.4 引用句のランダムな選択
  152.    12.2.5 パターンに一致する引用句の表示
  153.   12.3 解答例
  154.   12.4 今後の学び方
  155.   12.5 まとめ
  156.  13章 calコマンド
  157.   13.1 calの動作
  158.   13.2 プロジェクトの作成
  159.    13.2.1 引数の定義と検証
  160.    13.2.2 プログラムを書く
  161.   13.3 解答例
  162.   13.4 今後の学び方
  163.   13.5 まとめ
  164.  14章 lsコマンド
  165.   14.1 lsの動作
  166.   14.2 プロジェクトの作成
  167.    14.2.1 引数の定義
  168.    14.2.2 ファイルの検索
  169.    14.2.3 長形式の整形
  170.    14.2.4 パーミッションの8進表記
  171.    14.2.5 長形式のテスト
  172.   14.3 解答例
  173.   14.4 難易度の高いテストへの挑戦
  174.   14.5 今後の学び方
  175.   14.6 まとめ
  176.  付録A clapの新しいAPI
  177.   A.1 Builder APIとDerive API
  178.   A.2 Derive APIを使う準備
  179.   A.3 Derive APIの基本
  180.   A.4 #[command]属性
  181.   A.5 引数の定義
  182.    A.5.1 位置引数
  183.    A.5.2 値を取るオプション
  184.    A.5.3 値を取らないオプション
  185.   A.6 おわりに
  186.  エピローグ
  187.  著者紹介
  188.  奥付

Product information

  • Title: Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ
  • Author(s): Ken Youens-Clark, 中山 光樹
  • Release date: January 2024
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784814400584

You might also like

book

初めてのTypeScript ―型安全なJavaScriptでWeb開発を加速する

by Josh Goldberg, 今村 謙士, 原 隆文

TypeScriptの本格的な入門書。TypeScriptは、世界で最もよく使われ、かつ最も好まれているプログラミング言語の1つです。本書では、JavaScriptの基礎的な知識のあるプログラマーを対象に、「型」や「型システム」の基本から、明快かつ包括的にTypeScriptを解説します。TypeScriptはバグやタイプミスを防ぎ、コードを読みやすくするのに有用なだけでなく、JavaScriptがどのように動くべきかを宣言し、それを維持するのに役立つ優れたシステムです。読者は本書を読むことで、TypeScriptの基礎と最も重要な機能をマスターできるでしょう。

book

ユニコーン企業のひみつ ―Spotifyで学んだソフトウェアづくりと働き方

by Jonathan Rasmusson, 島田 浩二, 角谷 信太郎

大規模な成功を収めているテック企業(ユニコーン企業)は、スタートアップで機能していたテクニックをエンタープライズ企業レベルにまでスケールさせる方法を見いだし、日々実践しています。Amazon、Facebook、Googleなどは、何万人もの従業員を抱えているにもかかわらず、スタートアップのように働いています。本書はSpotifyでアジャイルコーチやエンジニアの経験を持つ著者がユニコーン企業のソフトウェアづくりと働き方を解説します。 ミッションによってチームに目的を持たせ、スクワッドに権限を与え、信頼する。カンパニーベットを通じて大規模な取り組みを調整する。このような働き方とそれを実現するための文化のあり方を解説し、複数チームが連携しながら質の高いプロダクトを早くリリースし、迅速に技術革新を行うための方法を学びます。 プロダクトのデリバリーにフォーカスする世界有数のテック企業の事例を紹介する本書は、デリバリープロセスやプロダクト組織自体を改善したいエンジニアやマネージャー、経営リーダー必携の一冊です。

book

クラウドデータレイク ―無限の可能性があるデータを無駄なく活かすアーキテクチャ設計ガイド

by Rukmani Gopalan, 丸本 健二郎, 長尾 高弘

大量のデータを効率的に管理し、ビッグデータ分析、機械学習、AIなどの高度なデータ分析を実現するためのデータ基盤として、クラウドデータレイクが注目されています。スケーラビリティと多様なデータ管理機能を兼ね備えたクラウドデータレイクは、現代のデータ分析ニーズにマッチする技術として、データの重要性が増す昨今、多くの企業の関心を集めています。本書は、クラウドデータレイクのセットアップ、管理、ガバナンスについて、包括的に解説した実践的なガイドです。設計におけるポイントやベストプラクティス、データフォーマットとパフォーマンスの最適化、コスト管理、セキュリティなど、クラウドデータレイクの構築方法を、架空の組織をモデルにわかりやすく解説します。クラウドデータレイクの構築とデータアーキテクチャの実践的なノウハウをコンパクトにまとめた1冊です。

book

エンジニアリングマネージャーのしごと ―チームが必要とするマネージャーになる方法

by James Stanier, 吉羽 龍太郎, 永瀬 美穂, 原田 騎郎, 竹葉 美沙

本書は、エンジニアリングチームのマネジメントの仕事全般を紹介し、エンジニアリングマネージャーに必要な考え方やスキルを解説します。はじめに、自分の役割と組織のさまざまな部分がどう関係するかを理解し、習慣を整えることで自分自身を管理することを学びます。そして、日々のマネジメント業務で必要なツールとプロセスを紹介し、スタッフとの関係性の構築、モチベーションの理解、評価や採用などを解説します。さらに社内政治や難しい状況での判断、その後のキャリアについて説明します。 マネジメントのさまざまな段階に沿って、日々の仕事に取り入れられる実践的なアドバイスを紹介する本書は、エンジニアリングチームのマネージャーに必携の一冊です。