C#は電気羊の夢を見るか?(引っ越し中)

dtiブログが閉鎖とのことでhttp://tanocs.blog.fc2.com/へ引っ越します。

苦手意識

苦手意識というのがある。
こいつは食わず嫌いのように、やってみれば大したことないのに、
何故か出来ないような気がして手が出ない心理的に非常に厄介な状態。
自分にとってそんな感じだった物にdelegateがある。

なんとなくjavascriptの、関数を変数のように扱うイメージはあったものの、なぁんとなく手が出せずにいた。
理由はよく解らない物を使ってバグを引き起こすわけにはいかない為、普段使い慣れていないものを嫌っていたのだと思う。

ところが先日、どうにもスパゲティになっていたソースを修正する機会があり、苦手意識を克服することができた。


件のソースは、オブジェクト分割は疎か、関数への分割も殆ど行われておらず、
一つのイベントだけで3千行以上書いてある有様で、
一つのソースファイルに1万行以上のコードが記されている超大作であった。

こいつをどうにかして、ソースの全体を見渡せる状態を作りたかったために、処理を整理していったのだが
ちょっとの判定の差が影響して、似たような二重ループが量産されているのが目についた。

その二重ループの大半が描画処理であったため、とりあえず関数化して別ソースに避けていったのだが、それでもまだ同じようなソースコードが大量に存在している状態であった。

こいつをどうにかしてまとめたいという欲求から、デリゲートのお世話になってみることにした。


ところがデリゲートを使ってみるとその大量にあった二重ループのソースは約1/10程度まで減り、かなりすっきりと全容を見渡せるようになった。

使ってみればイメージ通りの挙動をしてくれるし、今まで全く理解できなかったラムダ式もサクサク使えるようになった。

逆にラムダ式が読めない人には、何のことかさっぱり読めないソースコードになったような気がしないでもない・・・


しかしながら、これは非常に便利だと思った。
便利でコーディングはかなり楽になるけど、使い過ぎると可読性が落ちて非常に危険なんじゃないだろうか・・


ラムダ式にたいする一般的な見識というのを見かけたことがないので、多用に対する注意や可読性に対する見解はどうなってるんじゃろなぁ・・

とりあえず、デリゲートが理解できたので、これで並列処理も書いていけるようになりそう。



蛇足:こいつぁは便利だー!って書きまくって思ったんだけど、
デリゲートってオーバーロード出来ないんじゃろか・・
感覚的に書いたらエラー出て、ちょっと調べた感じじゃなさそうだったので。

そこまで仮想化すると、元がなんなのかわからなくなってしまうような気がしないでもない・・
このエントリーをはてなブックマークに追加
LINEで送る

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://t01a.dtiblog.com/tb.php/127-8a4cc42f

« 配列のお話  | HOME |  Radeonの問題点 »

PAGE TOP ▲

Appendix

■春条

■春条

生息地は愛知
車と甘い物が好きな31歳
特技は無限昼寝

MONOからSharpDXを使う
変態的な手法で、
.NET Frameworkを使わずに
ゲーム作りやってます。

Search

Calender

« | 2017-08 | »
S M T W T F S
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

Twitter

Recent Entries

DTIブログポータルへ
このブログを通報
Report Abuse

利用規約