##はじめに
新卒でSIerに入社し、現場に配属されてから2年弱。
チームメンバーからのソースレビューなどで養ってきた観点をメモとして残しておきます。
『こんなとこも意識したほうがいいよ』とかあれば教えてください。
##コーディング
- 運用面を意識した実装となっていることを確認する。
- 必要なログが出力されているか(アクセス開始ログ、アクセス終了ログ、トランザクションIDとか)
- 画面の表示文言など、頻繁に変わることが想定されるものが影響範囲少なく変更が容易にできるか
⇒マスタで管理する 等 - 適切なエラーハンドリングとなっているか
⇒ユーザー目線で何をすれば良いのかわかるエラーメッセージが表示されていること
⇨いつ、どの処理でエラーが発生した場合に、誰に知らせるか決めていること(アラートメールを飛ばしたり) - コメントが適切か
- 半年後の自分が読んでも理解できること
- コピペするときには以下を注意
- コピペ元とコピペ先で環境面の違いによる影響はないか
-命名が適切か
-処理内容とメソッド名が剥離していることがないように。
-責務配置を意識できているか
-Modelでは業務ロジックを、DAOではDBアクセス部分を というようにチームで合意した責務配置を意識してコーディングを行う
##DB周り
- 適切なインデックスが貼られているか
- 検索対象キー項目に対して貼る
※但し、インデックスを貼るのは性能が向上することが期待できる時のみ(むやみやたらに貼らない)
- 検索対象キー項目に対して貼る
##その他
- 外部に開発依頼をする必要がある場合に、外部の開発手法を確認する。
特に外部がウォーターフォール開発の場合は、結構期間がかかる場合があるので注意する。
例)
A社は、アジャイル開発。
B社は、ウォーターフォール開発。
ある日A社が、○○という情報を参照する機能を作ることになった。
そこで、今までも使っている既存APIに○○という情報の追加をB社へ依頼することになり、
スケジュール感を確認した。
「今からだと3か月作成かかりますね。」
ん・・・?3か月とは想定外。
スプリント内に終わらなさそう。他のストーリーやろっと。
-思い込みを捨てる。