この記事は、Effective C# 社内勉強会において、参加者が疑問に思った点、質問があった点をまとめたものです。
新人と、プログラム経験年数3,4年目あたりの、あまり技術向上に興味のない人が参加するとどのようなことになるか、コーヒーでも飲みながら読んでいただければ。
また、これからEffective C# を読む人の一助になれば。
そして、参加者の備忘録として。
なお、Effective C# の内容を記述したものではありませんので、本の内容を知りたい方は他ブログを参照して下さい。
#項目1 アクセス可能なデータメンバの代わりに常にプロパティを使用すること
#####やはり、予習は必要か?
1ページ読むのに1時間かかりました…
予習必要なしの形式で始める予定であったが、予習は必要かもしれない。
参加者は、普段VB.NETで開発している、かつC#を触ったことが無い人が多数。そして、C++やJavaも経験がないので、波括弧を使う文法も初めてです。次からは、書いてあるプログラムを写経するぐらいは指示しようかと思った。なんとなくでもいいから、C#の雰囲気を掴んで欲しい。
#####疑問点
- データメンバとは
→クラスのフィールドとして宣言された変数
- アクセス可能なデータメンバ
→publicなデータメンバ、あるいは継承元のprotectedなデータメンバ
→getアクセサーとは、オブジェクト内部のメンバ変数を外部から参照するためのメソッド
→setアクセサーとは、オブジェクト内部のメンバ変数を外部から設定するためのメソッド
-
アクセス修飾子とは
-
プロパティ(プロパティといえば、Form画面をデザインする時のプロパティペインにある項目という認識だった)とは
-
独自のgetメソッドあるいはsetメソッドを用意することもやめましょう→なんで?
→本文にあるから熟読してね。 -
インターフェースとは
→「使い方」とか「振る舞い」のような意味。 -
データに直接アクセスしているかのようなインターフェースとしてメンバを公開できる
→使っている側としては、instance.Name = "ほげ" のようにアクセスできるが、プロパティでも同じように公開できる。 -
オブジェクト指向とは
-
データバインドとは
-
リフレクションとは
-
バッキングストアとは
-
抽象クラスとは
-
リストとは
-
ハッシュとは
-
バイナリ互換性とは
-
JITコンパイラによってインライン化される
#####感想
疑問点から、現在の技術力が垣間見えますね。
「下手糞の上級者への道のりは、己が下手さを知りて一歩目」
Chapter1を読み終わるのに、2週にわたり延べ4時間程度。
このペースだと1年以上かかる計算になりますね。
ただ、1センテンスずつ、踏みしめながら理解していかないと、後々つまづく事になることが容易に予想されるので…
プロセス、スレッド、バイナリ、リスト、ハッシュ、バイナリ、JITコンパイラ、インライン化とは何なのか、しっかり理解して次に進むことができました。
「インライン化」とか、さらっと本文に出てきてもこれで大丈夫。