何となく Blog by Jitta
Microsoft .NET 考

目次

Blog 利用状況
  • 投稿数 - 761
  • 記事 - 18
  • コメント - 36035
  • トラックバック - 222
ニュース
  • IE7以前では、表示がおかしい。div の解釈に問題があるようだ。
    IE8の場合は、「互換」表示を OFF にしてください。
  • 検索エンジンで来られた方へ:
    お望みの情報は見つかりましたか? よろしければ、コメント欄にどのような情報を探していたのか、ご記入ください。
It's ME!
  • はなおか じった
  • 世界遺産の近くに住んでます。
  • Microsoft MVP for Visual Developer ASP/ASP.NET 10, 2004 - 9, 2011
広告

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

その他

わんくま同盟

同郷

 

Insider.NET 掲示板の「質問」を見ていて思うことです。半分か、それ以上の質問に対して、補足が求められています。

「何がしたいの?」「何がしたいのかわからん」「で、どうしたいのでしょう?」「何がわからないのでしょう?」

いったい、どうしてでしょう?

私が思うのは、「考える順序の問題」なのかなぁ?

私が新人の頃は、「まず、設計しろ」といわれました(ここでの「設計」は、「フローチャートを描く」レベルの設計)。でも今は、短納期ということもあり、いきなりコーディングを始めるのが主流のようです。

かくいう私も、今はいきなりコーディングが主流です。でも、私は、頭の中に様々なライブラリが出来ています。まぁ、そのせいで、他の考え方が出来なくなるというのもありますが。←これ重要

とはいえ、ややこしいと思ったら、まず設計しています。行き詰まったら(国語的注:「煮詰まる」は「完成する」の意味合いが強い)、設計に戻ります。

なぜ?

自分の考えを整理し、「何をするべきだったのか」からずれていないか、確認するためです。

そこで、私がコーディングのための設計をする場合に、何を考えるか、メモしておきます。


私はまず、最終目標を確認します。「何が出来なければならないのか」。もしここで、「何と何が出来なければならない」になれば、この2つの「何」を、別々の関数/メソッドに分解します。これは、ひとつの関数/メソッドの行数を短くすると共に、その時に考えなければならないことを単純にするためでもあります。

これが、ひとつのポイントかと思います。聖徳太子のように、複数の人の話を聞き分け、ほぼ同時にそれに対する回答を考えることが出来る人は、まずいないでしょう。同じように、複数の「何か」を考えるのは、難しいのではないでしょうか。

目標が決まったら、「それをするためには、何が必要か」を考えます。これは「何と何と何が必要」と、「何」が複数発生するはずです。この、「必要なもの」が、新しい目標になることもあります。

ある程度数をこなすと、この「目標」に対する「手順」が形式としてたまります。これが「俺フレームワーク」となるわけです。

また、このときに考えるのは「コード」ではありません。あくまで、「必要なもの」です。その必要なものを揃えるためにどうするか、と言うところが、コードになります。しかし、この「コード」は、「俺フレームワーク」には入っていません。

実装と手順を分けておくこと。これによって、他の言語を使わなければならなくなっても、そんなに慌てないで入っていくことが出来ます。


さて、「なんか、足りなくない?」と思われた方。その通りです。これは、オブジェクト指向以前、私が 1990 年から 1996 年くらいに、SunOS 上で C 言語をさわっていたときの話です。なので、オブジェクトの切り分けについて、触れていません。しかし、あるクラスの1つのメソッドを実装するためには、今も同じではないでしょうか。

で、オブジェクトの切り分けについて書きたいわけですが。

すみません。書けるほど、理解できていません。誰かお願い(ぉぃ

投稿日時 : 2006年9月27日 22:09
コメント
  • # またJittaさんのBlogから考えさせられたこと。
    AQUA's .NET 奮闘記
    Posted @ 2006/09/28 1:04
    またJittaさんのBlogから考えさせられたこと。
  • # またJittaさんのBlogから考えさせられたこと。
    AQUA's .NET 奮闘記
    Posted @ 2006/09/28 1:13
    またJittaさんのBlogから考えさせられたこと。
  • # re: コードを考えるときの順序(私の場合)
    R・田中一郎
    Posted @ 2006/09/28 10:43
    僕もいきなりコードを書き始めることの方が多いですね。
    コードで書いて考えて修正して、またコードを書いて考えて修正して・・・の繰り返しが多いです。
  • # re: コードを考えるときの順序(私の場合)
    Moo
    Posted @ 2006/09/28 11:10
    コードを書く前に
    「ここで何をするか」
    をコメントベースで書き込みます。
    そうです。コードコメントをはじめに書くのです。
    あとで実装予定の部分は
    'todo:ここで切り替え判定
    などと書いておくとVSIDEが残タスクとして拾ってくれます。
  • # re: コードを考えるときの順序(私の場合)
    R・田中一郎
    Posted @ 2006/09/28 14:25
    >をコメントベースで書き込みます。

    これいいですね・・・(真似しちゃおうかしら)
  • # re: コードを考えるときの順序(私の場合)
    επιστημη
    Posted @ 2006/09/28 15:52
    必要な"もの"を考えているならオブジェクト指向ちゃいますかねぇ。
    # などと茶々入れ♪
  • # re: コードを考えるときの順序(私の場合)
    かるあ
    Posted @ 2006/09/29 1:04
    Moo さんと同じく、
    同じレベルの処理単位でコメントを打っていって、
    次に空のメソッド作って実装していく感じですかね
  • # re: コードを考えるときの順序(私の場合)
    がる
    Posted @ 2006/09/29 14:20
    がるでふ。
    面白そうなので参加~。
    自分の場合、最近はめっきりOOな人なのでまず
    ・クラスを切り分ける
    からスタートでしょうか。クラスは「そのクラスはどんなクラスなのかを20文字以内で述べよ」って感じです。長くても40文字まで。それ以上はNG。
    次にメソッドを切るですが、その時は「テストプログラム」から。言い換えると「どう使えると楽に使えるか」から考えるです。

    多分「何をしたいか」が見えてない人向けには「いいからまずテストプログラムとかそーゆー"使う側の立ち位置の作業"をしてご覧」って言いますね。

    で…メソッドのインタフェースきり終わって実装するときは、やぱし私も「コメントだけ」書いて、あとで穴埋めします。
  • # re: コードを考えるときの順序(私の場合)
    Jitta
    Posted @ 2006/09/29 23:53
    むわぁ!なんか、いっぱい増えてる。。。

    皆さん、コメントありがとうございます。

    何をするかをコメントとして書き込んでおくのは、Insider.NET でも書いた記憶がありますが、今でもやります。
    特に、新しい言語に移行したときや、古い言語に戻ったときは、やります。使い方忘れているので。


    あと、エントリ作ります。→「必要な"もの"を考えているならオブジェクト指向ちゃいますかねぇ。」
    まぁ、がるさんが書かれていますが、私はまだ、文にできないですね。がんばってみよう。
タイトル
名前
Url
コメント