2024-04-26

これ何の意味があるのか教えてほしい

いろんなアプリケーションメンテ(バグ取りとか細かい機能追加とか)を何度か経験してきた。

主にテキストファイルとかCSVファイルとかExcelファイルとかを入出力するものばかりだったんだが、その大半がファイル拡張子グローバル変数化していた。

こんな感じ

const TxtFileExt = ".txt";
const CsvFileExt = ".csv";
const ExelFileExt = ".xlsx";

なので、読み書きするファイル名の指定時は、

outFileName = 〇〇 + ×× + "ABCDEFG" + TxtFileExt;

みたいな指定をしなきゃならない。

これ何の意味があるのかよく分からんのだけど、誰かわかる?

あと、プログラム言語標準的メソッドのあらゆる引数も全部変数定義されてて、そのまま渡すのは禁止、みたいな規約になってる。

たとえば引数が三種類(truefalse(未指定時のデフォルト値)、任意の数値(ただし当該プログラムでは0、10、25以外指定不可))しかないやつはこんな感じ。

const 〇〇ParamTrue = true;
const 〇〇ParamFalse = false;
const 〇〇ParamIntMin = 0;
const 〇〇ParamIntMid = 10;
const 〇〇ParamIntMax = 25;

文字コードなんかもこんな感じで定義されてる。

const charCodeSJIS = "Shift_JIS";
const charCodeUtf8 = "UTF-8";

以前関わった改修内容に「××の処理は開始時と終了時にそれぞれUTF-8(BOMなし)形式ログを出力する」みたいなのがあって、普通に文字コード指定する部分に「UTF-8」で直に書いたら、規約に従ってないからとコードレビューで指摘されて差し戻されたんだけど、そもそもこういう規約って何の意味があるの?

  • そりゃ.xlsだと思ってた拡張子がアップデートで.xlsxになったりすることがあるからじゃねーの? utf-8もある日一括でutf-8.ja_JPになるかもしれんし

  • タイポでやらかした奴がいてそうなってるだけやろ

  • 何年か前に事故った、どっかの地方自治体のシステムは、 .txt と .TXT で挙動を変えていた話しがあったやん? プログラム全体で、TxtFileExt が一カ所でしか使われてないなら、変数にする...

  • 拡張子については、例えば Excel の拡張子が変わったとき一括対応できる、とか? あとは普通に".txt" で取り扱ってるファイルはどれだ、って時にその定数の参照箇所を見ればもれなく分...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん