キャッチイメージ

TOP > BLOG > 2009年07月14日 プログラムの書き方

プログラムの書き方

先週中に更新のはずがすっかり遅くなってしまい,2話フルが先に公開されてしまいました.ごめんなさい.そして,スパッツPさん,いつも広告ありがとうございます.メンバーを勝手に代表してお礼申し上げます.

さて,ema は現在,irodori にプログラマとして参加しています.このプログラムというのは絵描きや音楽制作以上に,一般に作り方は伝わっていないように思いますので,その過程を簡単にご紹介してみようと思います.概ね,流れは以下の通りです.「何を作るか → 脳内で案出し → 実装 → テスト → デバッグ → 実戦投入 → デバッグ → ループ」

まずは,作るものを決めます.思いつきで作ることもあれば,依頼されて作ることもあります.もちろん,でっかいものを作る場合には,要素要素に分解します.プログラムというのは,文章を書くことに一番似ているように感じています.まずは,テーマを決めます.

つぎに,脳内で案を練ります.道を歩きながらだったり,ご飯を食べながらだったり,お風呂だったり,バイクだったり,どこでもできるのがこの行程の強みです.お絵かき屋さんだと構図とか服装とかを妄想するのに近いのでしょうか?的確なたとえなのかどうかは,わかりませんがw.そして,大体3種類ほどの案を出します.でもって,その中から一番良さそうなものを採用して実装を始めます.

プログラムというのは,ほとんどの場合,お気に入りのテキストエディタを使って,コンピュータへの指示文をごりごり書いていくことになります.この作業を実装と言います.お絵かきだと線を描いたり,色を塗ったりに相当します.残念ながら,コンピュータはまだ日本語などの自然言語を十分に解読してはくれませんので,プログラマという業種が成り立つわけですね.プログラムを書くためには,ざまざまな言語が開発されています.僕は,目的に応じて C 言語か Ruby 言語を用いることがほとんどです.irodori のあれや,これや(秘密?)は Ruby にて動いております.エディタは TeraPad vim を使用しています.感謝感謝.

一通りできあがったら,テストとデバッグを行います.テストは何か入力して,思い通りの結果が得られるかどうかを確認する作業です.もし,結果が予定と反していたら,それを修正するデバッグを行います.お絵かきだと校正?だとか修正だとかに相当するのでしょうか?例えに無理がありそうです.気にくわないと書き直すことがあるのは同じでしょうか?

最近は,プログラムを作る際には,入力と結果のペアを用意してから作るのがベストだということになりつつあります.もっとも,結果が決まらないようなプログラムだと,どうやら動いているっぽい!?みたいなことになるのですが(笑

一通りテストをしたつもりになったら,実際に使用してもらいます.たいてい,ここで新たなバグが見つかります.これがまた,想定抜けの多いこと多いこと.後は,デバッグとテスト,実践再投入の繰り返しとなります.

なお,プログラミングにおいても最初に思いついたアイデアが最後まで残ることは少なく,ほとんどの場合,最後には別物になります.これは創作全般に共通していることなのかもしれません.とにかく,作り始めないと見えないことは多いですし,良い!と思ったことがあまり良くなかったり,妥協の産物が意外と良かったりするものなのだと思います.

トラックバック(0)

トラックバックURL: http://iro-dori.jp/mtos/mt-tb.cgi/93

コメント(2)

コメントありがとうございます.

あまり具体的なことを書けていませんが,プログラミングはフリーの実行環境と,テキストエディタさえあれば,始めることができますので,是非チャレンジしてみて下さいm(__)m

初めまして、いつも眼鏡の更新を楽しみにいている高校生です^^

自分は大学でプログラムの勉強をしたいとおもっていますのでemaさんのこういうブログは
すごく参考になってますw

今後も応援させてもらいます^^

最近のコメント

  • ema: コメントありがとうご ...
  • gori: 初めまして、いつも眼 ...
var amzn_wdgt={widget:'MyFavorites'};amzn_wdgt.tag='irodori076-22';amzn_wdgt.columns='1';amzn_wdgt.rows='2';amzn_wdgt.title='いろどり作品';amzn_wdgt.width='250';amzn_wdgt.ASIN='B002VHLOBE,B003HYTJX0';amzn_wdgt.showImage='True';amzn_wdgt.showPrice='True';amzn_wdgt.showRating='True';amzn_wdgt.design='2';amzn_wdgt.colorTheme='Orange';amzn_wdgt.headerTextColor='#FFFFFF';amzn_wdgt.marketPlace='JP';