- - PR -
スペースがバグになるとき
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-08-24 21:12
人の意見は素直に聞くもんです。
関係ないけど、昔、VisualStudio6.0で、 行コメントの行末が \ の時、次の行もコメント扱いにされてしまう 摩訶不思議な仕様がありましたね。 //〜表 a[i][y][t] = sign(4) + ...; とかやると、a[i] 〜がコメントになっちゃう。 ”表”はSJISで 2バイト目が "\" です。 この時は逆に行末に空白を増やすことで対処しました。 たかが空白でもこんなもんです。 プリプロセッサの仕様なんでしょうがないのですけど、えらいこっちゃって 全ソース洗い出しましたねw でも仕様じゃなくてバグな気がするんだけどな・・・ 確か SP は当たってないか、SP4 かどっちかだったな。 | ||||
|
投稿日時: 2008-08-25 02:40
色々コメントをいただけたようで、ありがとうございます。まずは返信します。
>アップしていなかったその心構えが 'デグレの温床' に繋がるという意味で言ったのではないかと思います。 今一度思いなおしてみると、やはり、そういう意味合いだったのかもしれません。 >業務の手順化を考えてみたらどうだろう? もうだいぶ長い事この作業に従事しているので、かえって慢心があるのかもしれません。 特に、変更が必要なかった場合などの差し戻しの時の手順などを考えてみます。 >#どうもバージョン管理システムを導入していないようなのでその導入も含めてね。 バージョン管理についてはご推察の通りなのですが、その辺については以前、 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=43355&forum=3 でご相談をさせていただいたことがあります。 この相談後にプロジェクトのメンバーにバージョン管理の是非について聞いたところ、「うちのチームはそういうの嫌いだから」とのことで、具体的にどう嫌いなのかは判らないのですが、導入は難しいのではないかと思っています。 このスレッドでは、unibonさんからExcelを用いた管理をしてみてはどうかと提案していただきましたので、プロジェクトのメンバーにそれを相談してみたところ、「それ、本当に必要なの? 手動できちんと管理できればそんなのいらないよ」と言われてしまいました。それでも一応自分なりにマクロを書いて動かしてはみたのですが、結局根本的に解決するには至りませんでした。 >本番とバックアップのファイルが同一になるように保守しておくほうを選択します。 私もその方がよいと思いますが、どうすればミスがなくなるかわからないのです。 >ノリノリでスペースやTab消してたら、必要な行をまるっと消してたとかってミスがあるかも? 今回の定義からは外れますが、確かにそういう事はあるかもしれません。それが一番怖いですね。 >時間に依存したバグが顕在化して動作に違いが出るということはあるかもしれません。 >本番で障害がおこり、デバッグしている最中に、列がずれると、バグの発見が遅れる、などの弊害はあるかもしれません。 なるほど。そういった可能性は考えていませんでした。 >おそらくソースコードを変更したのにテストしていない、というところです。 今回の場合は、テストはしていません。誤解を承知で言うのですが、するつもりもなかったとでも言ったらよいのでしょうか。 一度スペースの削除という変更をした後に、別に目の色を変えて修正するまでもないと思いなおして(プログラムのリリース担当は別の人間で、私からはおいそれと本番に修正を加えたりできません。ですので、できればそのままにしておきたいのです)変更を放棄し(たつもりで)、そのままになっていたのです。 ですので、テストをするしない以前に、ソースコードの変更をバックアップから元に戻すつもりで居たのに、それを忘れて放置していた、という結果になってしまいました。 >関係ないけど、昔、VisualStudio6.0で、 >行コメントの行末が \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ の時、次の行もコメント扱いにされてしまう 恐ろしい仕様(バグ?)ですね。 私のプロジェクトでは、そのVB6が昔どころか現在進行形で主役を張っているので、非常に気に掛かるところです。 ちょっと調べてみたいと思います。 なお、コメントの中に、私が上司の言葉に反感を抱いてこんな愚痴みたいな書き込みをしたのだと思われている方も居られるようですが、それは違います。 上司の言う事は尤もだと思いますし、これは私の単純なミスであって、いずれは事故につながる虞があると考えています。 ただ、上司が異常なまでに半角スペースに拘っていたように見えたのでその確認がしたかったという事と、そうした単純なミスを根絶する方法がもうさっぱりわからないので、何かヒントはないかと思って書き込んだというだけの事なのです。そこだけはご承知置き下さい。 | ||||
|
投稿日時: 2008-08-25 09:46
ぴあちゃんのコードを見る限りVB6ではないですね。 VC++6.0でしょう。 Cで#define文を使う場合、基本は1行で、複数行を扱いたい場合は行末に\を付加して、 行継続と見なす仕様があるので、これとの絡みなんでしょうね。 #VC++はあんまりわからないので仕様なのかバグなのかについては言及しませんが |