Blogロードバイク通勤のRubyプログラマで伊豆ダイバー。おいっちょの日記この記事を見ると「オレ間違ってのかー!NO---!」となる人多いんじゃないかな。みなさん、プログラムを書くとき、コメント書いてるでしょうか?僕は過去色んな人に「コメントはたっぷり書きなさい」と教わって育ちました。僕も昔は先輩諸氏の教えにそってコメントをたっぷり書いてました。少なくとも数行に1行はコメント。今はほとんどコメントを書きません。頑張っても読み下せるコードなんて書けないアセンブラなら必須だけど、可読性最優先でコーディングできる環境なら必要ないと考えるからです。コードを見れば明らかなところにコメントを書く必要はありません。これはコメントの整合性を保つための保守コストを上げるものでしかないでしょう。コードを読んで分かりにくいところにだけコメントを書くべきです。?、いや違う、コメントを書かなければ理解できないようなコードは整理するべきです。マーチン・ファウラーもコメントはリファクタリングすべき「不吉な匂い」として挙げています。処理内容をコメントで説明しているような状態は、すでに人間の理解範囲を超えた破綻状態のコードと言えるので、直すべきコードであることを判断する目安として便利です。整理されると、コメントは消えてしまいます。メソッド単位の話をすると、まずメソッドはサッと読み下せるように書かれているべきです。処理が複雑で理解しにくいと感じたら、そのメソッドはアトミックに分解できる可能性が高いです。長すぎるメソッドや深すぎるインデントが目安になるでしょう。分解したメソッドにはコメントを補わないで良いように適切な名前を付けます。メソッドがアトミックに分解されると、アトミックメソッドを呼び出すフロー制御的なメソッドができます。このメソッドは容易に読み下せるはずです。オブジェクト指向でも、メソッドに仕事を詰め込みすぎにならないようにするために、パブリックメソッドの下は手続き型プログラミング的に整理してもいいんじゃないかと。パブリックメソッドの呼び出しを追えば処理の大まかな流れは理解できて、詳細を知りたい場合はプライベートメソッドまで目を通す。メソッド名はコメントの代用になるため重要。分かりにくいと感じたらすぐに改名できるように、リファクタリング機能を備えたEclipseは便利ですね。↑ただ、スキル的にそういうプログラミングができない人が書いたコードにコメントが無いと最悪なのは確かです。言って「コメントを沢山書いておけ」と教え込むのは根本的に違うよね。活用しても良いでしょう。頭にTODOとか書いておけばEclipseで一覧表示できるし、そうでなくてもgrepするだけでもかなり便利です。「リリースまでに片付けるべき仕事」ですよ。ジョージプログラム内のコメントですか。私は条件分岐のところにコメントを書くことが多いです。「~の場合は~をする」程度のものです。それ以外はなるべく変数名で何のための変数だか分かりやすくしてるので、あえて細かくは書いてないです。みやまえ条件式はコードでも普通1行のはずですからコメントは要らない気がします。それが必要だということは条件式が複雑すぎるのではないでしょうか。条件式を変数か、検査対象のメソッドに追い出すとスッキリする場合が多いです。どちらが他の人に解析しやすいんでしょうかね?コメントが要らないというのは、あくまでもコメントが無くても読めるように配慮して書かれたコードの場合です。コメントをできるだけ書かないで済むようにコーディングすることで、綺麗なコードができていくと思います。コメントを書くとすれば、ロジックの中じゃなくて、メソッドやファイルのヘッダのほうだと思います。ジョージなるほど、コメントが要らないようなコーディングですか。メソッドのヘッダなどに機能概要を書いてたりしてた時期もありました。今は会社のHPでASPを少し使うくらいなので、メソッドというような単位じゃなく、HTML内の動的部分でASPを使って表示してるくらいなので、少し勝手が違うのかもしれません。大槻昌弥オンラインで流通させるパッケージで、仕様書まで添付しない場合は、コメントはモジュール仕様とかハードに依存している内容をメモするぐらいなら役に立つだろう。「多分バギーである」とか「ネストが深いあるいは、結合強度が高く複雑」といった傾向・・・つまりコーディングとしては端から失敗して泥沼状態に近いときに、豪くコメントばっかというようなファイルを作っているようなきがする(汗)さらに泥沼にはまっていくのは、変更していく過程でコードとコメントの論理が矛盾してしっているようなファイルを作ってしまうコトねぇ。もと記事にある指摘みたいなことは、初めてのプログラミングで30分ぐらいエディタと睨めっこしていたら気づくようなことだと思うけど・・・まぁ、気づかない方はそれまでの人ってことなのかなぁ。いえば、「必要は発明の母」と言った方がいたようだけど、たぶん「問題に取り上げて変化を与えること」を「必要」というんだろうな。私的には「何が問題なのか考えるのは物作りの原点」だと考えてます。意味不明なコメントは「変化を与えるモノ」であったと振り返ることができれば善しとしよう。私はあなたがこのウェブサイトで置いているすべての素晴らしいご提案に感謝するために購入の短評を書き留めるために必要。私の長期インターネットの検索では、一日の終わりに私の同僚との貿易に信頼性の詳細と技術で認識されている。私は読者が実際に洞察力にポインタを持つ非常にいくつかの優秀な個人との重要な場所に住んで真剣に幸運な私達のそのいくつかを主張するだろう。12:00プログラムにコメント書きます?関連記事2012-02-08ぼちぼちアップデート、サクサクRubyリファレンス「サクサク引けるRubyリファレンスマニュアル」ですが、ぼちぼ...2009-04-09wxRubyでハマったこととかまとめ速度、コーディングのしやすさともに、wxRubyがかなり気に入り...2008-10-24マニュアル執筆ドキュメントの充実していないシステムなんてけしからん!!と...2005-02-01プログラマ人生X68000を買ったのは1990年で、BASICでプログラミングを始めたの...メディアサイト構築CMS「Clipkit」は累計およそ600のWebサイトで採用。月間1,000万PVを超える人気サイトも複数あります。ラグル株式会社は、このプロダクトを一緒に育ててくれるエンジニア(Rubyプログラマ/フロントエンドエンジニア/SRE)を募集しています。当社は総合PR会社の株式会社ベクトル(東証1部:6058)のグループ会社です。はてなブログProロードバイク通勤のRubyプログラマで、伊豆ダイバー。Founderビットアーツは1998年よりWebアプリケーションを専門としてシステム開発サービスを提供しています。OEM向け製品開発にも取り組んでいます。現在はラグル株式会社を立ち上げて、Webメディアサイト構築CMS「Clipkit」を作っています。さいたまクリテリウム2019-10-10「ザ社内報」のつり革広告が登場しました!もっと見る月別アーカイブはてなブログをはじめよう!miyamaeさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。