SmartUI。

たまに始まるプログラマ向け読書タイム。Smart UIというキーワードから初めて見た。
ドメイン駆動設計に出てくるアンチパターン(反面教師)。
またの名を画面駆動開発。動く画面は大量に素早く作れるが、統合するときに大体破たんするデスマの温床。

この約2年いじってるコードがまさにコレ。(何度も愚痴ってるけどな)
読んでた記事にそういった状況から抜け出そうと奮闘した記録を見つけ、それを読んでると結構、自分がやってる事と被るポイントが。
その中でも自分がこれはよかったと思ってるのは、Data Access Objectを作ること。
正直自分では、毎回SQLをコードに書いて、DataReaderから適切な値に変換することが嫌いで嫌いで、というか

var a = dr["FiledsName"]:

ってフィールド名打つときに絶対面倒くさいから、EDIの機能でコードコンプリートさせるために専用クラスを作るってところから始めており、正直ドメイン駆動開発のための技というわけではない。
が、やっぱり楽ですね。下準備すると。

あとはただ、ひたすらに記述量を減らそうと奮闘中。
同じような挙動をする部分があったら、イベントを共通化したりしてコードを減らしたり。
前は同じオブジェクトが30近く並んでて、そこにデータを「同じように」表示するのに、30回コピペされたコードを見て殺意を覚えたこともあったな。

とはいえ、自分も結局Smart UIで育ってきて、画面駆動開発アタマなのは自覚済みで、面倒くさいと途端にいつものコードかいているので注意が必要ですなー。というかね、だれかと確認しながら進めていきたいよ。自分のやってることが正しいのかわからない。

しかし、ただひたすらにコードを書いているおかげでいろいろ勉強はできてます。
コードを減らすために、せっかくC#を使っているんだからとC#の機能をいろいろ学んで、できる限り活用するようにしていく上で、Linqの概念がしっかり理解できたのはよかった。その感覚を足掛かりに関数型ライクな概念の勉強がそれなりにスムーズに理解できたりできて、その辺からテスト作りやすい作り方が見えてきたりと、そうね、もっと10年位前にこういう意識持ってたら、出遅れ感なんてなかったし、今まで作り続けてきたクソコードも、もう少しうまく動いたかもね…

で、最近になってpaizaで遊んでるけど(Dランクをサクサククリアして快感を得ている段階)
C#を選択してもLinqとCollection.GenericがデフォでUsingされてないのね…確かにDランクの課題なんぞLinqで一発で書けたりするから正直「そこをみたいんじゃねぇwww」って思われてるかもしれないけどねwwww
スポンサーサイト

trackback

comment


<<げーとうおっちぷれり HOME TOP はじめてのりーぐせん(もだん)>>