先日、プログラムの不具合でサービスを30分以上止めてしまいました
取引先からガンガン電話が鳴り響き、死ぬかと思いました
顔面蒼白とはまさにこのこと...
思い出すだけでも吐きそうですが
少しでも参考になれば嬉しいです!!
なぜサービスは止まったのか?
うちのサービスでは数万規模の顧客を抱えています
そこからマッチングさせるような仕組みを作ってます
今回の修正はそのマッチングの裏で動いている処理に不具合が見つかりました
具体的にいうと...
マッチング時のアクションをトピックスに載せる
「○○さんが○○しました」
○○さんのところで会員番号を名前に変換をかける処理です
かなり簡単なものです、ものの数秒で組めるでしょう
データベースから名前を引っ張ってくるのですが、そのデータを文字列にせずに条件分岐に当てはめてしまい、その処理が発動したときに落ちました...最初はなんで落ちたのかもわからず、みんなで探す作業に時間がかかりました、すぐにわかっていればすぐに直せたのに
この件で猛省し、いろいろと対策を模索することにしました
デバックは客観的に物事を見ること
不具合を見つけるのに1番重要な作業がデバックです
今回の問題もデバックを十分に行っていれば見つかったはずです
先輩に教わったことですが重要なことをまとめてみました
ココが大事!
- 客観的に物事を見る(第三者目線で!)
- 修正部分だけでなく、全体を見る
- どの値が入るのか、処理が入るのか把握する
客観的に見るのは非常に大事です
テスト環境で問題ないからといって本番でデバックを怠るのはNGです
木を見て森を見ず...
これは初学者にありがちです
部分だけ見ても全体像を把握してないと
前後の処理によって想定外なことが起こる可能性があります
あまりにイレギュラーな処理が多ければ
Try〜Catchなどを使って止まるのを回避するのもありでしょう
本当に心臓が止まりそうなのでメンタル弱い人は向きません
SEって本当にメンタルがやられる理由がわかります
自分は社内SEなのでなおさら責任感があります
そこに残業やら職場環境が悪いなどが重なったら
確実に病んでしまいますね
ただその環境にいることで成長している自分を感じてます
物覚えの悪い自分でもある程度のことができているので
みなさんも大丈夫でしょう!!
まだデータベースを消したりしていないので
マシですね、これをやったら賠償金なども絡んでくるでしょう
まあ気楽にやりましょう!