More Effective C# 6.0/7.0(Bill Wagner 吉川 邦夫 吉川 邦夫)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. More Effective C# 6.0/7.0

More Effective C# 6.0/7.0


翻訳
監修

形式:
書籍
発売日:
ISBN:
9784798153988
定価:
3,740(本体3,400円+税10%)
仕様:
B5変・320ページ
カテゴリ:
プログラミング・開発
キーワード:
#プログラミング,#開発環境,#開発手法,#Web・アプリ開発
紙の書籍

API設計、非同期プログラミング、動的プログラミング、
並列処理をクールに使い倒す50の方法

【本書の内容】
“Effective SOFTWARE DEVELOPMNET SERIES”のC#エディション最新版。
もちろん、最新機能の完全網羅ではなく、日常的に遭遇しそうな問題を
解決する、実用的なアドバイスをさまざまなサンプルとともに提供します。

通常、これまでのバージョンにおいて、実装するにあたって困難だったり
手順が入り組んでいるなど、開発者の負担を軽減するために導入されるのが
新機能です。

馴染みのやり方ではなく、新しい手法を導入するのは心理的なハードルが
上がる場合もありますが、本書ではそのハードルをさげるため、なぜ言語の
補強によってより良い方法が可能になったのかまで、詳説しています。

【本書のポイント】
・最新版C#に搭載された新機能を把握できる
・上記新機能を的確に使えるようになる
・なぜそうしたほうがよいのか、を理屈ベースで理解できる
・よりよいプロダクトを構築できるようになる

【本書の目次】
第1章:データの型
第2章:API設計
第3章:タスクベースの非同期プログラミング
第4章:並列処理
第5章:動的プログラミング
第6章:グローバルなC#コミュニティに参加しよう

第1章 データ型の扱い
 項目1 アクセス可能なデータメンバーの代わりにプロパティを使おう
 項目2 可変データには暗黙のプロパティを使おう
 項目3 値型は可変より不変が好ましい
 項目4 値型と参照型の違いを正しく理解しよう
 項目5 値型では0も有効な状態にしよう
 項目6 プロパティはデータらしく実装しよう
 項目7 匿名型やタプルは型のスコープを限定するのに使える
 項目8 匿名型にローカル関数を定義する
 項目9 さまざまな同一性が、どういう関係にあるかを把握しよう
 項目10 GetHashCode()の罠に注意

第2章 API設計
 項目11 独自のAPIでは変換演算子を定義しない
 項目12 省略可能なパラメータを使ってメソッドの多重定義を減らそう
 項目13 独自の型は可視性を制限しよう
 項目14 継承するよりインターフェイスを定義して実装しよう
 項目15 インターフェイスメソッドと仮想メソッドの違い
 項目16 通知のイベントパターンを実装しよう
 項目17 内部オブジェクトへの参照を返さないように注意しよう
 項目18 イベントハンドラよりオーバーライドが好ましいとき
 項目19 基底クラスに定義のあるメソッドを多重定義しない
 項目20 オブジェクトの結合はイベントによって実行時に強まる
 項目21 イベントをvirtual宣言するのは避けよう
 項目22 明瞭で最小で完全なメソッドグループを作ろう
 項目23 部分クラスにはコンストラクタ、ミューテータ、イベントハンドラの部分メソッドを入れる
 項目24 ICloneableは設計の選択肢を狭めるので避けよう
 項目25 配列をパラメータとして使うのはparams配列だけにしよう
 項目26 イテレータや非同期メソッドのエラーは、ローカル関数で即座に報告できる

第3章 タスクベースの非同期プログラミング
 項目27 非同期処理には非同期メソッドを使おう
 項目28 async voidメソッドを書くべからず
 項目29 同期メソッドと非同期メソッドの混成を避けよう
 項目30 非同期処理に不要なスレッド割り当てを避けよう
 項目31 不要なコンテクスト切り替えを避けよう
 項目32 複数のTaskオブジェクトで非同期処理を構成する
 項目33 タスクのキャンセルや進捗報告を行うプロトコルを実装する
 項目34 総称的なValueTask型で非同期処理の戻り値をキャッシュする

第4章 並列処理
 項目35 PLINQによる並列アルゴリズムの実装を学ぼう
 項目36 並列アルゴリズムは例外を考慮して構築しよう
 項目37 スレッドを作る代わりにスレッドプールを使おう
 項目38 スレッド間通信にはBackgroundWorkerを使おう
 項目39 XAML環境でのスレッド間コールを理解しよう
 項目40 同期をとるにはlock()を最初の選択肢にしよう
 項目41 スコープが最小限のロックハンドルを使おう
 項目42 ロックしたセクションで未知のコードを呼び出さない

第5章 動的プログラミング
 項目43 動的型付けの長所と短所を理解しよう
 項目44 動的型付けで、ジェネリックな型パラメータの実行時の型を活用する
 項目45 データ駆動の動的な型は、DynamicObjectかIDynamicMetaObjectProviderで作ろう
 項目46 Expression APIの使い方を理解しよう
 項目47 パブリックAPIでは、動的オブジェクトを最小限にしよう

第6章 グローバルなC#コミュニティに参加しよう
 項目48 人気のある答えではなく、最良の答えを探そう
 項目49 言語の仕様と実装に参加しよう
 項目50 アナライザによる実践の自動化を考慮しよう

本書は付属データの提供はございません。

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。
この商品の「よくある質問」はありません。
正誤表の登録はありません。

感想・レビュー

YUKI さん

2022-04-01

業務でやたら非同期処理を触るようになり、ちゃんと勉強しようと非同期処理をメインに読む。複数タスクまわりの説明は勉強になりました。その後に改めてMicrosoftの非同期処理の説明を読むと頭に入りやすかった。まだ読んでない箇所もあるし、何度も再読しそうな1冊。

いえっさ さん

2022-04-01

相変わらずナイスなシリーズでした。 async/await周りの話、dynamicの取り扱いについては非常に為になった。

fjt7tdmi さん

「項目49 言語の仕様と実装に参加しよう」わらう