実践 Rustプログラミング入門 [単行本]
    • 実践 Rustプログラミング入門 [単行本]

    • ¥3,960119 ゴールドポイント(3%還元)
    • 在庫あり2024年11月15日金曜日までヨドバシエクストリームサービス便(無料)がお届け
実践 Rustプログラミング入門 [単行本]
画像にマウスを合わせると上部に表示
100000009003317846

実践 Rustプログラミング入門 [単行本]

価格:¥3,960(税込)
ゴールドポイント:119 ゴールドポイント(3%還元)(¥119相当)
フォーマット:
お届け日:在庫あり今すぐのご注文で、2024年11月15日金曜日までヨドバシエクストリームサービス便(無料)がお届けします。届け先変更]詳しくはこちら
出版社:秀和システム
販売開始日: 2020/08/25
お取り扱い: のお取り扱い商品です。
ご確認事項:返品不可

カテゴリランキング

店舗受け取りが可能です
マルチメディアAkibaマルチメディア梅田マルチメディア博多にて24時間営業時間外でもお受け取りいただけるようになりました

実践 Rustプログラミング入門 [単行本] の 商品概要

  • 要旨(「BOOK」データベースより)

    C/C++の代わりとなる最新言語、その独特な仕様をわかりやすく解説。バグを出させないための仕組みを知り、Rustの深淵に踏み込む。特徴的なRustの概念を完全理解する。本書に載っているいろんな領域のサンプルで、組み込み開発からWebアプリケーションまで幅広く使われるRustを学ぶ。
  • 目次

    ■Part 1 入門
    ■Chapter1 プログラミング言語 Rust
    ●1-1 Rust の魅力
    ●1-2 とにかく実行速度が速い
    Rust は機械語に直接コンパイルされる
    ガベージコレクションをもたない
    「ゼロコスト抽象化」を追求している
    ●1-3 モダンな言語機能が一通り入っている
    不変・可変を明示的に制御できる
    filter, map などを使ってコレクションを操作できる
    代数的データ型とパターンマッチング
    強力な型推論
    トレイト
    ●1-4 OS から Web アプリケーションまで幅広く実装できる
    ●1-5 ツール群がとても充実している
    Cargo
    エディタサポート
    標準フォーマッタ rustfmt、標準リンター clippy
    ●1-6 「安全性」が強力に担保されている
    ●1-7 エディションという考え方によって互換性を担保している
    ●1-8 Rust の利用事例

    ■Chapter2 環境構築
    ●2-1 Webサイトで試せるRust - The Rust Playground
    ●2-2 開発環境を構築する
    rustupをインストール
    動作確認
    cc
    エディタ
    Rust Language Server(rls)
    rust-analyzer
    cargo-edit
    リリーストレインモデル:nightly, beta, stable
    ●2-3 まとめ

    ■Chapter3 Rustの基本
    ●3-1 基本的な文法
    基本的な型
    変数宣言
    制御構文
    関数
    マクロ
    ●3-2 Rustを支える言語機能
    ゼロコスト抽象化
    所有権と借用
    スレッド安全性
    非同期処理
    ●3-3 クレートとモジュール
    入門 クレート
    入門 モジュール
    ●3-4 Cargo - ビルドシステム・パッケージマネージャ
    サブコマンド
    Cargo.toml
    ●3-5 テスト
    assertマクロ
    パニックを発生させるテスト
    普段は無視するテスト
    testsモジュール
    testsディレクトリ
    ドキュメントのテスト

    ■Part 2 実践
    ■Chapter4 プログラムを作成する
    ●4-1 プロジェクトの準備
    アプリケーションの仕様
    プロジェクトの作成
    コマンドライン引数の処理
    ●4-2 計算ロジックを追加する
    アプリケーションの枠組みの作成
    逆ポーランド記法の計算ロジックの作成
    ●4-3 テストを書く
    ●4-4 エラーハンドリングを追加する
    エラーをハンドリングしない実装
    Resultでエラーを受け取る
    独自のエラーを定義する
    エラー処理クレートを使う
    逆ポーランド記法計算機へのanyhowの適用
    ●4-5 ファイルパスの表現について
    ●4-6 実行パスへのインストール
    ●4-7 まとめ

    ■Chapter5 Webアプリケーションの開発
    ●5-1 Webフレームワークのセットアップ
    Hello world!
    エラーハンドリングの定義
    ●5-2 テンプレートエンジン
    Web アプリの設計
    HTML テンプレート
    HTML の表示
    ●5-3 データベース
    テーブルの設計
    SQLite に Rust でアクセスする
    サーバーアプリケーションでアクセスする
    ●5-4 Todo アプリを仕上げる
    POST リクエストを受け取る
    ●5-5 Docker イメージの作成
    Dockerfile の作成
    イメージビルドの高速化
    イメージサイズの削減
    ●5-6 まとめ

    ■Chapter6 WebAssembly
    ●6-1 WebAssemblyとは
    ●6-2 開発の準備
    npm
    cargo-generate
    wasm-pack
    ●6-3 サンプルプログラム:マンデルブロ集合を描く
    マンデルブロ集合とは
    マンデルブロ集合を計算するプログラム
    wasmを呼び出すJavaScriptの実装
    JavaScriptから呼び出せるようにする
    JavaScriptとの速度比較
    ●6-4 サンプルプログラム:ナンバープレースを解く
    ナンバープレースとは
    ナンバープレースを解くプログラム
    Rustの実装
    JavaScript側の実装
    ●6-5 まとめ

    ■Chapter7 GUIアプリケーション
    ●7-1 RustにおけるGUIの現状
    GUIクレートの紹介
    IcedによるGUIの実装
    ●7-2 ウィンドウ
    プロジェクトディレクトリの準備
    アプリケーション基盤の作成
    main関数からの実行
    ●7-3 ウィジェット
    ウィジェットの配置
    フォントの使用
    ウィンドウのサイズ変更
    ●7-4 メッセージ
    メッセージと状態変数の定義
    メッセージの送信
    メッセージの受信
    ●7-5 サブスクリプション
    レシピの作成
    サブスクリプションの作成
    メッセージの受信
    時間の表示
    完成

    ■Chapter8 組み込みシステム
    ●8-1 環境構築
    ターゲットとするプラットフォームについて
    クロスコンパイルの環境構築
    QEMU
    ●8-2 Hello, world!
    ●8-3 Lチカ
    LEDの操作方法
    Peripheralsの取得
    Peripheralsの有効化
    GPIOの取得
    LEDの操作
    ウェイトを入れる
    Lチカのプログラム
    ●8-4 embedded-hal
    単一のPeripherals
    クロックの凍結
    型制約されたピン設定
    その他のデバイス
    ●8-5 組み込み向けクレート
    alloc
    heapless
    パニックハンドラ
    cortex-m-rtic
    ●8-6 参考資料

    ■Chapter9 開発ツール
    ●9-1 実践Cargo
    プロジェクトのディレクトリ構成
    フィーチャ
    依存クレートの修正
    ワークスペース
    サブコマンド
    ●9-2 フォーマッタ・リンター
    rustfmt
    clippy
    ●9-3 コードカバレッジ
    cargo-tarpaulin
    ●9-4 ベンチマーク・プロファイラ
    cargo bench
    criterion
    cargo-profiler
    flamegraph
    hyperfine
    ●9-5 CI
    Travis CI
    GitHub Actions

    ■Chapter10 プロダクトをリリースする
    ●10-1 シングルバイナリ
    ●10-2 ビルドの再現性
    Cargo.lock
    rust-toolchain
    ●10-3 バイナリサイズの最適化
    最適化のオプション
    サイズ比較
    ●10-4 Profile-Guided Optimization
    実行方法
    ●10-5 クレートの信頼性
    rustsec.org
    cargo-audit
    cargo-crev
    ●10-6 ファジング
    cargo-fuzz
    ●10-7 プライベートなクレート
    cargo publishを禁止する
    代替レジストリ

    ■Part 3 Tips
    ■Chapter11 いろいろなRustの発展的Tips
    ●11-1 マクロ
    宣言的マクロ
    手続きマクロ
    関数的マクロ
    deriveマクロ
    アトリビュートマクロ
    ●11-2 FFIによる他言語との連携
    サンプル:RustからC言語の関数を呼ぶ
    サンプル:RubyからRustの関数を呼ぶ
    FFIを使う上での注意点
    その他のバインディングを作るクレート
    まとめ
    ●11-3 パニック
    自己診断としてのパニック
    パニックとResultの使い分け
    パニックが起こるとどうなるか
    パニックを捕捉する
    巻き戻しが起こらない場合
    パニックハンドラを置き換える
    パニックとポイズニング
    パニックのまとめ
    ●11-4 unsafe
    UB (未定義動作)
    安全性と健全性
    unsafeアンチパターン
    契約で理解するunsafe
    unsafeの2つの使い方
    妥当性不変条件と即時UB
    unsafeをできるだけ安全に使うために
    valgrind
    デバッガを使う
    サニタイザ
    参考資料
    unsafeのまとめ
    ●11-5 Rust のエディション
    エディションとは何か?
    エディションの歴史
    今後予定されているエディション
    エディション間の互換性について
    Cargo でのエディションの設定方法
    ●11-6 Rust製のOSS
    ripgrep
    Alacritty
    Rust製のOSSでよく使われるライセンス
    cargo-license
    ●11-7 Rust のコミュニティ
    Rust のコミュニティについて
    Rust 商標ポリシーについて
    最新情報を得るために
    日本のコミュニティの現状
    ●11-8 Rust と競技プログラミング
    ●11-9 Rustを仕事で使う
    業務で使われている例
    自社の業務にRustを取り入れるためのヒント
    まとめ

    索 引


    ■Column 目 次
    機械語とは何か
    ゼロコスト抽象化
    関数型プログラミング言語 Rust?
    ビルトインマクロ
    PartialEqとPartialOrd
    2015エディションのモジュールシステム
    Rust の文字列型
    Rust におけるasync/await と非同期ランタイム
    Webフレームワーク
    汎用 SQL ライブラリ: diesel
    Rust とサーバーレスアプリケーション
    Rust と Prometheus
    wasm-bindgen
    web-sys
    Tierについて
    xargoとstd Aware Cargo
    cross によるクロスコンパイル
    svd2rust
    RustとOS
    バイナリにリビジョンを埋め込む
    清潔なマクロ
    2015エディションのマクロと名前解決
  • 出版社からのコメント

    今もっとも人気があり、Google、Amazon、Microsoftも注目している新言語。C/C++にかわる安全爆速の言語。
  • 内容紹介

    ■■C/C++の代わりとなるべき最新言語  ■■
    ■■その独特な仕様をわかりやすく解説。 ■■
    ■■これから Rust をはじめるすべての人へ■■

    ●いますぐ使いはじめるべきRustの5つ魅力
    ・とにかく実行速度が速い
    ・モダンな言語機能が一通り入っている
    ・OS から Web アプリケーションまで幅広く実装できる
    ・ツール群がとても充実している
    ・「安全性」が強力に担保されている

    ●Rustならではの言語仕様を完全理解
    ・Google、Microsoft、Amazonが いま注目する最新言語。その先進的考え方を体験する。
    ・バグを出させないための仕組みを知り、Rustの深淵に踏み込む。
    ・本書に載っているいろんな領域のサンプルで、組み込み開発からWebアプリケーションまで幅広く使われるRustを学ぶ。
    ・特徴的なRustの概念を完全理解する。
    「ゼロコスト抽象化」「ムーブセマンティクス」「クレート」
    「スレッド安全性」「パニック」「unsafe」「エディション」
    「所有権」「借用」「ライフタイム」「トレイト」……

    "安心安全の 爆速言語 Rust入門"
    edtion 2018対応。
  • 著者について

    初田 直也 (ハッタ ナオヤ)
    《初田 直也》
    株式会社PEZY ComputingのLSIエンジニア。業務ではHPC向けのプロセッサLSIを開発する傍らRustで業務をサポートするツールを書いている。最近開発したRustプロダクトはSystemVerilog関連ツールや自社プロセッサ向けの命令セットシミュレータなど。

    山口 聖弘 (ヤマグチ トシヒロ)
    《山口 聖弘》
    トレンドマイクロ株式会社のソフトウェアエンジニア。セキュリティコンテストの運営のためにOpenGLの可視化システムを作成したことをきっかけに、RustでもGUIや3D CGのプログラムを作成している。著書に『RustではじめるOpenGL』。

    吉川 哲史 (ヨシカワ サトシ)
    《吉川 哲史》
    フェアリーデバイセズ株式会社のソフトウェアエンジニア。自社サービスのバックエンドサーバー開発でのRust導入を皮切りに社内外でRustの普及活動中。自社のサーバーやデバイス向けプログラムをRustで品質向上させることが目下の目標。

    豊田 優貴 (トヨダ ユウキ)
    《豊田 優貴》
    株式会社サイバーエージェントで働くソフトウェアエンジニア。Rust.Tokyoオーガーナイザー。RustはAWS Lambdaなどで構成されるWebサーバーに使用している。Servoにコントリビュートするなどした。

    松本 健太郎 (マツモト ケンタロウ)
    《松本 健太郎》
    Webエンジニアとしてフォルシア株式会社で大手理化学機器商社のECサイト開発に従事。最近2年はインメモリデータベースをRustで開発している。RustのLT会Shinjuku.rs運営。主要な経験言語はC++、Python、JavaScript、Rust。

    原 将己 (ハラ マサキ)
    《原 将己》
    ウォンテッドリー株式会社所属。2016年頃からRustを書き始め、2017年からRustコンパイラ・標準ライブラリの実装を調べるようになる。これをきっかけにしてRustコンパイラの開発にコントリビューターとして携わるようになった。特にメジャーな貢献としては、1.35.0から導入されたFnOnceのBox化という機能がある。

    中村 謙弘 (ナカムラ ケンコウ)
    《中村 謙弘》
    Indeedのソフトウェアエンジニア。業務だけでなく、趣味で運営するWebサービスや、競技プログラミング等でRustを使っている。Googleのチーム対抗コンテストの世界決勝に招待された際にも、Rustでソルバーを書いてチームに貢献した。

    フォルシア株式会社 (フォルシア カブシキガイシャ)
    《フォルシア株式会社》
    2001年創業。社員の半数以上をフルスタックエンジニアが占める技術集団。検索プラットフォーム「Spook」の開発を中心に、データクレンジング、ダイナミックプライシングなどの事業を展開している。エンジニア主導でモダンな開発言語の導入を行っており、一部のプロジェクトではRustを商用利用。Rust.Tokyoへの協賛やShinjuku.rsの開催などコミュニティ活動も行っている。

実践 Rustプログラミング入門 [単行本] の商品スペック

商品仕様
出版社名:秀和システム
著者名:フォルシア(監修)
発行年月日:2020/09/01
ISBN-10:4798061700
ISBN-13:9784798061702
判型:B5
発売社名:秀和システム
対象:専門
発行形態:単行本
内容:電子通信
言語:日本語
ページ数:495ページ
縦:24cm
横:19cm
他の秀和システムの書籍を探す

    秀和システム 実践 Rustプログラミング入門 [単行本] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!