TinqWill's 仮ブログ(名称未定)

現在FC2からこっちに移動しようといろいろ計画中

[C#]デザインパターン勉強中

オブジェクト指向を生きる中で、やはりデザインパターンは基本中の基本。
再利用性も、拡張性もデザインパターンを知っていると知らないでは大きく違ってきます。
ですが、まったくわからないままここまで来てしまったのでやっと現在C#でデザインパターンを勉強中です。

とりあえず、本なしでwebサイトだけで粘ってみようと思います。

役立つかわかりませんが、自分の勉強法についてまとめておきます。

  1. 参考サイトを探す
  2. 概要や基本的な考え方をノートにまとめる
  3. クラス図をノートに書く
  4. 実際にコードを書いてみる

特記するほどのこともない内容ですが(^^;)

参考にしているサイト一覧です。

クラス図

デザインパターンはクラス図を書くことで理解が深まります。自分もいまいち理解が薄かったのでこちらも勉強しました。オブジェクト指向でプログラミングをしたことがある人なら数日でとりあえず理解できると思います。


初歩のUML【改訂版】初歩のUML - @IT

具体的な例付きで書いてあります。(「初歩のUML」でページ内検索してください)


UML クラス図 解説

細かい具体例はありませんが、一通り書いてあるので確認にいいかもしれません

デザインパターン

自分が主に見ているページです。デザインパターンjavaでのコードが多いので、javaを多少理解していたほうが有利です。


デザインパターン (ソフトウェア) - Wikipedia

有名なGoFデザインパターンの23種類が列挙されています。解説サイトではないのでわかりやすさには欠けますが、各ページにはクラス図もあります。

デザインパターン - オブジェクト指向設計 - [Syboos.jp]-オープンソースポータル

とりあえず私が行き着いた説明がわかりやすいサイトです/dd>
VB.NETとC#でデザインパターン

GoFの23種類のデザインパターンのC#での実現例が書いてあります。説明はないのでC#でのコードを確認したい場合に。

さらに、各パターンの名前で検索してさらに情報を得ることができます。名前が定着しているので調べやすいのはありがたい限りです。

はてなブログにサイドバー編集が追加

ついにはてなブログにもサイドバーの編集機能が装備されました。
「サイドバー編集機能」を追加しました - はてなブログ開発ブログ
自由にモジュールのソースを書くことができ、iframeやjavascriptももちろん使用可能です。
特におくものもないのでとりあえずjavascriptの実行テストを表示してみました・・・

まだまだはてなブログは機能不足な気がするので、これからの発展に期待大です。

[C#]プロパティで無限ループするとVisualStudioが落ちた話

C#初心者の頃の話です。

親フォームにデータを渡したいなどというありがちな難問にぶつかっていました。
その頃はまだアクセス修飾子さえ理解していなかったので、フィールドやメソッドをpublicにするとかまったくわかっていませんでした。
がんばって調べたらよくわからんが「プロパティ」なるものを使えばできるという情報を拾ってきたのです。

で、見よう見まねでコードを書いたらこんな感じになりました(たしか)

int _Test;
public int Test
{
    get
    {
        return Test;
    }
    set
    {
        Test = value;
    }
}

*1

Testプロパティを参照しようとするとgetアクセサでTestプロパティが参照され、getアクセサでTestプロパティが参照され・・・と、どう見ても無限ループ。しかし、そもそもプロパティの意味を理解していなかったのでそれをビルドしました。
結果はもちろん、無限ループでクラッシュ。

その上、VisualStudioのデザイナもプロパティを参照しようとして無限ループでVisualStudioクラッシュ。
そしてVisualStudioが再起動するもまたデザイナの読み込みでクラッシュ。そこらへんでVisualStudioがファイルに問題があるかもしれないといってファイルが開かれていない状態で再起動します。


しかし、そんな配慮も無視し原因のわからない私はまたソリューションエクスプローラからデザイナを開いてクラッシュorz

クラッシュしたときにメッセージも「ご迷惑をおかけします・・・」のダイアログでの強制終了だったので初心者な私には「デザイナを開くとクラッシュする」ということしかわかりませんでした。

何度も何度もクラッシュと再起動を繰り返し、もしやこの書き方だと無限ループしちゃうのか?と気が付いたのは数時間後のことでしたとさ。


無知というのは怖いものです。

やりたいことをまとめてみる

  • ゲームを作ってみる
  • アルゴリズムの勉強
  • デザインパターン
  • アセンブリ
  • PHP
  • Ruby
  • C#
  • C
  • C++
  • 後で見るにしてるものの消化
  • Webデザイン
  • サイト改装
  • ブックマークの整理

なかなか一つ一つ大きいよなぁ

はてブロのフィードバックの例文は簡潔すぎ・・・

こちらははてなブログのフィードバック画面
f:id:TinqWill:20111130174407g:image
いや、「エラーがでました!」ってフィードバックを送られても困るんじゃ・・・
「○○をしたら××というエラーがでました!」ぐらいにしておかないと、本当に「エラーがでた」という一文のみをフィードバックする人がでそうな気がします。

iTunesでバックアップがあまりにも終わらないので無効に

先日、久々にiPodTouchに音楽を入れようと、iTunesを起動しました。
重いので手動起動にしていたのでApple Mobile Deviceサービス起動してねぇよと怒られ、サービスを起動してiTunesを再起動。
そしていざ同期開始!

「バックアップの作成中」

う~む、なかなか長い。でも久々につないだから仕方がないなと思いつつ待つこと1時間。
5mmほどで停止したまま一向に進む気配が見られません。

ネットで調べてみるとキャッシュが悪いなどという話が。原因のアプリを探し出そうとバックアップアップのフォルダをオープン!!
・・・しかし、エクスプローラがフリーズしてタスクバーを巻き込んで終了orz

ファイル数が多すぎるのかぁと重いつつコマンドプロンプトでdirを叩くも、大量のファイルが流れて終わる気配なし。
結果をファイルに出力してみると・・・
一覧の容量が600KB、ファイル数は約7000に及びました(これだけでフリーズするうちのパソコンて)

しかし、タイムスタンプを見るも古いものがほとんどでリアルタイムで更新されていくファイルは無し。
ProcessExplorerまで引っ張り出すも発見できず。

結局あきらめてバックアップを無効にしてしまうことにしました。iTunesを終了させこちらの方法を実施。
iTunesでバックアップを無効化する « WordPress試験サイト

そしてもう一度同期すると・・・
見事曲の転送が直に終了!
原因はわかりませんが、パソコン買い替えまでこれでごまかせそうです。

新しいパソコンを買ったらiPodの中身をいったんすっきり消したほうがよさそうだ^^;