チーム内で良くある間違いなどをチェックリストにし、それをコードレビュー時に使う事で、コード自体のレベルを上げつつコードレビューの品質のばらつきをなくす取り組みについて。Trelloなどを開発するFog Creek社のブログの翻訳。 効果的なコードレビューについて書いた我々のブログ記事の中で、チェックリストを使う事を推奨した。チェックリストを使う事で、レビューが継続的にチーム全体でうまくはたらくようにできる。また、ありがちな問題を見つけたり解決したりするのを確実にする、簡単な方法でもある。 ソフトウェア工学研究所の研究によると、プログラマは15から20の良くある間違いをしてしまいがちだという。そういった間違いをチェックリストに追加しておく事で、問題が起こった時にそれを特定し、確実に駆逐するようにできる。 チェックリスト作りに取り掛かるに当たって、一般的な項目は以下のリストのようになるだろう。
このドキュメントについて レビューポイントっていうのは周囲のレベルや使っている技術によりまったく異なるのですが、割と汎用的に使えそうな部分について今の開発チーム向けに書いたドキュメントを共有 レビューチェックポイント(機能) 仕様と実装が合っているか 仕様が不明瞭な部分について勝手な仕様で実装をしていないか 違和感のある実装になっていないか ロジック・アルゴリズムが合っているか そもそも論理構造が破綻していないか 画面表示に違和感がないか 奇妙な文言、ユーザ視点で奇妙な動きになってないか 不正なユーザ入力で問題が発生しないかFatalErrorにならないか 入力に対し適切なvalidationが行なわれているか レビューチェックポイント(コード) 意味の無いロジックが含まれていないか コピペでコードを持ってきた場合にコピペ元の不要なコードが入っていないか そもそも基本コピペはNG コピペで
コードレビューの観点 (注)以下のポイントを検討する際にはつねにコードレビューの基準を忘れないでください。 設計 レビューで確認すべき最も大切なことは、CL の全体的な設計です。 CL のコードの各部分は相互にきちんと連携するでしょうか?この変更はコードベースに属するものでしょうか、それともあるライブラリに属するものでしょうか?システムの他の部分とうまく統合するでしょうか?この機能を追加するタイミングは今がふさわしいでしょうか? 機能性 この CL は開発者の意図通りに動作しますか?開発者の意図はこのコードのユーザーにとって適切でしょうか?「ユーザー」とは普通、エンドユーザー(その変更によって影響を受ける場合)と開発者(将来このコードを「使う」必要のある人)の両方を指します。 通常、CL がコードレビューに至るまでには、コードが正しく動作することを開発者が十分にテストしていると期待できます
マイクロソフトは、AIによるコーディング支援機能の「IntelliCode」がさらに進化し、コーディング中の行全体を提案できる能力を備えるようになったことを明らかにしました。 下記は「Re-imagining developer productivity with AI-assisted tools」から引用です。 IntelliCode now provides whole-line code completion suggestions mined from the collective intelligence of your trusted developer knowledge bases. This is like having an AI-developer pair-programming with you, providing meaningful, suggestion
はじめに コードは理解しやすくなければいけない。 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) 作者:Dustin Boswell,Trevor Foucher発売日: 2012/06/23メディア: 単行本(ソフトカバー) コードの保守性や可読性を高めるために我々エンジニアはどんなことができるでしょうか? テストを書く 推奨されているコードスタイルに準拠する コメントを書く DRY原則に則る 変更・拡張しやすく設計する ログを出力する・監視する 適切な命名をする etc... まだまだ意識すべきことはあると思いますが、上記の項目はエンジニアであれば恐らく一度は目にしたことがあるような内容であり、暗黙的に了承されたいルールです。 しかし、これらはただの心構えであり、体現するために実際には以下のような項目に落とし込む必要
わたしのコーディングの師匠かずきさんに、私のクソコードをレビューしてといったらオシャレなコードになって帰ってきたので、その学びを書き留めておきたい。 今回のゴール 私は Durable Functions というリポジトリに貢献しているのだが、前回実装した全件取得のメソッドに対して、検索条件を追加するメソッドを書きたいと思った。検索条件を表すオブジェクトをつくれば多分テストもしやすくていい感じのはず。 今回のクソコードの解説 最初に作ったクソコードはこんな感じ Builder 的な感じで作ってみた。TDDを使ってやってるのでテストもある。 リポジトリ TsuyoshiUshio/StorageTableQueryCore OrchestrationInstanceStatusQueryBuilder using Microsoft.WindowsAzure.Storage.Table; u
実務未経験でプログラマとして入社して半年以上が経った。 コードレビューで指摘されたことを備忘録としてまとめておく。 自分なりにまとめたものなので、レビュアーが言いたかったこととニュアンスや解釈がずれている可能性はある。 初歩的な内容ばかりで我ながらうんざりする。 せっかく優秀な同僚ばかりなのだからもっと高度なことを学びたいが、こういう初歩的なことが出来ないのが俺の現状なのだから、仕方ない。 そもそもPullRequestを送ったこともなかったわけだし。入社初日は、一人でPullRequestの出し方を練習していた。 それを考えればまあ、こんなものだろうか。 当たり前のことをちゃんと当たり前に出来るようになって、早く、次のステージに進みたい。 PullRequest(PR) PRのタイトルは分かりやすいものに。必要に応じてチケットの番号なども入れる。 コミットやPRは出来るだけ粒度を細かくす
お勧めの記事がありましたらコメントなどで教えて頂けると幸いです。 Guidelines プログラマが知るべき97のこと 技術的負債 不慣れなコードベースで短期間に生産性を高めるための7つの方法 何も知らない人を育てるために(新人教育情報キュレーション) 保守開発に開発者として入って困ることのまとめ(実体験) 技術系の名言まとめ++ 真似をする前にバッドプラクティスかどうかを調べてみよう 読まれない名著「人月の神話」を本気で読み込んでみた(まとめ) 技術的負債とどうやって戦うか 楽しいコーディングのための CUPID - SOLID 原則に対するアンチテーゼ エンジニア基礎(新人研修資料) Coding Style モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう 関数名や変数名に使えそうな動詞・名詞・形容詞のメモ Naming -名前付け- DRY原則をもう一度 -コンカレント
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く