C#の設計思想とか、どういう設計でコード書いたらいいかみたいなのがわかりやすい書籍ってある?