質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.35%

  • Java

    16745questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コメントアウトしたコードを消すことについて

解決済

回答 8

投稿

  • 評価
  • クリップ 0
  • VIEW 5,843
退会済みユーザー

退会済みユーザー

javaのプログラマーです。コメントアウトしたコードを消すことについてどう思いますか。引き継いだソースが汚く、コメントアウトしたコードがたくさんあり、また、ソースを整理すると使っていない変数、メソッド、クラスが沢山ありそれもコメントアウトしました。コメントアウトしたコードはgitで管理しているし、使い道もなさそうなですしソースも汚くなるので消したいのですが、やめた方がいいと言う意見があればご教示頂けないでしょうか。
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 8

checkベストアンサー

+13

不要になったコードを、実際に削除する代わりに コメントアウト する(しかも、ご丁寧に日付や担当者名、修正理由の案件管理番号などを付記する)やり方は、Gitなどのバージョン管理システムが登場するずっと前の手法を 盲目的に 踏襲しているだけの悪習です。

無用なコメントは、可読性 を損なうばかりではなく、バージョン管理システムを活用する上での最も基本となる 差分管理 を困難にする要因ともなります。

ですから、本来であれば 一掃 すべきです。中途半端に残すべきではありません。

しかしながら、無用な行の削除とはいえ、削除してしまうと 差分 が発生することには違いありません。ですので、無計画に削除してしまうと差分管理が面倒になってしまって、コードを整理するはずが 本末転倒 な状況になっていまします。

また、コメントの削除とはいえ、人間のやることですから思わぬミスが発生する可能性もゼロではありませんので、それなりの 確認(=テスト) は必要と考えます。

ですので、実施するからには リファクタリング の実施に準じる形でそれなりの工数(=コスト)を見込んできちんと実施すべきです。

つまり、以下のようなポリシーは厳守した方が良いと思います。
  • 本来修正予定のないクラスやメソッドには不用意に手を加えない
  • 修正予定のあるクラスやメソッドに関しては、削除予定のコメントのみを削除した状態で基本的なテストを実施し、挙動の変化の無いことを確認した上で一旦コミットする
  • 必要なテスト工数を確保できない場合はコメント部分の削除は見送る

ただし、このような ソースを綺麗にする活動 は、それなりにコストも掛かりますし一人で実施しても効果が薄いので、プロジェクト全体としてのコンセンサスを得て、できれば全員の協力体制の下で実施すべきですね。

そういう観点からすると、ある程度以上大きく、しかも保守的なプロジェクトでは難しいかもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/11/07 07:10

    >> 必要なテスト工数を確保できない場合はコメント部分の削除は見送る
    これがネックで、実施に踏み切れない事が多いと思います。

    キャンセル

  • 2015/11/09 17:07

    確かに仰る通りですね。ある程度の歴史のあるプロジェクトに共通の悩みだと思います。

    しかし、より重要なことは、不要コードをコメントアウトするといった「誤った対応をした箇所を増やさない」事だと思います。

    修正(削除)が無理ならば、せめて既に出来てしまった無意味なコメント部分は「塩漬け」にして決して触れない事が重要です。仮に殆ど同じコードを再度追加する必要があったとしても、塩漬け箇所は完全に無視して「新規の追加」とする事により、ある時点以降の差分管理は正しく実施出来るようになります。

    お掃除も含めた「リファクタリング」は、あくまでも「品質改善」プロセスとして予算が取れる場合に、通常の開発プロセスとは明確に分けて実施すべきものだと考えます。

    キャンセル

+11

gitでソースを管理しているなら消してもいいのではと思います。明らかに、当面参照しないのがわかっているなら、可読性を下げる要因になりますし。
必要になればgitで履歴を参照できるので。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+10

gitで管理しているし
というように、ファイルをバージョン管理しているのなら、私は不要なコードは積極的に削除すべきだと思います。

可読性を損なう、ファイルが無駄に大きくなるなど、デメリットしかないと考えるからです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+8

最新のソースコード上には、そのコードを理解する妨げになるようなノイズは除去すべきです。
バージョン管理システムでソースコードを管理していて、「プロジェクトのルールで、コメントを消すだけのコミットが許可されていない」ようなことが無ければ、消すべきだと思います。

できれば、まちがって消してはいけない部分をに消していないかをレビューしてもらうのが良いかも。


どうしても何かしら過去の情報をソースコード上に残したいのであれば、その旨を要約したコメントだけにして元のコメントを消したほうが良いと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+6

私はガンガン消していきます。

迷うとしたら一時的に消したという内容のコメントが付いていたときぐらいでしょうか。それでも確認した上で消しますが。

バージョン管理が普及する前はコメントアウトをして残していたそうですが、今はもう過去の話でしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

自分は、たまたま自分が修正している部分で、絶対不要と分かっているのなら消します。
(修正履歴で、ここからここまで直しましたーって目印的なものは、プロジェクトのルールによりますが、即消します。)

でも、仕様調整によって一時的にコメントアウトしている部分も無きにしも非ずなので、
消す際も確認は必要だと思います。

そして、修正範囲外でコメントアウトしてある部分をガッツリ消すのはやりません。
コメントを消すということは、手を加えるということで、修正したということになり、
動作確認作業が大変になるからです。
触らぬ神に祟りなし、です。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+3

引き継ぎを機に、コメントアウトされたコードは削除するとよいとおもいます。

参考情報:

- コメントの9割は無駄!~アンチプラクティスから学ぶ洗練されたコメントの書き方~ https://codeiq.jp/magazine/2013/12/3700/
...
使わなくなった関数やステップをコメントアウトしてとって置くことがあります。
コメントアウトされたコードは、今のコードと関係のないものになっていることが多いです。
そのため、コードの可読性が著しく損なわれたり、grep検索にノイズとして引っかかって作業の妨げになったりします。
戻すことが当分ないと思ったら、思い切って削除してしまうことです。
削除された事実はSubversionやGitなどのバージョン管理システムで残すことができます。
いざとなれば、バージョン管理システムから復元することもできます。
ソースコードは「今」の状態を保つように心がけることが、読みやすいコードのカギです。
...

- 変更前をコメントアウトして残す習慣は未だ根強い http://irof.hateblo.jp/entry/20120815/p1
...
「バージョン管理ツールが使えない人にもわかるように」とか言われたこともありますが、そんなのに対して聞く耳を持ったら何も出来なくなるので放置でいいと思います。
...

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+2

場合によりけり?

制御の世界で品質重視の物、たとえば人の命にかかわるような対象の場合は、コメントの削除もソースの改変として取り扱います。

この場合、コメントの削除など、広い意味でのソースの整理を行うためには、基のソースとの動作の変化がない事を確認する作業が必要になる事が多いです。運よく、整理前後のHEXファイルが完全に同一だから動作確認をするまでも無いこともあるでしょうが、結構な確立で動作検証をやり直す事も多いです。

現状は、1世代分のみコメントを残すことが多いですね。(リスク管理のトレーサビリティマトリックスのタグをソースに書いておけ、とか言う面倒なルールがあるので) 次のバージョンアップの最初の作業で、それを消して、同一(動作)チェックしていますか・・・

ソースコード管理は便利ですが、チェック・バックアップ・履歴管理を効率化するだけで、整理後の動作にはほぼ無関係です。($Revision:とかでかく乱される事もありましたが…)

以上は、結構きつい分野の場合ですが、リスクレベルが低い分野なら、整理と必要があればその後の同一動作の試験を行うコストが許容できるなら、やった方が良いと思います。


投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Java

    16745questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。