2014年11月04日
川俣晶の縁側技術関連執筆情報total 1350 count

裏口からのC# 実践入門 バッドノウハウを踏み越えて本物へ!!

Written By: 川俣 晶連絡先

ラマ君アクマ君テンシちゃん

「新刊出るよ。C#のバッドノウハウ本がやっと出るよ」

「中身はどんな方針だい?」

「比較的基本寄りだね」

「なぜ高度な話題を追い求めない」

「書くのに手間が掛かる割に読者が少ない」

「……」

「今回の本は、テーマごとにプログラマの【ラマ君】が抱いた疑問に、【アクマ君】が間違ったやり方を教え、【テンシちゃん】がそれを救済するというストーリーを持つ」

「ということは、あえて悪い方法も例として書いてある?」

「そうそう。アクマ君の答えは悪いサンプルとして書いてある。その点でわざと間違ったソースを書くのは楽しかったぞ。わざと回りくどく書いて」

「回りくどくて良いのかよ」

「【それは良くない】と言うのは簡単だけどさ。行ったら何が起こるのかも教えないと」

「分かった。ところでいちばん肝心なことを言っていないぞ」

「アイデアを出してくれた人には感謝感謝」

「1人のアイデアだけで成立した本ではないわけだね」

「ベテランには今更の話ばかりだと思うけれど、面白そうだと思ったら買ってね!」

「ビギナーには参考になりそうだね」

「入門書を裏を意図したよ」

バッドマンよ、ゼロサムシティを走れ §

「で、ぶっちゃけ目玉は何?」

「隙間の埋め草のコラムに登場するバッドマン。ゼロサムシティのバッドノウハウだ。その中でも、Beginで始まる非同期メソッドを扱う一編、バッドマンビギンズかな」

「ダジャレかい」

「バッドマンリターンズも出てくるぞ。戻り値の曖昧さをテーマにしたコラムがあるから。あと無限ループをテーマにしたコラム、バッドマンフォーエバーとか」

目次 §

オープニング …… 3

シーン1 言語仕様の問題 9

1.1 var の忌避 …… 10

1.2 if とswitch の誤用 …… 18

1.3 for とforeach の誤用 …… 27

1.4 while で条件判断 …… 34

1.5 do のほうがよいのに使わない問題 …… 41

1.6 ループする必要のないループ …… 44

1.7 冗長な非同期ループ …… 48

1.8 解放されない参照 …… 52

1.9 解放したつもりのメモリ …… 57

1.10 過剰に表現力がありすぎる型の利用 …… 62

1.11 過剰に表現力が不足しすぎる型の利用 …… 67

1.12 意味がない構造体の利用 …… 71

1.13 ポインタの利用 …… 75

1.14 無駄なキャストの多用 …… 79

1.15 全部1 クラス症候群 …… 83

1.16 全部public 症候群 …… 88

1.17 全部static 症候群 …… 92

1.18 using 文を使わない症候群 …… 96

1.19 Mixed Language Programming を知らない …… 101

1.20 const が使えるケースで普通の変数を使う …… 104

1.21 readonly が使えるケースで普通の変数を使う …… 108

1.22 列挙型を使わないで定数を定義する …… 112

1.23 無駄に深いクラス階層 …… 117

1.24 別の名前空間での同じ名前の多用 …… 124

1.25 多すぎる引数 …… 127

1.26 付けすぎるvirtual …… 132

1.27 ソースコードにパスワードを直書きする …… 138

1.28 例外を処理しないのにcatch する …… 142

1.29 catch して何もせずそのままthrow する …… 146

1.30 何の役割もない継承を繰り返す …… 149

1.31 委譲すべきケースで継承する …… 153

1.32 短すぎる名前の問題 …… 157

1.33 長すぎる名前の問題 …… 160

1.34 記号的な名前の問題 …… 164

シーン2 ライブラリの問題 …… 167

2.1 旧世代のコレクションを使う …… 168

2.2 コレクションを返す …… 172

2.3 WinForms への固執 …… 176

2.4 Windows API の直接呼び出し …… 179

2.5 古いXML DOM …… 183

2.6 古いXSLT …… 186

2.7 独自形式バイナリーへのシリアライズ …… 190

2.8 過剰な例外への依存 …… 195

2.9 XElement がNullable<T>にキャスト可能と知らない …… 199

2.10 MVC でView にロジックを書く …… 203

2.11 ループとロジックが入り交じっている …… 206

2.12 それはリソースの無駄遣い …… 212

2.13 Java よ安らかに眠れ …… 218

シーン3 環境の問題 225

3.1 GAC に入れたがる症候群 …… 226

3.2 Ngen に依存する症候群 …… 229

3.3 新しすぎるランタイムのバージョン …… 233

3.4 古すぎるランタイムのバージョン …… 236

シーン4 アルゴリムの問題 …… 239

4.1 再帰に頼りすぎ …… 240

4.2 不変ではないクラス …… 244

4.3 散在する情報 …… 247

4.4 多すぎるクエリ …… 252

4.5 冗長な判定 …… 256

4.6 ユニークさが確保されているのに判定する …… 260

4.7 ユニークさが確保されていないのに判定しない …… 265

4.8 永遠に実行されないコード …… 270

4.9 異常ケースで致命的な処理を止めないコード …… 275

4.10 無効値を多発するデータ設計 …… 281

シーン5 Visual Studio の問題 …… 287

5.1 便利な拡張機能を入れない問題 …… 288

5.2 便利な拡張機能を入れすぎる問題 …… 292

5.3 F1キーを使わない問題 …… 296

5.4 F1キーに依存しすぎる問題 …… 298

5.5 NuGet を使わない問題 …… 301

5.6 NuGet が使えない問題 …… 304

5.7 適切なバージョンのテンプレートが選べない問題 …… 306

5.8 とりあえずコンソールアプリという問題 …… 310

フィナーレ …… 313

Index …… 317

Facebook

キーワード【 川俣晶の縁側技術関連執筆情報
【技術関連執筆情報】の次のコンテンツ
2014年
12月
08日
[完全版] C#実践ダイナミックプログラミングは誰のため?
3days 0 count
total 902 count
【技術関連執筆情報】の前のコンテンツ
2014年
09月
06日
大規模開発でも小規模開発でも使えるTypeScript 実践入門
3days 0 count
total 874 count
2014年11月04日
川俣晶の縁側技術関連執筆情報total 1350 count

裏口からのC# 実践入門 バッドノウハウを踏み越えて本物へ!!

Written By: 川俣 晶連絡先

ラマ君アクマ君テンシちゃん

「新刊出るよ。C#のバッドノウハウ本がやっと出るよ」

「中身はどんな方針だい?」

「比較的基本寄りだね」

「なぜ高度な話題を追い求めない」

「書くのに手間が掛かる割に読者が少ない」

「……」

「今回の本は、テーマごとにプログラマの【ラマ君】が抱いた疑問に、【アクマ君】が間違ったやり方を教え、【テンシちゃん】がそれを救済するというストーリーを持つ」

「ということは、あえて悪い方法も例として書いてある?」

「そうそう。アクマ君の答えは悪いサンプルとして書いてある。その点でわざと間違ったソースを書くのは楽しかったぞ。わざと回りくどく書いて」

「回りくどくて良いのかよ」

「【それは良くない】と言うのは簡単だけどさ。行ったら何が起こるのかも教えないと」

「分かった。ところでいちばん肝心なことを言っていないぞ」

「アイデアを出してくれた人には感謝感謝」

「1人のアイデアだけで成立した本ではないわけだね」

「ベテランには今更の話ばかりだと思うけれど、面白そうだと思ったら買ってね!」

「ビギナーには参考になりそうだね」

「入門書を裏を意図したよ」

バッドマンよ、ゼロサムシティを走れ §

「で、ぶっちゃけ目玉は何?」

「隙間の埋め草のコラムに登場するバッドマン。ゼロサムシティのバッドノウハウだ。その中でも、Beginで始まる非同期メソッドを扱う一編、バッドマンビギンズかな」

「ダジャレかい」

「バッドマンリターンズも出てくるぞ。戻り値の曖昧さをテーマにしたコラムがあるから。あと無限ループをテーマにしたコラム、バッドマンフォーエバーとか」

目次 §

オープニング …… 3

シーン1 言語仕様の問題 9

1.1 var の忌避 …… 10

1.2 if とswitch の誤用 …… 18

1.3 for とforeach の誤用 …… 27

1.4 while で条件判断 …… 34

1.5 do のほうがよいのに使わない問題 …… 41

1.6 ループする必要のないループ …… 44

1.7 冗長な非同期ループ …… 48

1.8 解放されない参照 …… 52

1.9 解放したつもりのメモリ …… 57

1.10 過剰に表現力がありすぎる型の利用 …… 62

1.11 過剰に表現力が不足しすぎる型の利用 …… 67

1.12 意味がない構造体の利用 …… 71

1.13 ポインタの利用 …… 75

1.14 無駄なキャストの多用 …… 79

1.15 全部1 クラス症候群 …… 83

1.16 全部public 症候群 …… 88

1.17 全部static 症候群 …… 92

1.18 using 文を使わない症候群 …… 96

1.19 Mixed Language Programming を知らない …… 101

1.20 const が使えるケースで普通の変数を使う …… 104

1.21 readonly が使えるケースで普通の変数を使う …… 108

1.22 列挙型を使わないで定数を定義する …… 112

1.23 無駄に深いクラス階層 …… 117

1.24 別の名前空間での同じ名前の多用 …… 124

1.25 多すぎる引数 …… 127

1.26 付けすぎるvirtual …… 132

1.27 ソースコードにパスワードを直書きする …… 138

1.28 例外を処理しないのにcatch する …… 142

1.29 catch して何もせずそのままthrow する …… 146

1.30 何の役割もない継承を繰り返す …… 149

1.31 委譲すべきケースで継承する …… 153

1.32 短すぎる名前の問題 …… 157

1.33 長すぎる名前の問題 …… 160

1.34 記号的な名前の問題 …… 164

シーン2 ライブラリの問題 …… 167

2.1 旧世代のコレクションを使う …… 168

2.2 コレクションを返す …… 172

2.3 WinForms への固執 …… 176

2.4 Windows API の直接呼び出し …… 179

2.5 古いXML DOM …… 183

2.6 古いXSLT …… 186

2.7 独自形式バイナリーへのシリアライズ …… 190

2.8 過剰な例外への依存 …… 195

2.9 XElement がNullable<T>にキャスト可能と知らない …… 199

2.10 MVC でView にロジックを書く …… 203

2.11 ループとロジックが入り交じっている …… 206

2.12 それはリソースの無駄遣い …… 212

2.13 Java よ安らかに眠れ …… 218

シーン3 環境の問題 225

3.1 GAC に入れたがる症候群 …… 226

3.2 Ngen に依存する症候群 …… 229

3.3 新しすぎるランタイムのバージョン …… 233

3.4 古すぎるランタイムのバージョン …… 236

シーン4 アルゴリムの問題 …… 239

4.1 再帰に頼りすぎ …… 240

4.2 不変ではないクラス …… 244

4.3 散在する情報 …… 247

4.4 多すぎるクエリ …… 252

4.5 冗長な判定 …… 256

4.6 ユニークさが確保されているのに判定する …… 260

4.7 ユニークさが確保されていないのに判定しない …… 265

4.8 永遠に実行されないコード …… 270

4.9 異常ケースで致命的な処理を止めないコード …… 275

4.10 無効値を多発するデータ設計 …… 281

シーン5 Visual Studio の問題 …… 287

5.1 便利な拡張機能を入れない問題 …… 288

5.2 便利な拡張機能を入れすぎる問題 …… 292

5.3 F1キーを使わない問題 …… 296

5.4 F1キーに依存しすぎる問題 …… 298

5.5 NuGet を使わない問題 …… 301

5.6 NuGet が使えない問題 …… 304

5.7 適切なバージョンのテンプレートが選べない問題 …… 306

5.8 とりあえずコンソールアプリという問題 …… 310

フィナーレ …… 313

Index …… 317

Facebook

キーワード【 川俣晶の縁側技術関連執筆情報
【技術関連執筆情報】の次のコンテンツ
2014年
12月
08日
[完全版] C#実践ダイナミックプログラミングは誰のため?
3days 0 count
total 902 count
【技術関連執筆情報】の前のコンテンツ
2014年
09月
06日
大規模開発でも小規模開発でも使えるTypeScript 実践入門
3days 0 count
total 874 count
【技術関連執筆情報】のコンテンツ全リスト【技術関連執筆情報】の表紙

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20141104121127
サイトの表紙【技術関連執筆情報】の表紙【技術関連執筆情報】のコンテンツ全リスト 【技術関連執筆情報】の入手全リスト 【技術関連執筆情報】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.25 (Alpha-Test) Copyright (c) 2004-2017 Pie Dey.Co.,Ltd.