• ベストアンサー

プログラムの再利用性について。

プログラムはPerl,PHP,VBの初心者を抜けたくらいです。 一通り自作はできるけど、辞書片手、ネットで調べ調べのレベルです。 プログラムでモジュールやコードを再利用すること視野に入れて開発する事が有能とされていますが、一般レベルでは意識する必要があるのでしょうか? 一般ではHPにアップロードするのは一つな訳だし、個人のHPではモジュールの開発まではしないし、サブルーチンで十分。 ましてや、モジュールをアップする事も少ないですし。 例えば、書き込み処理を外部ファイル化して、掲示板と日記とかから利用するのは問題があると思うのですが。 例え同じ内容でも掲示板と日記それぞれで書き込み処理するファイルを作成した方がいいと思うのですが。 あ、一つの方がサーバのアクションが減ってサーバ的には負荷が少ない?? というか、エラー処理やヘッダーやフッターは基本的にどのCGIでもあまり変わらないので、コピーして使ってますよね? これは再利用と言えるレベルではないですよね。 みんな当たり前のようにやってると思うし。 私は書き込み処理やエラー処理、タグチェックも、基本は同じですがその都度変えてます。 その方がそのスクリプトにあった処理ができるからです。 その代わり、仕様のコメントを丁寧に書いています。 メンテナンス面には面倒と思うけど、基本は同じなので、その部分を変えればいいだけだし。 皆さんは、どういうものを再利用を意識して書いてますか?

noname#15164
noname#15164

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

  • ベストアンサー
回答No.4

> 私は書き込み処理やエラー処理、タグチェックも、基本は同じですがその都度変えてます。 『すみません、その「書き込み処理」ですが、...... という組み合わせの文字が入力されると、システムがクラッシュするので、この文字列ははじくようにしてください。』 という連絡があったときに、「速やかに」「安全に」「すべてに」対応できるかどうかという問題だと思います。

noname#15164
質問者

お礼

そういわれると、確かにすぐに対処はできないかもしれませんね。 と、言った方がいいかもしれませんね。 っていうか、if文なり文字置換なりで、コピー&ペーストしていくだけですが。 。。。というか、そういう報告があったら、私は正常に動いているスクリプトも停止させて、一から見直すと思いますが。 でも、再利用というか、処理の統一が便利なのは、分かってきました。

その他の回答 (3)

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.3

>メンテナンス面には面倒と思うけど、その部分を変えればいいだけだし。 そう思うか思わないかの違いがもっとも大きいと思います。 ある程度大きな物や継続的に使い修正していく物ならメンテナンス性を考えた方がトータルでははるかに楽ですから。 これは言葉では納得できないかも知れませんし、メンテナンスの手間を体験しても変わらない人もいますけど。 個人だろうが複数だろうが変わりません。 また、個人でも今の自分と過去の自分と未来の自分と・・で感覚的には複数のように感じますし。 確かに再利用を意識しないでもプログラムは書けますが、そういうのが一般レベルかどうかはなんとも言えないでしょう。 初級者ではそこまで気が回らないだろうし、実現も無理かなとは思いますし、体感的にもメリットを感じる機会もないようには思いますが。 プログラミングのレベルとしては低いとは思いますし、仕事の場合なら低レベルのプログラマと判断し、そういう対応をします。言語は関係ありません。 >「サーバのメモリーを気にかけている。」とか、「無理な負荷をかけないように努力している。」とかの方が個人のPerlユーザーのレベルが高いと思うけど。 レベルの高い人は再利用性もこういうことも含めて当然やってるでしょう。 まあ、保守性や再利用性は地味ですから、見栄え(?)はこういう方が良く見えるのかも知れませんけど。

noname#15164
質問者

お礼

コンスタントにものを作る側と、そうでない私の違いですかねー。 ふと、再利用性を重視すると、処理が遅くなったり、ややこしくなる事はないのでしょうか? 処理が簡単になるのは、すぐに想像できますが。

noname#12761
noname#12761
回答No.2

私は Perl はあまり使ってませんが「一般レベル」があいまいではないでしょうか。 「一般レベル」はどちらかと言うと コードの意味はほとんどわからず公開された コードをアップロードして利用している方がほとんどではないでしょうか。当然そのような人にとって「コードの再利用」は無縁ですしそれでいいと思います。 また数本のプログラムの作成ぐらいでは確かに無理に「コードの再利用」を意識する必要はないと思います。 実際私も Perl の場合ちょこっとしか利用してませんので再利用性は意識していません。 しかし、Perl に限らずそれなりの本数のプログラム作成をこなし常に機能的な向上を目指す場合、必然的にプログラムの再利用性は意識せざるを得なくなります。 Perl もそのような要求に応えるため Object 指向を取り入れ進化して行っています。 yakusoku さんがその必要性を感じていないと言う事はそういうレベルで Perl を利用していると言う事でそれはそれで構わないのではないかと思います。 しかし、私がよく利用する VB や C++ 等では、私自身の class ライブラリー がかなり蓄積されており、それなりの機能を実装したアプリの作成時間が大幅に短縮され手放せないものとなっています。 ある程度の数のプログラムの作成をこなしより高度な機能の実装をめざすなら「プログラムの再利用性」を意識するのは不可欠だと思います。

noname#15164
質問者

お礼

お礼に書いたアドレスによると、Rohypnolさんのいう一般レベルはレベル1みたいですねー。 一応、私はある程度自作できる人を一般=普通としてました。 カテゴリーが技術者向けのプログラムなので、その辺は想像してくれるかと。 (・・・嘘です、補足のし忘れです。^^;) 回答は、職業プログラマーでは再利用性は必要。 趣味のプログラマーでは、それほど必要ない。 という意見にまとまると思っていたので、予想通りと言えば予想通りです。 私も再利用できるサブルーチンを作成するようにしていますが、サブルーチンに合わせて本体のスクリプトを改造するという本末転倒な事に陥るよりは、そのスクリプトに合わせたサブルーチンを作った方がわかりやすいかと思うし。 では、サブルーチンをさらに細分化して、最小単位にすればいいとも思いますが、サブルーチンから、さらにサブルーチンをいくつも読み出すのも負荷につながると思うし。 PHPではグローバル変数をあまり使わないようにしているので、引数を考えるのも面倒だし。 まぁ、素人なんですが。^w^

  • OsieteG00
  • ベストアンサー率35% (777/2173)
回答No.1

再利用というか、分割・細分化するということは可読性の向上につながりますね。自分が作ったコードでも、数ヶ月するとすぐに忘れちゃいますから^^ 確かに、個人レベルでは部品の再利用ということは少なく、ワンオフでのハンドメイド的作成が多くなりますが、損はないと思いますよ。 部品化・独立化をしておくことで、一つのモジュールでの変更を他のモジュールへの変更点を少なくする、という意味があります。 単に部品化・再利用といっても、そのまま利用することもあれば改造して使用することもある。これもりっぱな再利用です。

noname#15164
質問者

お礼

読み返したら、質問が何を意図しているのか自分でも。^^; つたない質問を、理解しようとして頂きありがとうございます。 私は、ついこの前までCGIではサブルーチンをあまり使わないのが、俺なりでいいと思ってました。 一つはグローバル変数はあまり使いたくなかった事、もう一つは流れを意識したかったからです。 今は、サブルーチンをたくさん使っていますが、掲示板や日記、カウンター等の一般にあるものではない変わっているスクリプトを自作しているので、これを別のもので再利用するように作ろうとすると、再度頭を使わなければならず、効率も悪くなると思ったからです。 CGIは私のHPで私のためだけに作っているので、似たようなスクリプトを2個つ来る事はないから。 とはいえ、私も過去のスクリプトを見ても分からない時があるので、仕様や解説は丁寧に書いています。 疑問の発端が下記のアドレスでPerlのスキルレベル表があり、その中で再利用性が高レベルにあったからです。http://d.hatena.ne.jp/naoya/20050809/1123563794 理屈としてはわかるけど、これが個人のPerl作成者に当てはまるかどうかをお聞きしたかったのです。 私は表にはないけど、「サーバのメモリーを気にかけている。」とか、「無理な負荷をかけないように努力している。」とかの方が個人のPerlユーザーのレベルが高いと思うけど。 ちなみに私は、4.5くらいかなー? use strict も使ってるし、モジュールも使った事あるし。

関連するQ&A

  • VBasic 6で作ったプログラムのWeb利用

    Visual Basic 6で作った768 KBほどの計算プログラムを、利用したい人がwebから操作できるようにしたいのですが、基本的なところを教えて下さい。HPはレンタルサーバー(ロリポップ)です。単純にwebから呼び出しても、プログラムがデスクトップにあり、Dドライブに簡単なcsvデータを置いて読み込む方式なので、何かヒント的なものを教えて下さい。

  • アプリケーションのエラーを検出して他のプログラムを実行する方法

    基本的な方法として, (1)プログラムの起動時にエラーレベルを検出 (2)エラーの時には,他のプログラムを起動 という処理をbatファイルで記載しようと考えています。 (Windows2000上での処理です。) ここで,分からない点が, (1)アプリケーションのエラーレベルをどうやって   調べるのか? (2)エラーのときは,ダイアログが立ち上がり,   DOSプロンプトが非アクティブになるので,   DOSプロンプト以外のウィンドウ,ダイアログ   を閉じたい。 という2点です。 よろしくお願いします。

  • 通信系プログラムについて

    通信のプログラムを組んでいます。tera termでサーバ上で作業を行っています。送信プログラム、受信プログラム、制御プログラム、データ書き込みプログラムと四つのプログラムを同時に実行させるのですが、送受信するデータ量が大きいと、受信プログラムやデータ書き込みプログラムにバス・エラーcore dumpedと表示されます。プログラム中の動的メモリ管理はしっかりやっているつもりですが、考えられる原因はなんでしょうか?一つのサーバで全部のプログラムを動かしているのがまずいんでしょうか?

  • クラウドで利用するデータベースについて

    教えてください。悩みすぎて、疲れました(;。;) ipadでアプリを作り、クラウドサーバーを利用します。 そこで、データベースは、「SQlite」をと考えていますが 複数のクライアント(50人~100人)がデータを読み込みます。 一度に処理が集中した場合は、エラーになる事は多くなるのでしょうか? 利用人数も、今後増えてきます。 もし、アクセスエラーが頻発する場合は、「MYSQL」をと考えています。 どなたか、宜しくお願いします。 追記です。 先々で、書き込みも行いますので、書き込みも集中する可能性があります。 となると、Mysqlでしょうか・・・う~ん・・・です。

  • HPの利用について

    友人がHPをbiglobeのサーバーを利用して作りたいとの相談を受けています(それは,ある種の掲示板がbiglobeのサーバー内で出来ることが分かっているためですが)。 現在、biglobeをプロバイダーとして利用しているわけではありませんが、HPだけを作ることが出来るのでしょうか。出来るとすれば、その方法と費用(50MB程度)を教えてください。

  • プログラムから動作が実行できないことについて

    現在さくらインターネットのVPS4Gプランを利用していますが、特定のプログラム(sample.php)を直接ブラウザにアドレスを入力して叩くと動作するのですが、外部のプログラム(Cron処理)で実行するとエラーとなってしまいます。 以前別サーバーを利用していたときは問題なく動作していたため、おそらくサーバー設定の問題かと思いますので解決方法等御座いましたらご指南のほどよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ファイル監視プログラム

    こんにちわ。 ASP.NETでシステムの開発を行っています。サーバ内で別のプログラムが起動しており、そこからファイルに書き込みが行われます。その書き込み/削除が行われたことをASP.NETで監視したいと考えております。 その書き込まれた内容によってASP.NETでの表示内容を変更したりは可能なのでしょうか。 よろしくお願いいたします。

  • 全くの素人です、自分のサーバーにブログを設置できますか?

    人に手伝ってもらってサーバーを構築しております。自分のサーバーにHPを掲載し、掲示板はフリーの物をダウンして利用してます。cgi使用可能なサーバーです、フリーのブログ用のプログラムなどはダウンすることは可能でしょうか?設置するについて注意する点などをご教示ください。私レベルでも可能でしょうか?(レベルと言ってもおわかりにはならないですよねぇ)PC歴だけは長いのですが、知識技能は初心者レベルです。

  • 20年ぶりにプログラムを組みたい

    若いころプログラムを組んでいました。 FORTRAN,Cを中心に、晩年はVisuarl Basic,Visual C++を経験しています。 JAVAは教科書を買いましたが、実務経験はありません。 その後、開発の仕事はしていませんが 事務的なツールとしてExcelマクロなどは簡単なものを利用しています。 HTML,CSS,Flashも趣味レベルで利用しています。 最近時間ができたので、久しぶりに「プログラミング」をして 趣味で使うツールを開発したいのですが 何しろ20年ぶりです。 上記の基本がある前提で GUI(死語?)からの入力でデータを受け付けて、絵を書くプログラム(A4の紙に印刷したい)を 作りたいと思いますが、お勧めの言語はありますか? お勧め、とは ・開発環境が安価(できれば無料) ・文法がCに近いもの ・または、初心者向けの言語 といったものを期待しています。

  • Perlの日記プログラムがIIS+ActivePerlで動かない

    ひとに見せるためでなく書いていた日記があり、これまで無料のCGI可サーバを使っていたのですが、今度からCGI不可になるということで、自宅のマシン(Win2K)にIIS+ActivePerlを導入して動作させようとしています。 過去データの表示はできるようになったのですが書き込みができません。エラー表示もなくタイムアウトになります。 無料サーバを使っていたときはFTPでファイルをアップロードしたときにパーミッションを変えたりしたのですが同じようにFTPソフトで変更しようとしたらWindowsではパーミッションを変更できない、と出ます。 このプログラムはIIS+ActivePerl上では動かせないのでしょうか。それとも何か設定を変えれば書き込みできるようになるのでしょうか。なお、日記CGIはnickyを使っています。 基礎的な知識がなく何が問題なのかアタリもつけられません。「ここらへん疑ってみ」などのアドバイスがありましたら教えてください。よろしくお願いします

専門家に質問してみよう