タグ付けされた質問 「code-reviews」

このタグは、コードレビューとコードウォークスルーの実践に関する質問に使用します。既存の動作するコードのレビューについては、http://codereview.stackexchange.comを参照してください

19
他の人が非常に複雑なソリューションを構築したとき、コードレビューで何と言いますか?[閉まっている]
先日、チームの誰かが書いたコードをレビューしました。ソリューションは完全には機能せず、デザインは複雑でした-不要な情報の保存、不要な機能の構築を意味し、基本的にコードには金メッキのような不要な複雑さがたくさんあり、存在しない問題を解決しようとしました。 この状況では、「なぜこのようにしたのですか?」 答えは、他の人がそのようにしたいと感じていることです。 次に、これらの機能のいずれかがプロジェクト仕様の一部であるかどうか、エンドユーザーが使用できるかどうか、または追加データがエンドユーザーに提示されるかどうかを尋ねます。 答えはいいえだ。 そこで、不必要な複雑さをすべて削除することをお勧めします。私が通常得る答えは、「それはすでに終わっています」です。 私の見解では、それは行われておらず、バグがあり、ユーザーが望むことを行わず、メンテナンスコストは、私が提案したより簡単な方法で行われた場合よりも高くなります。 同等のシナリオは次のとおりです。 同僚が10秒以内にResharperで自動的に実行できたコードを手作業でリファクタリングするのに8時間かかります。当然のことながら、手作業によるリファクタリングは疑わしい品質であり、十分にテストされていないため、信頼できません。 繰り返しになりますが、私は「既に完了しています」という応答を受け取ります。 この態度に対する適切な対応は何ですか?

5
コードレビューで肯定的なコメントをするのは適切ですか、それとも建設的な批判専用ですか?
私は最近多くのコードレビューを行ってきましたが、コードレビューに肯定的および/または面白いコメントを入れることの肯定的および否定的な効果とプロフェッショナリズムに自信がありません。 私たちのチームではコードレビュープラットフォームとしてGithubを使用しているため、コメントは誰でも見ることができます。私は通常、このプラットフォームを使用して、最初から最後までのプロセス全体が見えるようにし、歴史的なものにします。

10
その練習から来たときに、新しい場所でコードレビューなしに対処する方法は?
私の新しい会社のチームにはコードレビュープロセスがありません。 私はコードレビューが必須の文化である企業から来ているので、誰かにレビューしてもらうことなくコードをコミットすることに不安を感じています。 私は、コードレビューは潜在的な問題を早期に発見するため、コードレビューは品質を改善し時間を節約する方法であると固く信じています(ペアプログラミングについては話していないことに注意してください)。 コードレビューが時間の無駄ではなく時間の節約になることをどのように示すことができますか? 単体テストがある場合、コードレビューをスキップできますか?

11
継続的インテグレーションを行うときにコードレビューを行うタイミング
継続的インテグレーション環境に切り替えようとしていますが、コードレビューをいつ行うべきかはわかりません。継続的インテグレーションについて読んだことから、1日に何度もコードをチェックインしようとしているはずです。これは、まだ完全ではない機能を意味していると思います。 質問は、コードレビューをいつ行うかです。 コードをチェックインする前にそれを行うことはできません。1日あたり複数のチェックインは言うまでもなく、毎日のチェックインを実行できないプロセスが遅くなるためです。 また、チェックインしているコードがコンパイルされるだけで機能が完全ではない場合、ほとんどのコードレビューは機能の完成時に最もよく行われるため、コードレビューを行うことは無意味です。これは、機能が完了したときにコードレビューを行う必要があることを意味しますが、その未レビューのコードはリポジトリに入りますか?

9
レビューを待つときはどうすればよいですか?
私の質問をする前に、状況を説明しなければなりません。 私は会社でジュニアソフトウェアエンジニアとして働いています。私の開発を終えてコミットしたいとき、先輩の一人はいつも私を止めます。 彼はいつも彼がそれをレビューするのを待って欲しい。通常、彼はいくつかのバグを見つけて、いくつかの最適化を行うため、これは問題ありません。 ただし、期限までにコードをコミットする必要があります。終わったら彼に電話して、終わったと言います。彼は通常遅れる。私のコードも遅れています。 私の質問は、どうすればいいですか?レビューを待つ必要がありますか? 編集:質問への追加。もう1つ問題があります。 コーディングするときは自由になりたいです。開発の自由に対する信頼をどのようにして得ることができますか? いくつかの説明: これについて彼と話しました。しかし、それは助けにはなりませんでした。既に課題追跡を使用していますが、レビューのタスクはありません。開発タスクとテストタスクのみがあります。

12
コードレビューは良い習慣ですか?
私が働いている会社が新しいマネージャーを雇ったとき、彼らは私たちにすべての会議で誰かのコードを概観するように提案しました。私たちは2週間ごとに会議を開催しているため、開発者の1人がそのコードをプロジェクターに表示するたびに、他の開発者がそれについて議論します。 これは素晴らしいことだと思いました。各開発者はコードを書く際により慎重になり、経験をよりよく共有することができます。しかし、どういうわけか私たちはこれを忘れて、申し出は申し出のままでした。 これにはどのような利点があり、欠点はありますか?

17
一貫したコーディングスタイルを持っていない同僚に対処しますか?
スタイルが悪いコードを書く傾向がある人と仕事をしているとき、あなたは何をしますか?私が話しているコードは通常、技術的に正しく、合理的に構造化されており、アルゴリズム的にもエレガントかもしれませんが、見た目はいだけです。私たちは持っている: 異なる命名規則とタイトルの混合(underscore_styleおよびcamelCaseおよびUpperCamelおよびCAPSすべては、同じ関数内の異なる変数に多かれ少なかれランダムに適用されます) 奇妙で一貫性のない間隔、例えば Functioncall (arg1 ,arg2,arg3 ); コメントおよび変数名に多くのスペルミスのある単語 私が働いているコードレビューシステムは優れているので、最悪のものを調べて修正することができます。ただし、50行の「ここにスペースを追加します。「イタレーター」を正しく入力してください。この大文字化を変更します。」などの50行で構成されるコードレビューを送信するのは本当にささいなことです。 この種の詳細にもっと注意を払い、一貫性を保つよう、この人にどのように勧めますか?

11
あなたの最高のプログラマーは、他の全員のコードをソース管理にチェックインする必要がありますか?
svnとgitの違いの 1つは、リポジトリへのアクセスを制御する機能です。変更をコミットすることを誰に許可するべきかについての観点の違いがあるため、2つを比較するのは困難です! この質問は、どこかの会社のチームの中央リポジトリとしてgitを使用することに関するものです。チームのメンバーのスキルレベルはさまざまであり、ほとんどの企業と同じであると想定しています。 Gitは、あなたの最高の(最も生産的で、最も経験豊富な)プログラマーだけがコードのチェックインを信頼していると想定しているようです。その場合は、実際にコードを書くのに時間を割いて、他の人のコードを確認してチェックインすることになります。これで成果はありますか?この質問は、一般的なバージョン管理のベストプラクティスではなく、最高のプログラマーの時間を最大限に活用することに焦点を当てたいと思います。当然の結果として、自分の仕事の大部分が他の人のコードをレビューすることである場合、優秀なプログラマーは辞めますか?両方の質問が要約されると思います:レビューは生産性に見合う価値があるのでしょうか?

7
コードレビューを効率的に監視する方法は?
私のチームでは、主要なコードレビューが隠蔽されていると考えています。コメントなしでマージされたコードレビューが多すぎます。 単一のコメントなしにコードレビューのようなものはないように思えます。 チームリーダーとして、チームが適切なコードレビュープロセスを行っていることを適切に監視し、プロセスのメリットを最大化するためにチームを支援するにはどうすればよいですか? 更新 人々はアップデートについて知りたいと思うかもしれません。ここで与えられた多くの提案を試みました。ほとんどはすでに使用されていました。一部は少し助けた。しかし、問題は残りました-私が見ていなかったときに、一部の人々は絶えず悪いコードを得ました。 コードレビューの監視は、チームツールを提供してコードを改善することほど有用ではないことがわかりました。 そこで、コピーペーストを検出するために「jscpd」という名前のライブラリを追加しました。コピーペーストでビルドが失敗しました。これにより、1つの問題がすぐに解消されました。 次に、codeclimateを試します。 また、半日スプリントで1回、古いコードレビューの手動レビューを行っています。私はtodosを問題/チケットに変換しています-人々がそれらを書いていることがわかりましたが、後で処理されることはありません。また、適切なときにコードをレビューするために、チーム全体と会議を行っています。 一般的に、正しい方向に進んでいるように感じます。

7
ピア/コードレビューの不満
私は自分自身をスーパースター開発者とは呼びませんが、比較的経験豊富な開発者です。私はコードの品質を高いレベルに保ち、コーディングスタイルを常に改善し、コードを効率的で読みやすく、一貫性のあるものにするよう努めています。また、品質と速度の両方のバランスが必要であることも理解しています。 これを達成するために、ピアレビューの概念をチームに導入しました。github pull-requestでのマージの2つの親指。素晴らしい-しかし、私の意見では、せきをせずに。 同じ同僚からのピアレビューコメントがよく見られます- 後にスペースを追加すると良いでしょう <INSERT SOMETHING HERE> メソッド間の不要な余分な行 docblock内のコメントの最後で完全停止を使用する必要があります。 今、私の観点から-レビュー担当者はコードの美学を表面的に見ており-実際にコードレビューを行っていません。化粧品のコードレビューは、ar慢/エリートのメンタリティとして私に伝わります。内容はありませんが、レビュアーが技術的に正しいため、あまり議論することはできません。上記の種類のレビューはもっと少なく、次のようなレビューをもっと見たいです。 循環的な複雑さを減らすには... 早く終了し、if / elseを避ける DBクエリをリポジトリに抽象化します このロジックは実際にはここには属していません 繰り返してはいけません-抽象と再利用 Xメソッドの引数として渡された場合はどうなりYますか? これの単体テストはどこにありますか? 私は、化粧品の種類のレビューを与えるのは常に同じ種類の人々であり、私の意見では「品質と論理に基づく」ピアレビューを与えるのは同じ種類の人々であると思います。 ピアレビューの正しいアプローチは(もしあれば)何ですか。そして、同じ人が基本的にコードをスキミングして、実際のコードの欠陥ではなくスペルミスや美的欠陥を探すことにイライラするのは正しいですか? 私が正しい場合-化粧品の修正を提案することとのバランスで、同僚に実際にコードの欠陥を探すように奨励するにはどうすればよいですか? 私が間違っている場合-私を啓発してください。実際に優れたコードレビューを構成するものについて、経験則はありますか?コードレビューとは何かという点を見逃していませんか? 私の観点から言うと、コードレビューはコードの責任を共有することです。ロジック、読みやすさ、機能性をアドレッシング/チェックせずに、コードを評価するのは気が進まないでしょう。また、誰かがdoc-blockの完全な停止を省略したことに気付いたとしても、コードの強固な部分のマージをブロックすることはありません。 コードを確認するとき、500 Locあたり15〜45分かかります。これらの浅いレビューが実行しているレビューの深さであれば、これまで10分以上かかることは想像できません。さらに、浅いレビュアーからの評価はどれくらいの価値がありますか?確かに、これはすべての親指の重さが等しくないことを意味し、2パスのレビュープロセスが必要になる可能性があります。深いレビューのための1つの親指と「研磨」のための2番目の親指?

17
コピー&ペーストプログラミングの危険性を非プログラマーに説明するための良い、簡潔な方法は何ですか?[閉まっている]
コピーペーストプログラミングの問題を非プログラマーに説明できる優れた類似性または比metaを探しています。潜在的なクライアントのコード/システムのレビューを時折行いますが、よく見られる問題の1つは、コードベース全体に大量のコピーアンドペーストコードがあることです。それは私がレビューで定期的に呼びかけるものであり、毎回これがなぜ問題なのかを説明する必要がありますコピーと貼り付けは再利用の良い形ではありません)。明らかに、私はコード保守の観点から問題を説明することができます(しかし、説明します)。検索と置換がこの問題の効果的な解決策ではない理由を類推が示す場合のボーナス。助言がありますか? 明確にするために(以下のJaroslavの回答に基づいて)-ここではコードスニペットの使用については説明しません。私が目にするのは(多くの場合)膨大なコードのコピーと貼り付け、またはユーザーデータ(インラインSQLクエリを備えた)を多数のPHPまたはASP.NETページに貼り付けるための10行のコードです。そのため、同じプロジェクト内の別の場所からコードを複製します。 更新:ここには本当に良い答えがいくつかあります。スコットホイットロックの答えを選んだ理由についてはコメントで説明しましたが、製造に精通している顧客を扱っているなら、whatsisnameの答えを強くお勧めします。

5
コードレビューを段階的に導入する方法
私は6人のシニアエンジニアでチームを率いています。私は、すべての標準的な理由でコードレビューを行うことは私たちに大いに役立つと信じています。必ずしもすべての変更ではありませんが、少なくとも背景レビューの着実な流れ。したがって、人々は少なくとも他の人の変更を見て、それらについて話し始めます。 レビューを紹介する良い方法はありますか?チームから大きな不本意を感じています。それはもう1つのことであり、会話が苦痛になる可能性があるからです。少なくとも最初のステップとして、すべての変更をレビューすることは初心者ではないと感じています。量を増やす前に、まず低頻度でレビューを行うリズムと練習を始めてほしい。 誰かがコードレビューを徐々に成功させましたか?どうやって?しかし、「ホットな」ファイルまたはライブラリのレビューを要求することについては考えました。またはランダムに選ぶ。または、「選択」する必要がある変更を確認することを選択します。または、思い切ってすべての変更を行うことが唯一の方法ですか?

8
コードレビューのアイデアが嫌いな人にどう対処するか?
明らかに、経営者がコードレビューに時間を費やすことに投資する場合、誰もがそれをしなければなりません。 しかし、常に彼らの存在のあらゆるオンスに抵抗するそれらの人(またはギャル)がいます。 査読者としてこのシナリオを扱うとき、どのようにこのシナリオを効果的に管理しますか?

9
最初に何をすべきか:テストまたはコードレビュー?
私はプログラミングパターンとライフサイクルのプログラミングにまったく不慣れであり、最初に何をすべきか、コードレビューまたはテスト、それらは別々の人によって行われるのではないかと考えていましたか? 一方では、それが機能するかどうか誰もチェックしなかったのに、なぜコードをレビューするのが面倒ですか?一方、テストの前にレビューを行うと、いくつかのエラーが早期に発見されます。 推奨されるアプローチとその理由は?

12
理解できないコードをレビューする方法は?
私は会社の開発を改善する役割を与えられました。私が最初に始めたかったのは、コードレビューでした。 弊社には3人のプログラマーがいます。私はWebプログラマーです。私の既知の言語は主にPHP、ActionScript、JavaScriptです。他の2人の開発者はVB.netで内部アプリケーションを作成します ここ数週間、コードレビューを行っています。VBコードを理解するのは難しいと思います。だから彼らが何をしているのかを言うとき、ほとんどの部分で私は彼らの言葉を受け入れなければなりません。 間違っているように見えるものを見つけた場合は、自分の意見を説明し、私が知っている言語の1つでどのように対処するかを説明します。 時々 、私の提案は歓迎しているが、「これはそれを行うための最善の方法であるように、多くの時間が、私は物事を聞いています。この」には適用されませんまたは言語「このまたはそのような性質の似たもの言語」。 これは真実かもしれませんが、言語を知らずにこれらの主張を確認または反論する方法がわかりません。 可能な解決策の1つはvbを学習することであるため、より良いコードレビューを行うことができます。私は本当にvbを学ぶことに興味がありません(特に自分のプロジェクトで学ぼうとしている他の技術のリストがあるので)そしてこれを最後の手段として残したいのですが、それはオプションです。 私が思いついた別のアイデアは、彼らは両方ともC#に興味があり、私もそうです。しかし、それは私たち全員にとって新しいことです。私たち全員がペットC#.netプロジェクトで協力し、それからお互いのコードをレビューすることの利点について考えました。 コンサルタントを雇ってコードレビューを提供する可能性もあると思います。 この状況で私が何をすすめますか。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.