No more Death March

あるSEのチラシの裏 C# WPF

2017-02-01から1ヶ月間の記事一覧

WPF スタイルからビヘイビアでXamlParseException

WPF

外部のアセンブリからスタイル経由でビヘイビアを使おうとしたら例外 スタイルを書いてるリソースディクショナリでビヘイビアの名前空間しか書いてなかったのが原因、 アセンブリ名も記述すると成功。 リソースディクショナリとビヘイビアは同じアセンブリに…

WPF BlendのBehaiviorは

WPF BlendのBehaiviorクラスで作ったビヘイビアはそのままではStyleで使うことが出来ない。 少し仕組みを作ってやれば使えるみたいですが、 大して記述量も変わらないし自力で作った方が良いかも?

インスタンスを生成する処理のメリット

コンストラクタで直接オブジェクトを作るより new Hoge(1,"aaa"); 作るのが面倒でも生成処理に特化したクラスのメソッドで何をしているか表現した方がわかりやすい。 new HogeBuilder().ChangeId(1).ChangeName("aaa").Build(); なんでもかんでもFactoryやBu…

Stairwayパターンの説明の中で

C#実践開発手法 (マイクロソフト公式解説書) 作者: Gary McLean Hall,長沢智治,クイープ 出版社/メーカー: 日経BP社 発売日: 2015/06/04 メディア: 単行本 この商品を含むブログ (5件) を見る 第2章「依存関係と階層化」でStairwayパターンについて説明があ…

Entourageアンチパターン

「C#実践開発手法」2章でEntourageアンチパターンというのが紹介されていて、 これはインターフェースと実装を同じアセンブリ内に配置しないでね。っていう話みたいだけど、 5章でその例外について触れている。 ただし、このルールには例外が1つありま…

DDD-Specificationパターン

エリック・エヴァンスのドメイン駆動設計 作者: Eric Evans 出版社/メーカー: 翔泳社 発売日: 2013/11/20 メディア: Kindle版 この商品を含むブログ (6件) を見る DDDのSpecificationパターン(みたいなもの)を書いてみる。 まずは、ISpecificationインター…

シングルメソッドインターフェース

nomoredeathmarch.hatenablog.com ここで書いたインターフェースの話、 よく見たら「C#実践開発手法」第8章の終わりの方でもう一度触れられていた。 ここではIFunctionを特化したインターフェースとしてbool型を返す関数IPredicateを例に出しているけど、…

アダプティブコードの根っこの根っこ(2)

nomoredeathmarch.hatenablog.com 前回のエントリの続き、 定義済みデリゲートを最低限のインターフェースに置き換えたとこまで。 じゃあアプリケーション上のすべての処理をこれらのインターフェースだけで賄うべきだ、とはならないのだろう。 .net framewo…

アダプティブコードの根っこの根っこ

C#実践開発手法 (マイクロソフト公式解説書) 作者: Gary McLean Hall,長沢智治,クイープ 出版社/メーカー: 日経BP社 発売日: 2015/06/04 メディア: 単行本 この商品を含むブログ (5件) を見る 引き続き単一責務について考える。 プログラムって極限まで抽象…

アダプティブコードとデリゲート

C#実践開発手法 (マイクロソフト公式解説書) 作者: Gary McLean Hall,長沢智治,クイープ 出版社/メーカー: 日経BP社 発売日: 2015/06/04 メディア: 単行本 この商品を含むブログ (5件) を見る この本を読みながら考えを整理する。 第5章「単一責務の原則か…

良いプログラムの条件を考える。

・可能な限り不変 ・入れ替え可能 ・読みやすい ・シンプル ・色んな事に手を出しすぎない もう少し実装よりな観点 ・引数がより少ない、あっても一つ ・変数がより少ない、変数は読み取り専用 ・if文がない。あってもガード節一つ? ・switch文がない。stra…

newによるオブジェクトの生成

C#実践開発手法 (マイクロソフト公式解説書) 作者: Gary McLean Hall,長沢智治,クイープ 出版社/メーカー: 日経BP社 発売日: 2015/06/04 メディア: 単行本 この商品を含むブログ (5件) を見る この本の第2章で出てくる「newとコードの臭い」のメモ そもそも…

パラメータのオブジェクト化

クラス全体が不変だったり、不変な属性が交っている場合(DDDのエンティティとか) 例えばこんな感じ このままだと変更に弱いので、ビルダークラスと分ける。 メリット ・仕様変更があってもPersonクラスのコンストラクタを増やす必要がない。 ・チェック…