• ベストアンサー

どうやって作っているの?

最近、シンプルなものかたすごく複雑なものまで、たくさんのCGIスクリプトが公開されていますが、製作者の方々はいったいどのようにして作っていらっしゃるのでしょうか? というのも製作者の方々はすべてのPERLなどのプログラミング言語が頭の中に入っていて、参考書など何も見ずにひたすらプログラミングしているのか、参考書片手に四苦八苦しながらプログラミングしているのかどちらなのでしょう?  もちろんプログラミング歴にもよると思いますが、プログラミング歴何年でどのように作っているのか教えていただければ幸いです。

  • deia
  • お礼率56% (69/122)
  • CGI
  • 回答数5
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
  • callhiro
  • ベストアンサー率35% (54/152)
回答No.4

僕も自作のCGIをふんだんに使ってホームページを作っています。 頭の中に入っているのは最低限必要な部分かな。 最低限といっても、ほとんどの作りたいプログラムが、 この最低限の知識で作れますけどね。 変数はどんな風に扱うかとか、ループはどのように行うかとか、 ファイルはどのように開けるとかその程度です。 あとはその基本的な知識をベースに、 自分のアイデアをいかに表現するかですね。 簡単な文法をうまく組み合わせるだけで、 見た目にはすごく複雑なプログラムを作ることも可能です。 deiaさんのおっしゃる「シンプルなもの」も「複雑なもの」も 意外に中身は似たようなもんなんじゃないかと思います。 すでにできあがっているプログラムを流用することも多いです。 知らない人の作ったプログラムから、何をやっているのかを解析するのは 大変おもしろいし勉強になります。 プログラミングの基本はどれも同じ様なもんです。 初めて覚えたのはC言語ですが、Perlはほとんどそのときの知識に、 ちょっとしたPerl特有の部分を覚えればすぐに修得できました。 実質、Perlでプログラムが組めるようになったのは数時間程度でしたよ(笑) でもクッキーとかのやり方を覚えるたのはもう少し後になってからでしたが・・。 C言語やC言語で、そんな何ヶ月もかかりませんでしたよ。 これは学校の授業で習いましたが、 いちいち教わったのではなくて、全く知らない状態なのにいきなり課題が出され、 それを実現するために自分で一から調べてやっていくといった勉強方法でした。 全く知らない状態からでしたが、いつの間にかプログラムが出来るようになっていました。 プログラムを作る場合だいたい以下のようになるんじゃないでしょうか? 1.まずやりたいことを決める(掲示板を作りたいとか、投票を作りたいとか) 2.自分の完全に覚えている知識である程度作る(初めての場合はそのまま4へ) 3.ちょっと本を見ればわかる、過去に作ったことがあるという事を、本や過去のスクリプトを参照してある程度作る。 4.それでも出来ない場合は、何が出来ないから実現できないのか考える   (ファイルの開け方がわからないとか、繰り返し処理がわからないとか) 5.4でわからなかったことを調べて解決する 5.次回からはこのとき身につけたやり方を利用する。または、このとき作ったスクリプトを参照する。 こんな感じかな。 「調べて解決する」っていうのが難しく聞こえますか? この部分がネットで調べたり、本を読んだり、他の人のスクリプトを参照したりする部分です。 案外すぐに出来ますよ。 一度調べれば、次からはそのときより短時間で同じ事が出来ます。 こういうことの繰り返しなんでしょうね。 完全に覚えていることは基礎的なこと。 経験した処理は調べればすぐにわかるので、必要になったら調べる。または本を見る。 やっぱこういう感じになるかな。 プログラミング歴なんて浅くてもこつをつかめば簡単です。 がんばってくださいな。

deia
質問者

お礼

回答ありがとうございました。とても参考になりました。

その他の回答 (4)

  • duckling
  • ベストアンサー率47% (88/185)
回答No.5

初めは、参考書を眺めながら、 自分の欲しい機能が付いているフリーCGIのソースとにらめっこ。 という形で学んでいました。 今はもう、頭の中に以前ににらめっこしたサンプルが存在しているので、 「常に参考書片手に」ということはないですよ。 久しぶりに使う関数の文法確認のために Perl辞書を覗く程度です。 やっぱり、Perl といえども得意分野があると思うので 「全ての関数が頭に入っている」という方は少ないでしょうが、 必要な時に「あぁ、○○関数があったっけ」 などと思い出す程度には、頭に入っていると思いますよ。

deia
質問者

お礼

回答ありがとうございました。とても参考になりました。

  • 911turbo
  • ベストアンサー率50% (1/2)
回答No.3

プロでも最初は皆、いろんなデータソースからプログラムを引っ張ってきて、中身を解析したり、参考書とにらめっこしながらプログラムを覚えて行きます。 プログラムを作成する本数が増えてくると、いつも使用する、同じようなロジックが沢山できます。 それを、ライブラリーとして、パーツ化しておいて、必要な時にそれを持ってきて、モディファイして使います。 プログラミング歴うんぬん、よりも、どれだけ経験したかによりますよ。 また、開発言語によっても、難易度はかわります。 perlは、比較的易しい(奥は深いですよ)言語だと思います。

deia
質問者

お礼

回答ありがとうございました。とても参考になりました。

noname#25358
noname#25358
回答No.2

 えとですね。  簡単な文法はもちろん覚えていますが、プロの半分ほどは(本当は「たいがい」と書くのが正解だと思うんですが、念のため「半分ほど」ということにしておきます)、「どこを見れば何が分かる」という情報を特にたくさん覚えているんです。  たとえば、ヤフーでこんなキーワードを入れればいい、とか、これこれこういうことを調べるにはこのホームページを見ればいいとか、こういうものを作るには本棚のあの本を引っ張り出してくればいい、とかそういうことです。  すべてのことを暗記して、画面をひたすら見続ける、というのは、まあ、不可能でしょう(^_^;  それをやるためには、コンピューター業界は移り変わりが早すぎます。  たいがい、プロでやってる人間は、「自分がやりたいことがどうやって実現できるか、その方法を調べるのが巧い」人だったりします。  とはいえ、俺みたいな奴もプロでやってるような業界だったりしますが(笑)

deia
質問者

お礼

回答ありがとうございました。とても参考になりました。

noname#225520
noname#225520
回答No.1

 私は本業はハードウェア設計ですのでperlスクリプトは趣味でやっています。最初のうちは先人の皆さんがこしらえたソースをちょこちょこいじることから始めました。キャラクタのデコードなどのように、決まり切った部分はいただいて来ます。  ひょっとしたらこんなことできるかなぁ、と思った時点でリファレンスを見るようにしてます。仲間内のプログラマーも似たようなものだ、と言っております。

deia
質問者

お礼

回答ありがとうございました。とても参考になりました。

関連するQ&A

  • SSIの『#exec cmd』と『#exec cgi』の違いがよくわかりません

    SSI初心者の者です。 参考書(CGIプログラミング入門/翔泳社)を見ながらCGIとSSIの勉強をしてるのですが、SSIの『#exec cmd』と『#exec cgi』の違いがよくわかりません。 本には前者はPerlスクリプトで後者はCGIスクリプトの場合に使うって書いてあるのですが、この2つってどう違うのですか? 前後の文脈から察するにCGIスクリプトは『print "Content-Type: text/html"』があって、 Perlスクリプトはこれが無いものと読み取れるのですが そうなのでしょうか? 初心者向けに御回答していただけますよう、よろしくお願いいたします。

    • ベストアンサー
    • CGI
  • Perl愛してます!私はCにほれました。PerlはCに応用できるのでしょうか?

    Perlを3・4年してました。 たくさんの面白いCGIスクリプトを作ってはホームページで公開して2万人の人から愛されていました。 ほんとPerl愛してます(((((*^o^*)♪ それからいろいろあってPerlをきっかけに本格的プログラミングがしたくて昨年、情報専門学校の体験入学に何回か行ってきました。 そしてCで書かれたスクリプトをこの目で見てきました。 「ん? これはたしかあれじゃないかな?」 なんとなく、書き方が似てるのでまったくCを知らない私でも少々わかる気がしました。 「これはもしかすると・・・」 全部じゃないけど、CってPerlでやってたことを応用できるのかしら?

    • ベストアンサー
    • Perl
  • perlのパスに-wをつけないと500エラーに

    お世話になります。 サーバー会社のトラブルで移転しなければならなくなったのですが、 移転後、cgiの挙動がおかしくなってしまいました。 バージョンperl5.8.8 サーバーOS CentOS なぜかperlのパスに-wをつけないと500のエラーになってしまう状態 #!/usr/local/bin/perl -w print "Content-type: text/html\n\n"; print "test"; これだけのスクリプトでも -wをつけないと500エラーになってしまいます。 -wをつけると動作します。 以前、稼働していたcgiもすべて-wをつけないと稼働しなくなってしまいました。 考えられる原因はどのような事がございますでしょうか。 (root権限のある専用サーバーとなります) 四苦八苦しているのですが、どうしても解決できない為、何卒宜しくお願い致します。 他に必要な情報などございましたらご指摘いただけますと幸いです。

    • ベストアンサー
    • Perl
  • UWSCはどのプログラミング言語?

    いつもお世話になります。 先日UWSCというものを知り、それがスクリプト言語で動くということを知ったのですが、 UWSCというのは、どのプログラミング言語を覚えれば使いこなせるのでしょうか? プログラミング言語にもC言語やperl,php等あると思うのですが、どれがどのように違うのかがさっぱりわかりません。 よろしくお願いします。

  • CGIを作るプログラミング言語は?

    urlの最後の拡張子が cgiでできてるものを作るプログラミング言語は PerlとPHP意外にもありますか?

  • OpenGLでの楕円の描き方

    初めて質問させていただきます。 現在OpenGLを勉強中のOpenGL初心者です。 今OpenGLでの楕円の描き方で四苦八苦しております。 どなたか楕円描写のプログラミングを教えていただけませんか? 言語はVisual C++7.0です。

  • HTMLのCGI全般に関して

    HTMLでホームページを公開しました。HPの中に、「質問して、答える、 二択の投票」みたいなのを、作りたいと思います。 投票はシンプルで簡単なものを作りたいと思ってます 自分なりに調べた結果、 CGIが必要ということがわかりました。そのCGIも、スクリプト言語がある事 がわかりました。 私がHPを公開しているサーバーは、CGIが使えるみたいです。実際、 他カウンターのCGIを使っていま(http://counter.fc2.com/) スクリプト言語については、殆どしりません。(ネットで調べた位) 私のHP公開の現状と、レベルはこの程度です。 この投票を作るのに、CGI以外の方法はありますか? 無理であれば下記の質問へ そこで質問ですが、 (1)CGIの設置について、超初心者でも分かるような 説明をしているサイトはありますか? (2)自分のHTMLにCGIのスクリプト言語を入れる事って出来ますか? (3)スクリプト言語のタグが分かりません。タグ集などはありますか (4)CGIの専用テキストがあるみたいですが、メモ帳で作りたいと思いますが、 専用テキストの方が便利ですか? (5)「CGIスクリプトを作る実行環境があること。」とありますが、どういった設定 をすれば良いですか(URL)

  • コンパイル言語とインタープリター言語の違いについて

    コンパイルするプログラミング言語とインタープリターする プログラミング言語の違いについて教えてください。 特に、開発上および運営上の利点・欠点についてお願いします。 また、CGIでは、PHPやPERLなどのインタープリター言語が 主流ですが、その理由とC言語などで組むのと比較して、 どのような利点があるのか教えてください。

  • プログラムをUTF-8多言語のスクリプトに変更

     Yomiメーラー(http://yomi.pekori.to/yomi-mailer.html)というフリーウェアを利用して、UTF-8の多言語対応のスクリプトに変更しております。 当方、プログラミングの知識がなく、Perlをマニュアル通りに設置するだけの技能しかないので、「中文電脳/UTF-8で簡単多言語CGI」というWebページを参考にUTF-8化に挑んでおります(※上記サイトのURLは長くてうまく記述できそうもないので、Googleで検索してみてください)。  上記「中文電脳/UTF-8で簡単多言語CGI」の指示に従ってそのフリーウェアをUTF-8対応にしていきましたが、どうしても私の猫の額のような知識では分からない箇所が出てきました。  「mimew.pl」というファイルの中で様々な文字モードのための処理のためのスクリプトが書かれていると思いますが、どこをどう無効にすればよいのか分かりません。  テキストファイルとしてこの「mimew.pl」を参考用に、以下の場所にアップロードしてみました(文字化けする場合UTF-8でエンコードしてください)。 http://cgi.www5b.biglobe.ne.jp/~xpress/test-2/img-box/img20080804045138.txt  ご教授頂ければ幸いです。

  • C言語のapacheの設定

    apacheを使うとC言語で作ったプログラムもCGIで動かせると聞きました httpd.confをいじるとC言語でも表示されるらしいのですがいじり方が分かりませんでした。 どのようにいじればC言語を動かせますか? apacheのバージョンはapache_1_3_12_win32です。 普通の(perlでの製作)cgiの拡張子のは動かせます。

    • 締切済み
    • CGI