アカウント名:
パスワード:
リスト3-7では、サンプルとして取り上げた関数の名前をtestableHtmlからSetupTeardownIncluder.renderに変更しています。この名前は、関数が何を行うかをよく表現しており、ずっとよい名前です。privateメソッドに対しても、isTestable、includeSetupAndTeardownPagesといった、同じくらい内容をよく表す名前を与えています。適切な名前付けの価値はいくら評価したとしても、過大評価となることはありません。ワードの原則を思い起こしてください「そこに書かれているルーチンを読んだとき、それがあなたの予想を上回るものであったとしたら、あなたはクリーンコードの中で作業をしていることに気づくのです」。この原則の半分は、1つのことを行う小さな関数に適切な名前を付けることで達成できます。関数を小さくし、そこに注目するようになるに従い、内容をよくあらわす名前をつけることは簡単になっていきます。 長い名前を付けるのを怖がらないでください。内容をよく表す長い名前は、不可解な短い名前よりも優れているのです。内容をよく表す長い名前のほうが、内容を説明した長いコメントよりも優れているのです。複数の単語で構成された関数名を簡単に読めるような命名規約を用い、これらの複数の単語を関数の名前に使用して、その関数が何を行うのかを明確にしてください。
『Clean Code アジャイルソフトウェア達人の技 [amazon.co.jp]』 P70「内容をよく表す名前を使う」より。
英語圏の話なので、日本語だと必ずしもメソッド名だけで意味が通じるかと言うと微妙な部分はありますが、基本的にIDEが主流になった昨今、下手に短い意味の判らないメソッド名にするよりはっきり意味の判る長いメソッド名の方がよいでしょう。モニターも横長のものが増えていますし、数十文字程度なら全然OKです。
# 1行80文字とかコーディング規約が厳しい場合は・・・ご愁傷様で、、、
BOOL ::IsAllYourBaseAreBelongToUs()#26文字余裕でした。
意味が分からないのは、論外です。まず、doxygenで仕様を記述してください。次に、仕様にあわせて意味の通じる名前に修正してください。
> BOOL ::IsAllYourBaseAreBelongToUs()
元々間違ってる文章なのでツッコミも野暮かも知れませんが、それはさすがにないでしょう。せいぜい、
BOOL AreAllYourBaseBelongToUs()
じゃないですかね。
「boolを返す関数の接頭辞は"is"とする」というコーディング規約を見たことがある。(げんなり)
これは内容をよく表す名前にした時に長すぎる名前になるなら、関数設計がおかしい(から直せ)って言ってるんじゃないの#2131895 [srad.jp]とか
似た話で「字下げは8文字にしろ、それで深くなりすぎるならコードがおかしい [osdn.jp]」というものがある。
いえここは書籍の後の段落を読むと判るのですが、あくまで名前付けのルールについて語っています。だから「長くても内容をよく表す名前を使え」という理解でよいですよ。
「長すぎる名前になるなら関数設計がおかしいから直せ」は、書籍上だとこの文章のちょっと前のP66「1つのことを行う」の方に登場しています。
ToBeLongOrNotToBeThatIsTheQuestion
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
未知のハックに一心不乱に取り組んだ結果、私は自然の法則を変えてしまった -- あるハッカー
内容をよく表す名前を使う (スコア:2, 興味深い)
『Clean Code アジャイルソフトウェア達人の技 [amazon.co.jp]』 P70「内容をよく表す名前を使う」より。
英語圏の話なので、日本語だと必ずしもメソッド名だけで意味が通じるかと言うと微妙な部分はありますが、基本的にIDEが主流になった昨今、下手に短い意味の判らないメソッド名にするよりはっきり意味の判る長いメソッド名の方がよいでしょう。モニターも横長のものが増えていますし、数十文字程度なら全然OKです。
# 1行80文字とかコーディング規約が厳しい場合は・・・ご愁傷様で、、、
Re:内容をよく表す名前を使う (スコア:1)
BOOL ::IsAllYourBaseAreBelongToUs()
#26文字余裕でした。
Re: (スコア:0)
意味が分からないのは、論外です。
まず、doxygenで仕様を記述してください。次に、仕様にあわせて意味の通じる名前に修正してください。
Re: (スコア:0)
> BOOL ::IsAllYourBaseAreBelongToUs()
元々間違ってる文章なのでツッコミも野暮かも知れませんが、それはさすがにないでしょう。
せいぜい、
BOOL AreAllYourBaseBelongToUs()
じゃないですかね。
Re: (スコア:0)
「boolを返す関数の接頭辞は"is"とする」というコーディング規約を見たことがある。
(げんなり)
Re:内容をよく表す名前を使う (スコア:1)
これは
内容をよく表す名前にした時に長すぎる名前になるなら、関数設計がおかしい(から直せ)って言ってるんじゃないの
#2131895 [srad.jp]とか
似た話で「字下げは8文字にしろ、それで深くなりすぎるならコードがおかしい [osdn.jp]」というものがある。
「長くても内容をよく表す名前を使え」の解釈でOK (スコア:0)
いえここは書籍の後の段落を読むと判るのですが、あくまで名前付けのルールについて語っています。だから「長くても内容をよく表す名前を使え」という理解でよいですよ。
「長すぎる名前になるなら関数設計がおかしいから直せ」は、書籍上だとこの文章のちょっと前のP66「1つのことを行う」の方に登場しています。
Re: (スコア:0)
ToBeLongOrNotToBeThatIsTheQuestion