melt日記

.NETすらまともに扱えないへたれのページ

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  111  : 記事  3  : コメント  485  : トラックバック  35

ニュース

わんくま同盟

わんくま同盟

C# と VB.NET の質問掲示板

iKnow!


Dictation



書庫

自分は結構、現実世界をプログラムで考えることがあります。


今日は電車に揺られながらプログラマの仕事について考えてました。

こんな感じです。


「プログラマに必要なインターフェースは何だろう。うーん、とりあえず仕事が出来て、進捗を教えてくれればいいかな」

public interface IProgrammer
{
    void Work(object workInfo);
    double Progress { get; }
}

「いやでも、こっちが進捗を確認するだけだったら仕事の成果を受け取れないからダメか。仕事が終わったらちゃんと結果をもらわないと」

public interface IProgrammer
{
    void Work(object workInfo);
    double Progress { get; }
    object WorkResult { get; }
}

「これでいいかな。あ、待て、こっちが進捗を確認するんじゃなくて、むしろプログラマが教えてくれた方がいいんだから、終了したら呼んでもらえるようにしよう」

public delegate void ProgramWorkEndDelegate(IProgrammer programmer);

public interface IProgrammer
{
    void Work(object workInfo);
    double Progress { get; }
    object WorkResult { get; }
    ProgramWorkEndDelegate ProgramWorkEnd { get; set; }
}

「で、まずプログラマの面接だよな。多分面接官はこんな風に見てるよな。」

public bool Interview(IPerson person)
{
    return person is IProgrammer;
}

「これでよし。さあ次はプログラマを働かせよう。programmer1 に仕事を依頼してみるかな」

// 仕事終わったら呼んで
programmer1.ProgramWorkEnd = programmer1_ProgramWorkEnd;
programmer1.Work(programWorkInfo); // 仕事よろしく

WaitWithWork(1); // 自分の仕事をしながら1日待つ
WaitWithWork(1); // 更に待つ
WaitWithWork(1); // 待つ
WaitWithWork(1); // m
WaitWithWork(1); //

「……programmer2 に仕事を依頼しよう。あと、ちゃんと進捗も聞くようにしないとダメだな。」

programmer2.ProgramWorkEnd = programmer2_ProgramWorkEnd;
programmer2.Work(programWorkInfo); // 仕事よろしく

WaitDayWithWork(1);
progress = programmer2.Progress; // 進捗どう?
Console.WriteLine(progress); // 0% です

WaitDayWithWork(1);
progress = programmer2.Progress;
Console.WriteLine(progress); // 0.01% です

WaitDayWithWork(1);
progress = programmer2.Progress;
Console.WriteLine(progress); // 0.02% です

WaitDayWithWork(1);
progress = programmer2.Progress;
Console.WriteLine(progress); // 0.03% です

「…………programmer3 だけが頼りなんだ」

programmer3.ProgramWorkEnd = programmer3_ProgramWorkEnd;
programmer3.Work(programWorkInfo); // 仕事よろしく

WaitDayWithWork(1);
progress = programmer3.Progress;
Console.WriteLine(progress); // 50% です

「おお、さすが programmer3、仕事が速い。明日には終わりそうだな」

WaitDayWithWork(1);
progress = programmer3.Progress;
Console.WriteLine(progress); // 75% です

WaitDayWithWork(1);
progress = programmer3.Progress;
Console.WriteLine(progress); // 87.5% です

WaitDayWithWork(1);
progress = programmer3.Progress;
Console.WriteLine(progress); // 93.75% です

WaitDayWithWork(1);
progress = programmer3.Progress;
Console.WriteLine(progress); // 96.875% です

ゼノンのパラドックスかよ!」



とか勝手に一人で考えて楽しんでたりします。

みなさんもこういうことやったりしませんか?

……しませんよねそうですよね自分だけですよね……。

投稿日時 : 2008年3月18日 11:55

コメント

# re: 妄想プログラミング 2008/03/18 12:03 恣意の
>ゼノンのパラドックスかよ!
盛大にお茶を噴いたwwwww
何この一生完全な100%にたどり着かないフラグはw

あ、ちなみに私は目の前にある"物体"に対して(妄想を)よくやります

# 「AからBを抜き出してCにくっつけたら面白いなぁ」とかでふ

# 半分まで歩く 2008/03/18 15:47 Mr.Tの場所
半分まで歩く

Post Feedback

タイトル
名前
Url:
コメント