• ベストアンサー

社内コードをソースコードに直書きすることについて

業務システムを自社で構築、メンテをしていますが、ソースの中の条件文などに社内コードを直に書くのは間違いでしょうか?保守性を考え、そういったものは全てDBのフィールドを追加して管理すべきと言う人もいますが、個人的には頻繁に条件の変更があるのならば(例えば品目コード等)DBで管理すべきでしょうが、なんでもかんでもDBで管理するのは抵抗があります。 皆様はどのようにされているのでしょうか? また、DBで管理するデメリットがあれば教えていただけますでしょうか?

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

  • ベストアンサー
  • gouzig
  • ベストアンサー率25% (536/2078)
回答No.2

昔からよくある話ですね。 sinsouさんのお考えも分かります。 ところがです。 sinsouさんがその業務システムのメンテを最後まで担当するなら、それでもいいと思います。 しかし、仕事はいつ別な人が担当するか分からないですね。場合によってはsinsouさんが転職のため退社してしまうかもしれません。 ですから、会社ではいろんなリスク・ヘッジを考えるのです。別な担当者が急にその社内コードの変更作業をしなければならないとすれば、どこを直せばいいのか苦労しますね。最終的にソースコードの中に入っていたと分かるでしょうが、DBやテーブルに格納してあれば簡単に見つけられますね。 業務システムによっては40年位動いているものもあります。 次世代の担当者のためにDBなどに統一していた方がいいのではないでしょうか。

sinsou
質問者

補足

ご回答ありがとうございます。 例えば、とある取引先2社のみ特殊な処理ををしたい場合は取引先コードは書かず、取引先マスターに区分を追加して、2社のみフラグ1を立ててそれで判別するようなイメージでしょうか?また同様の処理をする場合はどんどん区分を増やしていくでしょうか?

その他の回答 (2)

  • gouzig
  • ベストアンサー率25% (536/2078)
回答No.3

No.2gouzigです。 補足コメントの内容、そういうやり方になると思います。 そのような方法だと、取引先マスターに区分を追加するDB変更が多発してしまいます。 それでは大変なので、あらかじめ取引先マスターには区分欄を多めに作っておきますね。 そうすれば、都度DB変更作業をしなくて済みます。

sinsou
質問者

お礼

ありがとうございます。 参考になりました。区分を追加することで対応していきたいと思います。

  • IDii24
  • ベストアンサー率24% (1597/6506)
回答No.1

>品目コード等 その手のコードは他の項目とリンクすることで意味をなすものですよね。であればRDB上でリレーションが張られ、品目コードの存在しない商品マスターは作れないとか、売り上げデータなどのトランザクションが存在していれば、そのコードは削除も出来ない、もっと言えば、トリガーで管理され、品目コードが変更されれば売り上げデーターの品目コードも一斉に書き換わるなどの、ビジネスルールを書くことも可能で、これらはRDB上でのロジックになります。 これらをプログラムなんかで制御しようとするのはまったく無意味になりますから、この品目コードをソースに書き込むのは二重管理になり、整合性の低いシステムになると思います。 そうではない設定情報などなら、XMLファイルで管理し、読み込んで処理するのは普通です。また最近はネット間のリンクが一般的になりつつあり、複数のサイトのXMLデータを読み込んで使いますよね。株価情報や企業情報などです。 これらはネットのURLを通じてXMLで別々に取得され、メモリ上でリレーションを掛けられメモリに対してクエリを掛け処理します。まあこれが現在の常識になりつつあります。RDBではネットでは不都合が多く使えないからです。ビックデータなどの処理はこういう処理です。 つまりソースに書き込むなんてのは今ではあり得ない領域で、ソースコードさえも実行時ネットで取得して補完することも普通に行われてます。

sinsou
質問者

お礼

やはりそうなんですね ありがとうございます

関連するQ&A

  • 社内SEになるには

    質問 客先常駐をしているシステムエンジニアですが 将来社内SEを目指しています。 社内SEになるために欠かせないまたは習得すべき知識は なんでしょうか? (私がイメージしている社内SEは自社の社員が利用するシステムの構築、保守運用とヘルプデスクが主業務です。) 以下業務経験があるものです 言語 Java,VB.net,JavaScript,VBA 開発環境 eclipse,visual studio,netbeans DB ORACLE,SQL server その他 tomcat,glassfish 所持資格 基本情報技術者 現在は応用情報、ORACLE JAVA silver se8、LPICレベル1、SQLを勉強しています。 よろしくお願いします。

  • ホームページのソースコードを読込

    ホームページのソースコードを読込 こんにちわ。 現在会社内にて自社専用に開発された勤怠管理システムを使用しています。 システムの概要は各々の予定を携帯から送信して、その一覧をWeb上で確認でき、誰がどこ で作業しているのかを確認できるものです。 しかし、その一覧のフォーマットが非常に見にくいため、独自のフォーマットに変更しよう と思いました。(一覧は以下のような感じです) 名前:場所 ○○:社内 ○○○○:社外~作業 ○:指定休 ※名前のあとの:の位置がそろっていない、それぞれの人の所属している課がばらばら その一覧のソースコードを見ると誰が、どこにいるの情報が入っているので、読み込むこと ができればあとは好きなように編集できるかなと思いました。 どなたかWebから必要な情報(あるいはソースコード全部)をメモリ上に読み込む方法を教え て下さい。 ちなみに私は普通の事務職ですが、C言語は一応理解しているつもりです。 以上、よろしくお願いします。

  • ソースコードをどう書いたらよいのかわかりません

    マイクロソフトAccess2007を使用しています。 (1)テーブルT_ゲームソフトからフォームF_削除のコンボボックスで入力した条件を満たすレコードセットを開き、 変数にゲームソフトIDを代入したいと思っています。 (2)(1)で取得したゲームソフトIDを条件として、テーブルT_使わないゲームからレコードセットを開き、 フォームF_削除から入力した値をテーブルT_使わないゲームの削除日フィールドに入力したいと思っています。 途中まで下記の様なソースコードを作成したのですが、挫折してしまい質問させて頂きました。 上記(1)(2)になる様なソースコードを作りたいと思っているのですが、この先どの様に書いて良いのかわからなかった為質問させて頂きました。 12,13,14行目にいたっては全く違うことをしていると思います… 当方初めてVBAを使用したので、おかしな部分が多々あると思いますが、ご指導お願いします。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 「ソースコード」 1 Dim Db As DAO.Database 2 Dim Rs As DAO.Recordset 3 Dim SQL As String 4 5 Set Db = CurrentDb() 6 Set Rs = Db.OpenRecordset("T_ゲームソフト", dbOpenDynaset) 7 8 strSql = "SELECT * FROM T_ソフト WHERE 名前 = Combo_SoftName AND 種類 = Combo_SoftType 9 10 Set Rs = Db.OpenRecordset(SQL, dbOpenDynaset) 11 12 Rs.Edit 13 Rs!ソフトリストID = Combo_softID 14 Rs!アンインストール日 = Uninstall 15 16 Rs.Update 17 Rs.Close: Set Rs = Nothing 18 Set Db = Nothing 19 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 「 T_ゲームソフト 」 ゲームソフトID| 名前 | 種類 ─────────────────────      1  |  A  | アクション              2  |  B  | SF              3  |  C  | シューティング              4  |  D  | スポーツ              5  |  E  | レース         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 「 F_削除 」 名前 【コンボボックス】 ←Combo_SoftName 種類 【コンボボックス】 ←Combo_SoftType 削除日 【コンボボックス】 ←Combo_Sakujo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 「 T_使わないゲーム 」 ゲームソフトID| 名前 | 種類  | 削除日 ─────────────────────────────      2  |  B  | SF      |        1  |  A  | アクション  |            3  |  C  | シューティング|              5  |  E  | レース    |          4  |  D  | スポーツ   |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  • 社内SEでもインフラエンジニアでもない呼称は?

    私は、自社内のITインフラ(ネットワーク、サーバ、業務アプリ)全般の構築から運用まで行うエンジニアです。 一言でいうと、私の職務はなんでしょうか? 一種の社内SEだとは思うのですが、開発系の業務が本業ではないので社内SEと呼ぶには抵抗があります。 以前はネットワークOSを扱うだけで、ネットワークエンジニアと呼ばれる時代もありました。 少し前まではITインフラエンジニアと自称していましたが、昨今ではインフラエンジニアと言えばWeb系のLinuxエンジニアを指すのが一般的になっています。 アウトソースやクラウド化が進み、社内でITインフラを運用するのが一般的でなくなってきています。 一方SIerは構築から運用サービスまで領域を広げてきています。 じゃぁ、社内SIerでも良いかと思い始めているのですが、一般的ではなさそうです。 何か分かりやすい呼称はないでしょうか。

  • ソースコードがオープンになっている会計ソフトを探しています!!

    会計ソフトでソースコードがオープンになっていてカスタマイズが自由にできるものを探しています。インフォネット開発が販売している「財務会計」は知っているのですが、他に知ってる方がいたら、教えて下さい。自社のデーターベースとリレーションを組んで新たに顧客管理データーベースを開発しようとしているところです。ゼロから会計部分を開発するのは大変なんで。よろしくお願いします。

  • ソースコードの開示要求できますか?

    この分野での初めての質問になります。よろしくお願いします。 自分は現在、某公的機関でシステム管理を担当していますが、 そこで運用されているソフトウェアのソースコードの開示が できるかについて質問です。 長文になってしまいますが、よろしくお願いします。 納品時は、自分が担当外だった頃なので詳細不明ですが 5,6年前にハードウェアと一緒に納品されたシステムがあるのです。 ハードウェアは、構内のモニタ表示を行うハードとサーバのセットで ソフトウェアは単に、上記用の自動実行用のバッチファイルを出力する だけのシンプルなものです。(VB6で書かれているようです。) ハードウェアがメインで、ソフトウェアは付随するおまけみたいな もののようでしたが、ソフトも含めて一括買い取りし、 現在のメンテナンスはスポット契約になってます。 現在、私はなし崩し的に、それらを管理する立場になってしまい、 先日納品物等を確認しておりました。 すると、ソフトウェアの納品物が含まれるにもかかわらず、 ソースコードだけでなく、ソフトウェアに関する契約書や 設計書の類が一切ないのです。 納品した会社は今にもつぶれそうな!?小規模な会社で、 一部の特殊なハードウェアのスポット修理以外は放置プレイで ソフトウェアも不具合があるまま(というか開発途中?)のものが 納品されているだけで、サポートの電話をしても サーバが壊れた→メーカーに文句を言ってくれ。 サーバが止まった。→ハードリセットしてみてくれ。 ってな具合です。仕方がないので、出張修理を依頼すると 出張費だけで一人20万~30万請求されます。 必ず二人以上できるので、来てもらうだけで50万を軽く超え おちおち呼ぶこともできないんです。(当然、部品代は別) 一応、公的な機関ですので、特定の業者のみへ随意契約になるような 形の購入は避けるのは当然と考えているのですが、 このままでは、この会社が倒産したら今後の保守が期待できない ことは勿論、もっとサポートがしっかりした会社に保守や修正を 委託したくてもソースコードや設計書すらないので、 内部で何をやってるのかすらわからず、直しようもない状態なんです。 そこで、せめてソースコードと設計書の納品をお願いしようと思い、 担当者に連絡を取ってみたところ、「できない」 「前例がない」の一点張りで全くらちがありませんでした。 こちらがマイクロソフトですら、一定の条件でソースコードの 開示が行われていると聞いてますし、富士通やIBM等の大手が 公官庁にソフトウェアを納品するときは、 ソースコードや仕様書が必ず添付されてたはずですと話をし、 「そういうわけで、今日の公的機関にソフトウェアを納品する時には ソースコードや設計書があるのは常識だと思うのですが?」と 担当者に質問してみたのですが、 「おたくのいう常識はうちとは違う、場所によって常識は変わるんや。 ソースコードを出さないのは、うちの常識や!」 と言われ、取り尽くせもない状態です。 そもそも、ハードとソフトを一式購入したにもかかわらず、 ソースコードや仕様書の確認すらできないというのは、 素人考えでもおかしいのではと思うのですが、 間違ってますでしょうか? ちなみに、そのソフトは、専用のハードを動かすバッチを生成する だけのもので、汎用的なものではありません。そのうえ、 一部の機能が未実装だったり、使えない機能があったり、 一覧表示画面で垂直スクロールバーの代わりに↑と↓のボタンが ついているいう、自分がみても、ほんとおまけ程度のできの悪さです。 できの悪さには、どうにか目をつぶるとしても いかにように話をもっていけば、ソースコードや仕様書を ちゃんと提供してもらえるかわからず、大変困っています。 お手数ですが、詳しい方がおられましたら御指南お願いします。

  • 社内メールの提案

    はじめまして、80人規模の会社に入社して1年です。 大半の社員が出向していますが社内メールがなく、情報共有が できていません。そこで、社内メール(グループウェア)の構築と 業務把握を提案しようと考えております。提案書作成と説明に 悩んでおります。 弊社が提供する予定の自社開発アプリ(グループウェア)が あるようなので、それを利用することも可能かと思っています。

  • access による社内システムの構築

    社内で利用する業務管理システム(Webシステム)を access と office365 を連携させて構築したいと考えております。 何か役に立つ情報源(書籍やサイト等)を 教えてください。 どうぞよろしくお願いいたします。

  • 社内で公開用のWEBサーバーを構築

    社内で公開用のWEBサーバーを構築しようと思っています。 現在、会社の方で簡単なHP制作の業務を行っており、今後 制作したHPを会社のWEBサーバーで公開しようと思います。 それで、WEBサーバーを構築したいのですが、単純にWEB サーバーのみ、DBサーバー等は使用せずに単純なサイト公開 用のサーバーを作る時、外部に頼むなどせずに、サーバー構築 に詳しいものはいませんが、多少Web計に詳しい社内の人間が 勉強しながら構築するというのは、可能でしょうか? また、セキュリティ面などからどうでしょう?

  • 社内ポータルの作成について

    表題の件について、ご教示頂けたらと思います。 現在、社内ポータルの構築を検討中です。 経費削減のため業者には頼まず、なんとか社内の人員のみで構築・管理したいと考えているのですが、 ネットワークに関する知識が浅く、情報の検索にも手間取っている状態です。 現在の状況、および目的については下記のとおりです。 1.会社のホームページ有り(自社サーバー) 2.ただし、PHP,MySQLは未インストール 3.WordPressもしくは、CMSを導入予定 4.社外秘の情報も管理予定のため、社外からのアクセスを禁止したい (ポータルへのアクセスをパスワード制限するのではなく、社外から社内ネットワークへアクセスすることを禁止したい) 5.現在、社内で管理しているPC1台ずつにIPを振り分けている 2,3については、こちらで調べてなんとかなりそうですが、 4については、どのような方法が考えられますでしょうか? 先にも述べましたが、知識が浅いため的外れな質問をしているかもしれませんが、 考えられる方法、もしくは参考になるURLやキーワードを教えて頂けると幸いです。 よろしくお願い致します。