前担当はお構いなしに話を続けます。「ま、俺も別の開発で忙しいからどうにかしといてよ。機能がそっくりないのに,どうしろと。機能が作りこまれてなかった経緯を調べたところ、該当機能は半年に一回しか使わない処理なので、顧客も前担当者もすっかり忘れていた模様。話が違うと上司にかけあっても、前担当者は火消しとして別のプロジェクトに投入されたので、自分らでどうにかしろとのお達しが。しょうがないので、顧客にバレないうちに休日出勤を繰り返してプログラムを作成し、別のシステム改修の機会にこっそりとプログラムを追加しておきました。顧客にバレなかったから助かりましたが、バレたらどうなってたんでしょう。|2005年10月29日ソースとバグ管理票の紐づけ皆さんは自分の開発したソースをちゃんと管理していますか。筆者はソースの管理が不十分だったため,顧客に怒られたことがあります。とある本番稼動中のシステムでプロセスが異常終了しました。原因はメモリの初期化忘れ。メモリの初期化を忘れたため,変数に想定外の値が入っており,不正なアドレスを参照してプロセスが異常終了していました。その場でプログラムを修正し,顧客への修正版の提供と,障害報告書の提出で,この件はクローズとなりました。問題が発生したのはこの後でした。してからシステム更新の提案を行い,顧客に予算を取ってもらいました。更新内容を提示し,顧客から了承をとってプログラムを修正。自社内でのテストまでは完璧でした。本番稼動中のシステムに差し替え,実際に稼動させてからが問題でした。以前とまったく同じ場所でプロセスが異常終了したのです。問題が発生したと連絡を受けた時点で顧客はカンカンに怒ってました。「あの不良は直ってたんじゃないのか。してまた発生するんだ。急いで調査したところ,案の定,更新したシステムではメモリの初期化忘れの処理が修正されず残っていました。考えると顧客環境でしか問題のプログラムを修正しておらず,自社に持ち帰るのを忘れていたのです。自社でバグ管理票は起票していたのに,対応するソースが入っていないという間抜けなミスをしていたのです。気がついたときはあとの祭り。顧客からは以前のシステムで発生した障害への対策がすべて組み込まれてることを確認しろと言われ,社内では反省会でボロボロにされました。入力値はすぐに妥当性を検証せよユーザが入力した値は信用してはいけません。ユーザというものは,プログラマの予想の斜め45°上を行くものです。油断してはいけません。入力値の妥当性チェックは必須。それも入力が行われた直後にするべきです。ユーザの仕込んだ恐ろしいトラップがプログラムを異常終了や不正演算に追い込むのです。身長と体重を入力すると,BMI(肥満度を示す指標)が出力される簡単なプログラムを考えます。BMIは体重(Kg)/(身長(m)×身長(m))で求められます。身長を0,体重を60として入力するとどうなるでしょう。計算式に値をあてはめると次のようになります。BMI=60/(0×0)=60/0=???結果として,計算結果が不正となるか,例外を送出するか,異常終了するかのいずれが発生します。身長に0を入力するほうが間違いです。入力が間違いであることを通知しなければなりません。入力値のチェックをせず無邪気に計算するようでは,プログラマとしての腕が疑われます。ユーザの入力値を検証するタイミングはいつがいいか。身長として入力された値のチェックは,ユーザが入力した直後と,BMIの計算直前の二つのタイミングがあると考えられます。どちらでチェックするのがいいか。それはユーザが値を入力した直後です。ユーザの入力が間違っていることがすぐに分かるからです。身長が入力されてからBMIの計算を行うまでに5分かかる処理がある場合を考えてみましょう。身長が入力された直後に値をチェックするのであれば,ユーザはすぐに自分の入力が誤っていたことが分かります。ところが,BMIの計算の前にチェックするのであれば,5分待ってから初めてユーザは自分の入力が誤っていたことが分かるのです。たまったものじゃありません。今回の例では出てきませんが,処理の直前に値のチェックをしようとすると,他の処理により値が書き換えられる場合があります。ユーザの入力値が原因で不正な処理となるのか,プログラムのバグで不正な処理となるのかが判断できなくなり,障害なのか,ユーザの入力が間違えていたかの判断が難しくなります。入力値の妥当性チェックは必須。それも入力が行われた直後にすべきことを肝に銘じてください。Linuxでのシングルユーザーモードでの起動方法です。Coreでも同じ手順で大丈夫でしょう。電源を投入すると次の画面になります。OSを起動される前に'e'を押して編集モードに切り替えます。/vmlinuz..."という項目を選択し,'e'を押します。起動コマンドを編集できるようになります。起動方法を選択する画面に戻ります。追加されていることを確認します。問題がなければ'b'を押して起動します。OSがシングルユーザーモードで起動されます。コマンドプロンプトが表示されればシングルユーザーモードでの起動は完了です。ChipsSeesaaブログ広告この広告は60日以上更新がないブログに表示がされております。以下のいずれかの方法で非表示にすることが可能です。「広告を表示しない」にチェックを入れて保存する。ブログ×この広告は180日以上新しい記事の投稿がないブログに表示されております。