Upgrade to Pro — share decks privately, control downloads, hide ads and more …

1分1秒を争う障害対応のためのリーダブルコード

 1分1秒を争う障害対応のためのリーダブルコード

Ohotech 特盛 #5で発表した内容です。

ブログで幾つか補足をしています。
- https://blog.shibata.tech/entry/2013/10/28/002943

Takuya Shibata

October 26, 2012
Tweet

More Decks by Takuya Shibata

Other Decks in Technology

Transcript

  1. 自己紹介  ハンドルネーム  素敵なおひげ  Twitter : @stknohg 

    Blog : http://stknohg.hatenablog.jp/  誰?  札幌市内で働く”残念”SIer。 基本何でも屋ですが、最近はWindows系の インフラ設計やシステムの基盤アプリケーション を作ったりしてます。  数年前からCLR/Hの裏方として活動中。 2
  2. リーダブルコードに至るまで のログ設計  最低限必要なエラーログ  スタックトレース  (DBを扱う場合)エラー時のSQL  あると望ましいログ

     重要なパラメーター値  先ほどの例でいえば『対象時刻』など  画面のキャプチャ画像  入力項目が多い画面だと有効 19
  3. 巨大な式を分割する  緊急を要する状況下で調査する対象が大き すぎるととても間に合わない。  巨大な式を分割する (8章)  メインとなる処理から見える処理の抽象度を揃える 

    無関係の下位問題を抽出する (10章)  適切な抽象化  変数のスコープを縮める (9.2)  グローバルな変数があると常に調査対象がグローバルに なってしまう  短いコードを書く (13章) 25
  4. 制御フローを読みやすくする  制御フローが簡易であればある程、より 迅速な対応をすることができる。  If/elseブロックの並び順 (7.2)  関心を引く条件や目立つ条件を先に書く 

    関数から早く返す (7.5)  ガード節は非常に有効  ネストを浅くする (7.7)  3段を超えるネストはツライ(個人の感想です) 26
  5. コメントは正確で簡潔に  コメントが冗長であったり内容が不正確 (古い情報であったり、そもそも嘘が書いてある) だと、対応の邪魔になってしまう。  読み手の立場になって考える (5.3)  他人に読ませるためのコメント

     過去の自分は他人  コードの意図を書く (6.6)  コードを見ればわかることはコメントにいらない  関数の動作を正確に記述する (6.4)  コメントもメンテナンス対象 28