プロが教える店舗&オフィスのセキュリティ対策術

初心者です。例えば、料理にしろプラモデルにしろ、プログラミングにしろ「手順を組み立てること」について質問があります。最初に、色んな所からパーツになる様々な情報を集め、順番に並べて組み立てていく感じはわかるのですが、それ以上、先には進みません。プログラミングに携わったことのある友人曰く、「更に、情報の蜜度を上げること(情報同士を蜜にしていけばいい)につきる」と言ってました。それは、もっと情報を一箇所に集約すべきか、1つの情報に幾重にも積み重ねて追加していくべきか、2つの情報を結びつけて近づけるべきか、わからなくなりました。どっから手をつけていくべきか、初心者でもわかる手順の組み立て方法があれば教えて頂けないでしょうか?宜しくお願い致します。

A 回答 (7件)

組み立て方法というか、自分の頭の中にあるあいまいなものを明確にしていくのが、まずはいいんじゃないでしょうか。


たとえば、
 1、プログラム開始
 2、前準備をする
 3、メインの処理をする
 4、後始末をする
 5、プログラム終了
みたいな「全世界のプログラム対応チョー汎用設計」を書いて
それぞれの処理を具体的に(わかるところから)分割していく。
前準備といっても何を準備したらいいのかわからないときはそのまま放置。
メインの処理をいろいろ考えていって「先にやっといた方がいいな」と思うことがあったらそれを前準備に放り込む。
何度も同じ処理をしそうならそれをまとめて専用の処理を作ってやる。

こんな感じで作りながら少しずつ広げたりまとめたりしていくのも、慣れるためにはいいですよ。
つまり「どっから手をつけていくべきか」という問いには「(最初のうちは)思いついたところからでいい」という回答になります。

慣れてくるとトップダウンとボトムアップが入り乱れてほぼ同時に「これは必要だな」とか「こういう流れだな」とか、全体から細部までパッと思いつくようになりますから、まずは書いて・読んで・試して数をこなしてみることです。

蛇足ですが、プロの現場でも一方通行のきれいなトップダウンとかボトムアップとかは稀で、大抵は行きつ戻りつしながらブラッシュアップしていくことになります。

この回答への補足

遠回りですが、(1)手順は「静的な情報(データ)」に「時間という情報」を組み合わせることで(つながりを持たせることで)「動的な情報が(時系列的に)組み立てられる」って感じで捉えていいのでしょうか?(2)話は少し飛躍しますが、プログラミング(手順)は、「時系列的ゆえに(直列的な)縦の関係だ」と思えてしまいますが、連続する情報と情報の間に意味がなくても成立するのでしょうか?ただ、行列のできるラーメン屋のように「守るべき順番を守る」感じなんでしょうか?「FirstではAという処理→SecoundではBという処理→ThirdではCという処理をする」という形で、「A→B→C」に因果関係なしでも、みんな「うまい(処理)!」と思ってるから順番を守ってるって感じなんでしょうか?時系列って何なんでしょうか?(難しいです)最後に、(3)「後始末の処理」とはどういう感じの場合、放り込めばいいのでしょうか?検証や改善点の工夫に役立てるという感じでしょうか?後戻りするのが面倒な場合、メインの処理の中で(間違いそうミスしそうな所に)チェック的に入れてみるというのはどうでしょうか?すいません。もの凄い素人の発想で申し訳ありません。お時間のある時に是非、ご回答を伺ってもよろしいですか?よろしくお願い致します。

補足日時:2006/03/25 17:12
    • good
    • 0

No.1です。

追加というか補足です。

私が「オブジェクト指向」の勉強を薦めたのは、
初心者が初めのころに作るプログラミングはほぼ手続き型であり、
それを「手続き型だ!」と意識するのが難しいからです。
逆に、オブジェクト指向というものを知ることで、手続き型を意識することができるようになります。

・・・と、こういう意図の発言であり、質問に対してオブジェクト指向を単に薦めたのではありません(汗
しかし、よく考えれば初心者の方にオブジェクト指向は難しいかもしれませんね・・・。むぅ・・・。

深く考えすぎないほうがいいですよ(笑)
    • good
    • 0

情報を整理するのにマインドマップという方法があります。



参考URL
マインド・マップとUMLを使った要求分析支援

参考URL:http://www.atmarkit.co.jp/farc/rensai/mm01/mm01a …
    • good
    • 0

>トップダウン手順の場合、「ある物事がどういう手順から構成されているか」の定型やパターンなどあるんでしょうか?


月並みな話ですが、機能分析して機能毎の分割くらいなことしか私には言えません。
パターンに当てはめるということもあるかもしれませんが、
そうした分析にこれというスタンダードなものは無いように思います。
表面的に同じ動作をするプログラムにしても機能分析の切り口が違って内部的には全然違うプログラムであるということが(もちろん)あり得ます。
    • good
    • 0

いきなりトップダウンはなかなか難しいですね。



思いつくことを全部書き上げてみて、それをグループ化して順番をつけて
改めてブレークダウンしていくというのがやりやすいと思います。
    • good
    • 0

質問者の言われる手順は、いわゆるボトムアップ手順のように思われます。


細分化されたものをいかに組み立てていくかということですね。
逆の考え方として、トップダウン手順があります。
ある物事がどういう手順から構成されているか細分化していくというものです。
ボトムアップの場合、方向が決まりにくいということがあります。
どちらか片方ではなくて、両方から考えるのがよろしいかと思います。

この回答への補足

>ボトムアップの場合、方向が決まりにくいということがあります。

そうそう、その通りです。トップダウン手順の場合、「ある物事がどういう手順から構成されているか」の定型やパターンなどあるんでしょうか?

あれば教えて頂けませんか?よろしくお願いします。

補足日時:2006/03/23 19:24
    • good
    • 0

ヒントのような形で申し訳ないのですが・・・。



「オブジェクト指向」について学んでみてはいかがでしょうか?
近くの書店に必ずと言ってよいほど関連書籍がたくさん置いてあります。
それでだいたいの疑問は解決すると思いますよ。

この回答への補足

「オブジェクト指向」は「手続き型ではない」といわれてますが、手順はどちらかと言えば手続き的ではないのでしょうか?という疑問が・・・。でも、ありがとうございます。参考にさせて頂きます。

補足日時:2006/03/23 19:38
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!