エンジニアのパワーアップ読書 C#編

2012年8月号のSoftware Designの特集はエンジニアのパワーアップ読書ということで、エンジニア向け夏休み課題図書特集な訳だが、.NETやWindowsに関しては華麗にスルーされている。まぁ予想通りなんだけど、カチンと来たので自分でまとめてみる。

ということでC#編。

独断と偏見で選ばしてもらいます。

〔速攻入門〕 C#プログラミング すぐに現場で使える知識
〔速攻入門〕 C#プログラミング すぐに現場で使える知識 中 博俊 猪股 健太郎 岩永 信之 山本 康彦

技術評論社 2012-03-09
売り上げランキング : 240835

Amazonで詳しく見る by G-Tools

既にC++やJavaといった中括弧言語に習熟していて、これからC#を学ぼうとしている人にとっては最適な1冊。C#の入門書籍はそれなりに出ているのですが、多くは2005年以前に企画出版されたものが多く、特にC# 3.0、特にLinq登場以降の「生まれ変わった」C#を前提とした入門書はほとんど無いのが現状です。しかしながら、本書はまさにLinq登場以降のC#を対象として書かれた、日本人著者による初の入門書であり、他の入門何とかは読まなくていいので、C#の学習を始めるなら、プログラミング自体の初心では無い限りこれから読み始めるべきです。今更身につける必要がないものについては学習する必要は無いのです。

Effective C# 4.0
Effective C# 4.0 ビル・ワグナー 鈴木 幸敏

翔泳社 2011-02-16
売り上げランキング : 124832

Amazonで詳しく見る by G-Tools

入門の次に読み進めるべき1冊。

より良きC#のコードを書くためのプラクティスが詰め込まれています。内容的にはEffective C#の内容をC# 4.0に合わせて改訂したものになっています。

言語の学習を初めてある程度の時間が過ぎたタイミングで、周り熟練者がいないと、本来どう書くべきかというノウハウは伝達されず、誤った方向に進みがちなのですが、C#の熟達者が周りにいない環境であれば本書のプラクティスを参照し、実践していけばそうならずに済むと思います。

【省エネ対応】 C#プログラムの効率的な書き方
【省エネ対応】 C#プログラムの効率的な書き方 川俣 晶

技術評論社 2012-01-19
売り上げランキング : 202002

Amazonで詳しく見る by G-Tools

C#は、C# 2.0と.Net Framework 2.0で総称性(Generic)の追加、Action(T)などのユーティリティクラスによるデリゲートの強化などの下準備が行われ、その下準備を元にC# 3.0でLinqが追加されました。Linqとは何かと言えば、手続き型言語において使いやすくしたモナドなのですが、モナド云々はとりあえずおいておくとしてもLinq登場の前と後ではC#という言語が全く変わったという思いがします。

本書はこのLinqにフォーカスを当て、それに特化したC#プログラミングの解説書です。潔くLinq to Objectの話しか出てきません。多のLinq解説書が、Linq To xmlやLinq to SQLに多くのページをさくなか、見向きもせずにKinq to Object一本槍です。

Linqの可能性やそのパワーについて知りたい、学びたい方は手に取ってみるのが良いと思います。

ただ、本書には読後Linq星人になる副作用があります。

Programming Reactive Extensions and LINQ
Programming Reactive Extensions and LINQ Jesse Liberty Paul Betts

Apress 2011-10-26
売り上げランキング : 102673

Amazonで詳しく見る by G-Tools

そうして、Linq星人になってしまった人に送る一冊です。

Reactive ExtensionsはいわばLinq to Eventsとでも言うべきもので、イベント処理や時間差のある処理などをLinqの構文で簡潔に記述できるようにするライブラリです。

Rxは慣れしたんではいるものの、構文や実際のコード記述としてはあまり綺麗とは言えないイベント処理やタイマー処理などの記述をLinqで簡潔にするだけでは無くて、イベントやタイマー処理に対する我々の持つパラダイムの変更を強いるものでもあります。

Rxは現状Windows Phone 7の環境でも先行して標準的に用意されており、今後のWinRTの環境でも従来のイベント処理的な記述に変わって使用されていくものと思っていますので、学習を進めておいて方が良いのでは無いかと思います。

C# Programming Language (Covering C# 4.0), The (Microsoft Windows Development Series)
C# Programming Language (Covering C# 4.0), The (Microsoft Windows Development Series) Anders Torgersen, Mads Wiltamuth, Scott Golde, Peter Hejlsberg

Addison-Wesley Professional 2010-10-31
売り上げランキング : 30082

Amazonで詳しく見る by G-Tools

C#の言語仕様決定者たち自らによるマイクロソフトが提供するC#の言語仕様書です。自身がC#er(C#使い)であると名乗るのであれば、身近に置いておくべき一冊です。ハードカバーのなかなか良い装丁なので、電車の中で読むのには全く適していませんが、所有する喜びが得られます。

実際本書でC#の言語仕様を確認することはほとんど無いとは思いますが、大事なのは、本書の中にちりばめられたコラムで、著者だけで無く、DonBoxなどの著名人がC#やCLRについてその仕様決定のいきさつや裏話について書いており、それを楽しみに読むのが個人的には良いかなと思います。

Essential .NET ― 共通言語ランタイムの本質
Essential .NET ― 共通言語ランタイムの本質 ドン・ボックス クリス・セルズ Don Box Chris Sells 吉松 史彰

日経BPソフトプレス 2003-06
売り上げランキング : 701693

Amazonで詳しく見る by G-Tools

.NET FrameworkはMSのJITコンパイル技術を基盤とした高速なJVMが、SUNから起こされた訴訟の判決でこの世から消される事になった後、事実上その資産を継承する形で「より良きCOM」として登場したものです。ですので、JITやGCの考え方や構造はそのJVMに近く、WinFormはMSのJavaように開発されたGUIライブラリのWCF(今のWCFじゃ無いよ)に限りなく似たものでした。

本書はCOM/DCOMの専門家であるDon BoxがよりよきCOMとしての視点で.NET Framework、特にCLRに対する専門的な解説を行ったもので、日本語副題の方が正直に内容を示していて、Essential .NETといいながら全然Essentialではないという内容です。ただ、現状入手はそれなりに大変だと思います。

C#がCLRというランタイムの上で動くものである以上、ランタイムについてどれだけ深く知っているかが、より効率的で安定して動作するプログラムを開発するためのキーの一つなるので、本書でCLRの内部動作について学習してみると良いかもしれません。

プログラミング .NET Framework 第3版 (マイクロソフト公式解説書)
プログラミング .NET Framework  第3版 (マイクロソフト公式解説書) Jeffrey Richter 藤原 雄介

日経BP社 2011-02-03
売り上げランキング : 158385

Amazonで詳しく見る by G-Tools

CLRの動作解説書です。

先ほども書きましたがC#で記述したプログラムがCLR上で動作する以上、ランタイム環境であるCLRを自分の書いたプログラムがどう利用し、逆にCLRは自分の書いたプログラムどう動作させているのかを理解することは、中級以上に上がっていくために必須です。

本書も大著ですが、CLRとBCLを理解するにはこれ以上の書籍は無く、本書も必ず所有し、熟読すべき1冊になると思います。

ということで、SDの特集に合わせてC#プログラマ向けという視点で独断と偏見で選んでみました。異論反論いろいろあると思いますが、みんなでこれ読んだ方が良くないというのを出し合うのがいいと思いますので、後に続く人がいるといいな。

特にVB編をお待ちしています!

2 thoughts on “エンジニアのパワーアップ読書 C#編”

  1. ピンバック: .NET Clips

コメントを残す