#プログラミングの冒険 [実践編]
――ただ書けるだけじゃ物足りない!!

書籍の概要

この本の概要

プログラミングの入門書は多く,確かにそれを読むことでプログラムを書くことはできるようになりますが,まだ十分ではありません。「書ける」の先にこそ多くの問題が待っています。効率よく作業を進めるにはどうすればよいか,品質を保証するにはどうすればよいか,同じ目的のために複数の技術がある場合はどう使い分ければよいか,複数の書き方がある場合はどれを使えばよいか,ドキュメントは何を書けばよいのか……など,これらのことを踏まえなければ「完成」には辿り着けません。本書が,入門レベルから実践の場への橋渡しをします。

こんな方におすすめ

  • ひととおりC#の文法は学んだが実戦経験に乏しいというC#プログラマー
  • スキルアップを目指す現役のC#プログラマー

目次

  • It'S Showtime!

Part 1 基本に潜む罠編 《運動会のプログラムで理解しよう》

  • Episode 1 選手宣誓は必ず最初に ――宣言処理
  • Episode 2 トラックに白線を引こう ――データ構造の定義
  • Episode 3 開会式の次は選手宣誓 ――逐次処理
  • Episode 4 AコートはテニスだがBコートはバドミントン ――並列処理
  • Episode 5 ネットを片付けて。その間にボールを準備 ――非同期処理
  • Episode 6 後始末は忘れずに ――終了処理の強制
  • Episode 7 選手がルールにない行動に出た! ――例外処理
  • Episode 8 実況の隣に解説者は必要か? ――コメント編

Part 2 基本機能編

  • Episode 1 ループのバグは境界に潜む
  • Episode 2 変化し続ける条件の条件判断の罠
  • Episode 3 Formatメソッドの罠
  • Episode 4 書式整形と中括弧
  • Episode 5 checkedコンテキストの功罪
  • Episode 6 unsafeコンテキストはいるの? いらないの?
  • Episode 7 ポインタ幻想
  • Episode 8 switchとデータ型
  • Episode 9 gotoクライシス ――安全な利用とできない利用
  • Episode10 例外をキャッチする理由、キャッチしない理由
  • Episode11 TryParseで結果を見ない場合
  • Episode12 違う型への代入
  • Episode13 何もしないオブジェクト
  • Episode14 テストとモック

Part 3 LINQ編

  • Episode 1 FirstとFirstOrDefaultどっちを使う?
  • Episode 2 FirstとSingleどっちを使う?
  • Episode 3 OrderByとSortどっちを使う?
  • Episode 4 配列とIEnumerableどっちを使う?
  • Episode 5 複数の短いクエリと1つの長いクエリどっちを使う?
  • Episode 6 ローカルクエリとリモートクエリどっちを使う?
  • Episode 7 CastとOfTypeどっちを使う?
  • Episode 8 ToArrayとToListどっちを使う?
  • Episode 9 Length/CountとCount()どっちを使う?
  • Episode10 Azureクライシス ――TakeはあってもSkipできない!?
  • Episode11 式の動的構築で限界突破
  • Episode12 インスタンス化させる? させない?
  • Episode13 列挙中にシーケンスを破壊できるか?

Part 4 コード例で違いを見てみよう編

  • Episode 1 object vs dynamic
  • Episode 2 小学生でも書けるプログラム vs 小学生では書けないプログラム
  • Episode 3 文系でも書けるプログラム vs 文系では書けないプログラム
  • Episode 4 論理思考ができる人 vs 論理思考ができない人のプログラム
  • Episode 5 ドンくさいプロ vs クールなマニアのプログラム
  • Episode 6 風通しの良いチーム vs 風通しの悪いチームのプログラム
  • Episode 7 短いコード vs 長いコード
  • Episode 8 心理的に良いソースコード vs 心理的に悪いソースコード
  • Episode 9 依存性は分離する? しない?
  • Episode10 おっと、キャプチャミス!
  • Episode11 死んだはずのローカル変数のゾンビ化
  • Episode12 専用DLLはいる? いらない?
  • Episode13 動かないクエリ式 vs 動くクエリ式
  • Episode14 式は実行するまでわかりません
  • Episode15 デリゲート型は定義する? しない?

Part 5 クラウド編

  • Episode 1 ストレージの2つのキーはこう使え
  • Episode 2 Azureのストレージは迷宮?
  • Episode 3 Azureのテーブルで前方一致する
  • Episode 4 Azureのテーブルで複数条件OR一致
  • Episode 5 ETagで確実な更新を
  • Episode 6 Azureのブロブでメタデータ
  • Episode 7 Workerロールは本当にいるのか?
  • Episode 8 わたしは何番目のインスタンス?
  • Episode 9 WebSitesでスケールアウトする方法

Part 6 コード例で真相に切り込む編

  • Episode 1 【バグの真相】 直りました。理由はわかりません
  • Episode 2 活用できない冴えたアドバイスは有害?
  • Episode 3 1文字でも書き換えるとテストは最初からやり直し?
  • Episode 4 「動いたぞ!」は単なるマイルストーン
  • Episode 5 フェイルセーフの考え方
  • Episode 6 テストは部分で行うか? 全体で行うか?
  • Episode 7 Webシステムとテストの問題
  • Episode 8 GUIとテストの問題
  • Episode 9 モンキーテストは意味があるか?
  • Episode10 モックを使って意味があるのか?
  • Episode11 テストを前提とした設計技法
  • Episode12 ピリオドとカンマの見間違い
  • The Final Episode
  • 問題の解答