リスコフ置換原則への取り組み(続々、Birthday改めBirthdate問題、もしくは、僕たちはフインキで型安全している)

「俺がリスコフだ!」「バーバラ・リスコフさんは女性ですね」「LSP違反!」
5
前へ 1 ・・ 7 8
ミノ駆動 @MinoDriven

ちと出遅れたけどリスコフ置換原則遵守の実装物としてWPFの図形クラスの抽象基底、Shapeがよく出来ていて、ここから楕円Ellipseや矩形Rectangleに派生している。ShapeはUI部品の基本、UIElementを継承しており、フレームワーク側は具象型を一切気にせずUIを組み上げられる。 docs.microsoft.com/ja-jp/dotnet/a…

2019-09-14 18:56:04
ミノ駆動 @MinoDriven

SPLE(ソフトウェアプロダクトライン工学)ではソフトウェア部品を設計する際、可変点(=interface)と変異体(=interface実装物)の策定の重要さを説いている。「ドアロックする」可変点があれば変異体として「カードキー」「指紋認証」。リスコフ置換原則を考える上で参考になる。

2019-09-14 19:34:26
kawasima@99卒 @kawasima

楕円-真円問題は、Behavioral Subtyping Using Invariants and Constraintsのこの例そのものの話だ。ちゃんと原典には書いてあった。 pic.twitter.com/x3HRgCTMqp

2019-09-15 07:04:12
拡大
天重誠二 @tenjuu99

> セミラチス構造はDCIの構造にしか見えない むっっちゃわかります twitter.com/Tanaka9230/sta…

2019-09-17 22:45:42
たなかこういち @Tanaka9230

drowbypen.com/wp01/kurisu/ をちょろっと読みました。 が、言及されるセミラティス構造はDCIの構造にしか見えないよー!

2019-09-17 22:08:28
天重誠二 @tenjuu99

@Tanaka9230 これ先日来のLSPの話と重なって見えるのですよね。LSPはいかに正しくツリーを表現するか?という問題な気がしていまして。

2019-09-17 22:51:19
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣 @tomooda

継承は部分型と実装継承がゴチャマゼになるからダメだという意見をちょくちょく見かける。全くその通りで、継承を部分型のように扱おうという勘違いが災いの元凶。素直に実装継承に徹すれば良い。クラスと型は混ぜるな危険。

2019-09-18 15:27:45
極端流形式仕様 初代𝕍𝕚𝕖𝕟𝕟𝕒𝕋𝕒𝕝𝕜𝕖𝕣 @tomooda

別の言い方をすると、いわゆるUMLのクラス図的なものを完全否定しています。継承はプログラマだけが実装の都合のみに従って行うものです。分析や設計の人たちは、継承ではなく部分型を見つけ出してください。そしてオレ的にはUMLのクラス図は部分型を表現する記法として褒められたものではありません。 twitter.com/tomooda/status…

2019-09-18 16:34:01

僭越ながらまとめのまとめ

たなかこういち @Tanaka9230

まとめのまとめ(1of7) タイプ(型)とクラスは、本来は違うもののようだ。 LSPは、本来サブタイプの定義(のよう)である。 タイプとクラスを混同、もしくは実質クラスを想定しつつタイプと言っているような場合、「LSPを満たすサブ何とかとLSP違反のサブ何とかがある」、という言い方になる。 twitter.com/Tanaka9230/sta…

2019-09-17 10:34:53
たなかこういち @Tanaka9230

「リスコフ置換原則への取り組み(続々、Birthday改めBirthdate問題、もしくは、僕たちはフインキで型安全している)」をトゥギャりました。 togetter.com/li/1405372

2019-09-17 10:31:53
たなかこういち @Tanaka9230

(2of7) タイプとクラスが別モノならば、現場的関心重心はたぶんクラスにある。 その「クラスの運用を型安全(タイプセーフ)にしたい」というモチベーションがある。このフレーズの用語の用法が実は不正確で混乱の一原因だとしても。

2019-09-17 10:34:54
たなかこういち @Tanaka9230

(3of7) 以上の不正確さは踏まえつつも、サブ何とかにはLSP違反になるのとならないのがあり得て、なるべく違反したくない、という思いを汲むならば、、

2019-09-17 10:34:54
たなかこういち @Tanaka9230

(4of7) 、、振る舞いが多ければ多いほど、サブ何とかがLSP違反にならないように設計するのが難しくなる、という傾向への対策、捉え直した方が、現場の本来課題へ迫れているのではないか。

2019-09-17 10:34:55
たなかこういち @Tanaka9230

(5of7) ちな、「振る舞いが多ければ多いほど、サブ何とかがLSP違反にならないように設計するのが難しくなる」という仮説立て、課題立ては、サブ何とかが正確には何であっても、あるいは曖昧であっても、その辺の不正確さを棚上げしつつ、現場的課題感を表明できているところがミソ。

2019-09-17 10:34:56
たなかこういち @Tanaka9230

(6of7) また、「immutableであればLSP違反しにくい説」は、この「振る舞いを減らせばLSP違反しにくい仮説」に包含される。

2019-09-17 10:34:56
たなかこういち @Tanaka9230

(7of7) この(仮説ベースの)課題を解決するには、振る舞いをロールなどに切り出してSRPを徹底する方面の取り組みが必要で、SRPのRを見出し確定的にするには、目下のモデルの文脈の具体化が必要で、それは既にDCIの世界観だという。。

2019-09-17 10:34:56
前へ 1 ・・ 7 8