2005-04-20 22:05:09

プログラムは分岐と分岐以外の2種類で構成されている

テーマ:ソフトウェア開発

プログラムを勉強する時に、まず最初に行うのが「Hello World」を画面に表示することである。そしてその次に、データの種類、演算子、制御について覚えることになる。あまりに最初に出てくるので無意識的に使っていることが多いと思うが、プログラムは次に進むか、分岐するかのどちらかしかない。例外処理も分岐の1つだ。

一般的に、分岐が多くなればなるほど複雑になるといえるだろう。逆に言うと、分岐以外の部分は経路が1本なので複雑になりようがないのである。スパゲティコードと呼ばれるものは、分岐に分岐が積み重なって、流れが判断できなくなるところに問題がある。分岐と分岐以外を明確に分離したら、プログラムの構造が作る人にも見る人にもわかりやすいのではないか。

 

初心者がプログラムを学ぶ時に難しいと思われることの1つに、複雑になった1つのメソッドを複数のメソッドに分割する方法があまり明確でないということがあげられる。

 

共通なメソッドを切り出すのはわかりやすいが、それ以外にもただ単純に長いから分割せよと言われてもどこで分割していいのかよくわからない。そこで明確な方針として、分岐と分岐以外に分離するというのはどうだろうか。分岐用のメソッドは分岐ロジックだけに思考を集中できるので、少々冗長になるかもしれないが、バグの温床となるのを防ぐ事ができるだろう。

 

また、分岐は全て管理すべきものである。ラクだからという理由でコーディングの段階で勝手に分岐を増やすということは本来ありえない話なのだが、同じメソッドでいろいろなことを処理させようとすると、勝手に分岐が増えていく。そうならないためにも、分岐と分岐以外を明確に分離したほうがよいと思われる。

 

APIだライブラリだという前に、プログラムの構造はどうすれば必要以上に複雑にならないか、ということを考えないといけない。分割統治も分割の仕方を間違えたら意味が無いということだ。どんな高度な言語でも、考え方次第で複雑にもなるし簡単にもなる。MDAだから簡単になるとかは脳みそ思考停止状態である。キーワード1つで複雑さが解消できるわけではないのだから。

 

※ 以前に書いた「IF文を極力減らすと見晴らしのいいプログラムになる」も、この記事の内容と重複している部分がありますので、興味がある方はどうぞ。

AD
いいね!した人  |  コメント(19)  |  リブログ(0)

daxanyaさんの読者になろう

ブログの更新情報が受け取れて、アクセスが簡単になります

コメント

[コメントをする]

19 ■無題

内田康夫 鬼首殺人事件

浅見光彦  奥山 大場 浅見陽一郎 押切 浅見雅人 浅見雪江 古賀博英 古賀英二郎 沢木義之 桜井呑玉 桜井誠吾 斉藤 高橋典雄 高橋時子 高岳尚人 永倉 藤田 広田毅一 萩谷 松島珠里 松島四郎 丸岡裕之進 山根 吉田須美子

秋田県雄勝郡
秋田県湯沢市 

18 ■セックスフレンド

気軽にセックスを楽しめる!ご近所同士のスキンシップやセックスしたい純粋な願望を満たしてみませんか?写メもあって直接メール送信OK

17 ■アダルト

アダルトサークルをご紹介!素敵なきっかけ探し!アダルト好きな方にはお薦め

16 ■アダルト

アダルトな一時を楽しめる…素敵なアダルトライフを求める女性様より朗報です。

15 ■アダルトな時間には優雅な楽しみがあるのです

アダルト

14 ■tadalafil

pill cheap http://iii.mpage.jp/levitra-online.html levitra pill
pill http://www.weblog.ro/sukkk cialis online online
pill buy http://jroller.com/page/buycialis cialis order
pill pill http://jroller.com/page/buyphentermine phentermine cheap
order online http://www.weblog.ro/sukasuka phentermine pill
pill http://iii.mpage.jp/tadalafil-online.html tadalafil pill buy
buy http://jroller.com/page/buylevitra levitra buy buy
http://iii.mpage.jp/buy-cialis-generic.html cialis order pill online
pill order http://www.weblog.ro/urodurod tadalafil online
buy http://iii.mpage.jp/phentermine-online.html phentermine order order
http://www.weblog.ro/schenok levitra online online pill

13 ■無題

http://www.bestxenical.forumup.com <a href="http://www.bestxenical.forumup.com" title="buy online xenical"> buy online xenical </a> buy online xenical [URL=http://www.bestxenical.forumup.com] buy online xenical [/URL] buy online xenical [LINK=http://www.bestxenical.forumup.com]buy online xenical [/LINK]
http://www.effectsside.forumup.com <a href="http://www.effectsside.forumup.com" title="effects side xenical"> effects side xenical </a> effects side xenical [URL=http://www.effectsside.forumup.com] effects side xenical [/URL] effects side xenical [LINK=http://www.effectsside.forumup.com]effects side xenical [/LINK]
http://www.weightlossing.forumup.com <a href="http://www.weightlossing.forumup.com" title="loss weight xenical"> loss weight xenical </a> loss weight xenical [URL=http://www.weightlossing.forumup.com] loss weight xenical [/URL] loss weight xenical [LINK=http://www.weightlossing.forumup.com]loss weight xenical [/LINK]
http://www.xenicalinformation.forumup.com <a href="http://www.xenicalinformation.forumup.com" title="information xenical"> information xenical </a> information xenical [URL=http://www.xenicalinformation.forumup.com] information xenical [/URL] information xenical [LINK=http://www.xenicalinformation.forumup.com]information xenical [/LINK]
http://www.xenicalordering.forumup.com <a href="http://www.xenicalordering.forumup.com" title="online order xenical"> online order xenical </a> online order xenical [URL=http://www.xenicalordering.forumup.com] online order xenical [/URL] online order xenical [LINK=http://www.xenicalordering.forumup.com]online order xenical [/LINK]

12 ■無題

http://www.bestxenical.forumup.com <a href="http://www.bestxenical.forumup.com" title="buy online xenical"> buy online xenical </a> buy online xenical [URL=http://www.bestxenical.forumup.com] buy online xenical [/URL] buy online xenical [LINK=http://www.bestxenical.forumup.com]buy online xenical [/LINK]
http://www.effectsside.forumup.com <a href="http://www.effectsside.forumup.com" title="effects side xenical"> effects side xenical </a> effects side xenical [URL=http://www.effectsside.forumup.com] effects side xenical [/URL] effects side xenical [LINK=http://www.effectsside.forumup.com]effects side xenical [/LINK]
http://www.weightlossing.forumup.com <a href="http://www.weightlossing.forumup.com" title="loss weight xenical"> loss weight xenical </a> loss weight xenical [URL=http://www.weightlossing.forumup.com] loss weight xenical [/URL] loss weight xenical [LINK=http://www.weightlossing.forumup.com]loss weight xenical [/LINK]
http://www.xenicalinformation.forumup.com <a href="http://www.xenicalinformation.forumup.com" title="information xenical"> information xenical </a> information xenical [URL=http://www.xenicalinformation.forumup.com] information xenical [/URL] information xenical [LINK=http://www.xenicalinformation.forumup.com]information xenical [/LINK]
http://www.xenicalordering.forumup.com <a href="http://www.xenicalordering.forumup.com" title="online order xenical"> online order xenical </a> online order xenical [URL=http://www.xenicalordering.forumup.com] online order xenical [/URL] online order xenical [LINK=http://www.xenicalordering.forumup.com]online order xenical [/LINK]

11 ■無題

All you need is here:
http://www.buyxenical.forumup.com <a href="http://www.buyxenical.forumup.com" title="buy xenical"> buy xenical </a> buy xenical [URL=http://www.buyxenical.forumup.com] buy xenical [/URL] buy xenical [LINK=http://www.buyxenical.forumup.com]buy xenical [/LINK]
http://www.onlinexenical.forumup.com <a href="http://www.onlinexenical.forumup.com" title="online xenical"> online xenical </a> online xenical [URL=http://www.onlinexenical.forumup.com] online xenical [/URL] online xenical [LINK=http://www.onlinexenical.forumup.com]online xenical [/LINK]
http://www.cheapxenical.forumup.com <a href="http://www.cheapxenical.forumup.com" title="cheap xenical"> cheap xenical </a> cheap xenical [URL=http://www.cheapxenical.forumup.com] cheap xenical [/URL] cheap xenical [LINK=http://www.cheapxenical.forumup.com]cheap xenical [/LINK]
http://www.discounting.forumup.com <a href="http://www.discounting.forumup.com" title="discount xenical"> discount xenical </a> discount xenical [URL=http://www.discounting.forumup.com] discount xenical [/URL] discount xenical [LINK=http://www.discounting.forumup.com]discount xenical [/LINK]
http://www.orderxenical.forumup.com <a href="http://www.orderxenical.forumup.com" title="order xenical"> order xenical </a> order xenical [URL=http://www.orderxenical.forumup.com] order xenical [/URL] order xenical [LINK=http://www.orderxenical.forumup.com]order xenical [/LINK]

10 ■無題

The best resources about online poker are:
<a href="http://helen_watson.t35.com/index.html"> online poker </a> It really helps! I like it. [URL=http://helen_watson.t35.com/index.html]online poker [/URL] [LINK=http://helen_watson.t35.com/index.html]online poker resources [/LINK]
<a href="http://helen_watson.t35.com/online-poker.html"> online poker </a> It really helps! I like it. [URL=http://helen_watson.t35.com/online-poker.html]online poker [/URL] [LINK=http://helen_watson.t35.com/online-poker.html]online poker [/LINK]
<a href="http://helen_watson.t35.com/poker.html"> poker </a> It really helps! I like it. [URL=http://helen_watson.t35.com/poker.html]poker [/URL] [LINK=http://helen_watson.t35.com/poker.html]poker [/LINK]

9 ■buy online


<a href="http://pharma-store.docspages.com/xenical/xenical-side-effects.htm">xenical-side-effects</a>
<a href="http://pharma-store.docspages.com/vioxx/order-vioxx.htm">order-vioxx</a>
<a href="http://pharma-store.docspages.com/tramadol/buy-tramadol.htm">buy-tramadol</a>
<a href="http://pharma-store.docspages.com/ambien/generic-ambien.htm">generic-ambien</a>
<a href="http://pharma-store.docspages.com/adipex/disocunt-adipex.htm">disocunt-adipex</a>
<a href="http://pharma-store.docspages.com/levitra/order-levitra.htm">order-levitra</a>
<a href="http://tablets.php5.cz/hydroxyzine/apo-hydroxyzine.htm">apo-hydroxyzine</a>
<a href="http://tablets.php5.cz/guarana/guarana-brazil.htm">guarana-brazil</a>
<a href="http://tablets.php5.cz/fluoxetine/buy-fluoxetine.htm">buy-fluoxetine</a>
<a href="http://tablets.php5.cz/guarana/guarana-antarctica.htm">guarana-antarctica</a>
<a href="http://tablets.php5.cz/guarana/guarana-benefit.htm">guarana-benefit</a>
<a href="http://tablets.php5.cz/guarana/information-on-guyana.htm">information-on-guyana</a>
<a href="http://tablets.php5.cz/guarana/guarana-benefit.htm">guarana-benefit</a>

8 ■best online


<a href="http://lisinopril.php5.cz/order-lisinopril.htm">order cheap lisinopril online</a>
<a href="http://metformin.php5.cz/order-metformin.htm">order cheap metformin online</a>
<a href="http://phentermine777.php5.cz/order-phentermine.htm">order cheap phentermine online</a>
<a href="http://soma.php5.cz/order-soma.htm">order cheap soma online</a>
<a href="http://tramadol7.php5.cz/order-tramadol.htm">order cheap tramadol online</a>
<a href="http://viagra1.php5.cz/order-viagra.htm">order cheap viagra online</a>
<a href="http://vioxx.php5.cz/order-vioxx.htm">order cheap vioxx online</a>
<a href="http://wellbutrin.php5.cz/order-wellbutrin.htm">order cheap wellbutrin online</a>

7 ■buy online


<a href="http://adipex7.php5.cz/order-adipex.htm">order cheap adipex online</a>
<a href="http://alprazolam13.php5.cz/order-alprazolam.htm">order cheap alprazolam online</a>
<a href="http://anxiety.php5.cz/order-anxiety.htm">order cheap anxiety online</a>
<a href="http://celebrex1.php5.cz/order-celebrex.htm">order cheap celebrex online</a>
<a href="http://cialis7.php5.cz/order-cialis.htm">order cheap cialis online</a>
<a href="http://hydrocodone123.php5.cz/order-hydrocodone.htm">order cheap hydrocodone online</a>
<a href="http://levitra7.php5.cz/order-levitra.htm">order cheap levitra online</a>

6 ■buy online


<a href="http://mysite.fivecubed.com/red-dog/red-dog.htm">red dog</a>
<a href="http://mysite.fivecubed.com/red-dog/one-red-dog.htm">one red dog</a>
<a href="http://mysite.fivecubed.com/red-dog/concrete-dog-red.htm">concrete dog red</a>
<a href="http://mysite.fivecubed.com/red-dog/dog-learn-red.htm">dog learn red</a>
<a href="http://mysite.fivecubed.com/red-dog/red-dog-beer.htm">red dog beer</a>
<a href="http://mysite.fivecubed.com/red-dog/red-healer-dog.htm">red healer dog</a>
<a href="http://mysite.fivecubed.com/red-dog/red-dog-shoes.htm">red dog shoes</a>
<a href="http://mysite.fivecubed.com/red-dog/red-dog-cafe.htm">red dog cafe</a>
<a href="http://mysite.fivecubed.com/red-dog/red-dog-motorsports.htm">red dog motorsports</a>

5 ■buy online


<a href="http://lisinopril.php5.cz/lisinopril.htm">buy lisinopril online</a>
<a href="http://metformin.php5.cz/metformin.htm">buy metformin online</a>
<a href="http://phentermine777.php5.cz/phentermine.htm">buy phentermine online</a>
<a href="http://soma.php5.cz/soma.htm">buy soma online</a>
<a href="http://tramadol7.php5.cz/tramadol.htm">buy tramadol online</a>
<a href="http://viagra1.php5.cz/viagra.htm">buy viagra online</a>
<a href="http://vioxx.php5.cz/vioxx.htm">buy vioxx online</a>
<a href="http://wellbutrin.php5.cz/wellbutrin.htm">buy wellbutrin online</a>

4 ■buy online


<a href="http://adipex7.php5.cz/adipex.htm">buy adipex online</a>
<a href="http://alprazolam13.php5.cz/alprazolam.htm">buy alprazolam online</a>
<a href="http://anxiety.php5.cz/anxiety.htm">buy anxiety online</a>
<a href="http://celebrex1.php5.cz/celebrex.htm">buy celebrex online</a>
<a href="http://cialis7.php5.cz/cialis.htm">buy cialis online</a>
<a href="http://hydrocodone123.php5.cz/hydrocodone.htm">buy hydrocodone online</a>
<a href="http://levitra7.php5.cz/levitra.htm">buy levitra online</a>

3 ■buy online


<a href="http://babu.php5.cz/online-casino/online.htm">online casino</a>
<a href="http://babu.php5.cz/online-casino/new-online-casino.htm">new online casino</a>
<a href="http://babu.php5.cz/online-casino/neteller-online-casino.htm">neteller online casino</a>
<a href="http://babu.php5.cz/online-casino/newest-online-casino.htm">newest online casino</a>
<a href="http://babu.php5.cz/online-casino/online-casino-bonus.htm">online casino bonus</a>
<a href="http://babu.php5.cz/online-casino/find-online-casino.htm">find online casino</a>
<a href="http://babu.php5.cz/online-casino/internet-casino-gambling-online.htm">internet casino gambling online</a>
<a href="http://babu.php5.cz/online-casino/top-rated-online-gambling-casino.htm">top rated online gambling casino</a>
<a href="http://babu.php5.cz/online-casino/casino-gambling-holdem-online-poker-texas.htm">casino gambling holdem online poker texas</a>
<a href="http://babu.php5.cz/online-casino/mania-online.htm">mania online</a>

2 ■ネスト限界深度

今時C言語でもないでしょーが、Cでのソースコードに多次元配列の初期化コードなんて入れる(入れてた)場合の視覚的限界次元数って3次元変数までじゃないですか。てゆーか3次元は既に何だか解らない状態ですけど。

分岐のネストも3次元目は既に混乱してる、と思えますな。そういうことが起こる仕様が間違ってるというか。
プログラマが勝手やっちゃうならどこまでもやれますけどね……

そういう人ってディレクトリもやたら掘りまくるんだろうなぁ。で全部パス通したり orz

1 ■たしかにif文の使い方は

プログラムの実力を測るための指標かも。まえに一緒に仕事をした協力会社の人員のかいたソースコードはif文(最大でネスト10!!)の嵐でした。

コメント投稿

AD

ブログをはじめる

たくさんの芸能人・有名人が
書いているAmebaブログを
無料で簡単にはじめることができます。

公式トップブロガーへ応募

多くの方にご紹介したいブログを
執筆する方を「公式トップブロガー」
として認定しております。

芸能人・有名人ブログを開設

Amebaブログでは、芸能人・有名人ブログを
ご希望される著名人の方/事務所様を
随時募集しております。