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

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

新規登録して質問してみよう
ただいま回答率
85.49%
Java

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

Q&A

解決済

8回答

19677閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

0グッド

0クリップ

投稿2015/11/06 05:44

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

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答8

0

ベストアンサー

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

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

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

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

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

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

つまり、以下のようなポリシーは厳守した方が良いと思います。

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

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

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

投稿2015/11/06 16:55

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

katoy

2015/11/06 22:10

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

2015/11/09 08:07

確かに仰る通りですね。ある程度の歴史のあるプロジェクトに共通の悩みだと思います。 しかし、より重要なことは、不要コードをコメントアウトするといった「誤った対応をした箇所を増やさない」事だと思います。 修正(削除)が無理ならば、せめて既に出来てしまった無意味なコメント部分は「塩漬け」にして決して触れない事が重要です。仮に殆ど同じコードを再度追加する必要があったとしても、塩漬け箇所は完全に無視して「新規の追加」とする事により、ある時点以降の差分管理は正しく実施出来るようになります。 お掃除も含めた「リファクタリング」は、あくまでも「品質改善」プロセスとして予算が取れる場合に、通常の開発プロセスとは明確に分けて実施すべきものだと考えます。
guest

0

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

投稿2015/11/06 05:50

archiver

総合スコア1557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

gitで管理しているし

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

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

投稿2015/11/06 05:51

KiyoshiMotoki

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

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

投稿2015/11/06 06:00

argius

総合スコア9388

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

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

投稿2015/11/06 07:36

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

場合によりけり?

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

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

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

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

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

投稿2015/11/06 22:41

T.Kanno

総合スコア915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

参考情報:

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

...
「バージョン管理ツールが使えない人にもわかるように」とか言われたこともありますが、そんなのに対して聞く耳を持ったら何も出来なくなるので放置でいいと思います。
...

投稿2015/11/06 15:12

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

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

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

投稿2015/11/06 06:02

編集2015/11/06 06:04
kaputaros

総合スコア1844

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問