質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • Linux

    3890questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Apache

    1855questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • PostgreSQL

    1100questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Perl

    461questions

    Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

メンテ保守性の向上

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 550

taromame

score 7

中小企業の管理部付社内SEをやっております。
サーバー入替に伴い社内LAPP業務システムを多少ブラッシュアップする予定です。
# なぜLAPP、、という類のご意見はご遠慮ください

引継同時は完全一致するCGIスクリプト(約40scripts)とテンプレートHTMLが利用拠点(10箇所近く)のディレクトリ毎に同セットがおいてある状態だったので
これは修正の度にキレる自分が容易に想像でき
段階的に関数をライブラリ化してコード整理(コード行1/3に!)して
テンプレートHTMLも非推奨タグを一掃して、1セットを全利用拠点で参照するように変更済(ファイル数は1/10に!)です。

ならばこの機会に、とCGIスクリプトも1セットにと思い
起動パラメータで初期値・設定ファイルを分岐すればいい、と考えました。
すでに引数が一つで済むような単純な機能はこの方法で実装しています。

ふと こういう考え方?というかやり方は
プログラムの書き方というか、保守性やメンテ効率の為になら「アリ」なんだろうか?

と疑問に思い、同業の方のご意見頂戴したく投稿いたしました。


  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

前任者様がコピペでコードを増殖させていたのは未熟さのせいかもしれませんがもしかしたらバックオフィスという職種の性質のせいかもしれません。
成果は評価されないがミスは全社から責められるというバックオフィス業務の性質上、新規ページを追加する際に既存ページに絶対にデグレが出ないように、つまり手を触れなくていいようにコピペを繰り返していたのではないかということです。

同レベルの安全性を、いや保身をどのように実現するかというと、モダンプログラマならやはりテスト駆動でしょう。
コードの正しさをがちがちのテストコードで保証し、デグレを作りそうになってもデプロイ前に未然に潰せる環境を作ることがセットで必要になるかと存じます。

と言っても、これだけ大規模なリファクタリングをしたのならすでにテストコードはほぼ整備済みということでしょうかね。だとしたら釈迦に説法すみません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/08/25 14:57

    yuba様、回答ありがとうございます。

    すみません、質問がわかりづらかったようで
    前任者のコードが「なぜそうなったのか?」を推測していただいたようなのですが
    今回皆様からご意見頂戴したいのは

    こんなふうに
    http://pekepeke.jp/shop111/sample.cgi
    http://pekepeke.jp/shop112/sample.cgi
    http://pekepeke.jp/shop113/sample.cgi
    :
    店舗の数だけ同じスクリプトを設置するのは無駄だしメンテが面倒だから
    こうすればいいんじゃないか?

    http://pekepeke.jp/scripts/sample.cgi?パラメータ1=aaa&パラメータ2='xyx'

    という私の考えは「あり」なのかな??です。

    宜しければ引き続きお付き合いください

    キャンセル

  • 2015/08/25 15:24

    こちらこそ、回答の一番大事な部分を省略していました。
    ありだと思いますし、ありを通り越して当然だと思います。
    前任者様のソース構成はあまりにもひどいかと思いますが、そのひどさにも理由があるのかなと考察を述べました。

    キャンセル

  • 2015/08/28 09:53

    yuba様

    続投に気づかず失礼しました。

    < ありだと思いますし、ありを通り越して当然だと思います。

    後押ししていただいた気分。俄然心強いです。
    ちょうど新サーバができあがってきたので迷わずにやってみようと思います。

    < 前任者様のソース構成はあまりにもひどいかと思いますが、そのひどさにも理由があるのかな

    はい、「すでに退職を決めてたからやっつけ仕事」とも聞いてますし
    ローカル環境でコード書いてftpアップロードするタイプだったので
    同じものをディレクトリ毎に放り込む方が楽だったんだと、予想しております。

    サーバ移行は初めてなのでまた質問させていただきます。
    助言いただき、本当に有難うございました。

    キャンセル

関連した質問

同じタグがついた質問を見る

  • Linux

    3890questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • Apache

    1855questions

    Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

  • PostgreSQL

    1100questions

    PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

  • Perl

    461questions

    Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。