頭が痛いプログラミングネーミングの問題にどう直面しますか?
2698 ワード
1.はじめに
コードを書くときに一番頭が痛いのは何ですか.アルゴリズムですか.論理?それともフレームワーク技術ですか?個人的に一番頭が痛いのは変数の命名ですが、今日はこの話題についてお話しします.微信圏のプログラマー交流圏に参加してプログラミングの経験を交流することを歓迎して、投稿を歓迎します.
2.ネーミングはアート
中国の伝統文化の中で、命名(命名)は非常に厳粛で荘重なことである.世代、生辰八字、その他の記念的な意味がある.他の人があなたに彼の名前を「王伯堂」と言ったとき、あなたはそこから彼が家のボスかもしれないことを知っています.もし彼が弟がいると言ったら、あなたは彼の名前を「王仲堂」と呼ぶかもしれません.
プログラミングにおけるネーミングも同様であるべきであり、良好なネーミングはコードの可読性、理解性を高め、読者に直接代入感を与えることができる.だから私から見ればネーミングはもっと芸術に似ています.
3.いくつかの実践中の経験
私も時々頭が痛いですが、できるだけこのことをします.次に私の命名経験についてお話しします.私たちの名前は必ずその機能を説明しなければなりません.そうしないと、
3.1変数の命名
変数定数
身長を表す変数
約定俗成にも言語の限界があり、
3.2メソッドの名前付け
メソッドのネーミングには、メソッドの具体的な役割を名前から知る必要があります(dowhat).方法の具体的な役割を示すべきかどうかは、あなたの具体的な論理に依存します.もし人の身長を取得するならば、私たちは
良いネーミングを考えるのは確かに難しいですが、難しい道理があります.良いネーミングは1、2つの単語だけであなたの根本的な意味を表現する必要があるからです.通常、適切な名前が思いつかない場合は、デザインに問題がある可能性があります.あなたの1つの方法では、多くの機能が実現されていますか?あるいはあなたのクラスのパッケージは、凝集性が足りませんか?--Stackoverflow創業者Jeff Atwood
3.3インタフェースの名前
インタフェースは通常、ある特定の機能の抽象であると思います.そのため、通常、インタフェースは
一部の仕様では、インタフェースは大文字Iで始まるべきだと考えていますが、これは良い選択だとは思いません.そして、美しくありません.
3.4クラスの名前付け
インタフェースが機能の汎化であるとすれば,現クラスは機能の具体化であるべきである.クラスのネーミングは相対的に具体的であり、インタフェースの機能を体現する必要はありません.ただし、ベースクラスは
4.ネーミングレベルの向上方法
まず強迫症が必要です.そうしないと、自分はこのことを気にしません.そして、有名なフレームワークのソースコードを多く読んで、大物のコードからインスピレーションを得ます.英語のレベルを高めることは、命名能力を高めるだけでなく、上限を高めることも重要です.
シリコンステップを積まず、千里もない.小流を積まなければ,川の海になることはできない.
5.まとめ
プログラミングで命名したいくつかの見方と経験を簡単に書きました.まったく一家の言叶!実は銀弾は何もなく、すべてが蓄積されています.プログラミングのネーミングにどんな良い経験があるか分かりませんが、伝言で共有してみてください.
コードを書くときに一番頭が痛いのは何ですか.アルゴリズムですか.論理?それともフレームワーク技術ですか?個人的に一番頭が痛いのは変数の命名ですが、今日はこの話題についてお話しします.微信圏のプログラマー交流圏に参加してプログラミングの経験を交流することを歓迎して、投稿を歓迎します.
2.ネーミングはアート
中国の伝統文化の中で、命名(命名)は非常に厳粛で荘重なことである.世代、生辰八字、その他の記念的な意味がある.他の人があなたに彼の名前を「王伯堂」と言ったとき、あなたはそこから彼が家のボスかもしれないことを知っています.もし彼が弟がいると言ったら、あなたは彼の名前を「王仲堂」と呼ぶかもしれません.
プログラミングにおけるネーミングも同様であるべきであり、良好なネーミングはコードの可読性、理解性を高め、読者に直接代入感を与えることができる.だから私から見ればネーミングはもっと芸術に似ています.
3.いくつかの実践中の経験
私も時々頭が痛いですが、できるだけこのことをします.次に私の命名経験についてお話しします.私たちの名前は必ずその機能を説明しなければなりません.そうしないと、
a
、bb
、c01
、sb
という変数に遭遇すると、気が狂うと推定されます.略語は公認の約束であればいいです.有物は最低の要求だ.3.1変数の命名
変数定数
身長を表す変数
height
など、いくつかの属性を識別するために使用されます.しかし、これはこの変数の意味を明確に表現するのに十分ですか?人の身長なら、human
を加えてもっと明確になるかもしれません.humanHeight
です.誰の(どのような)具体的な属性にまとめることができます.いくつかの集合属性を有する変数について、studentList
またはstudents
のような集合特性をネーミングすることも優れている.一時変数は通常temp
接尾辞を含みます.他にも、i
がインデックス(index)を指すために一般的に使用されるように、いくつかの一般的な命名がある.一般的に変数命名は名詞とその修飾語の組み合わせが主である.約定俗成にも言語の限界があり、
e
はJavaでは例外(exception)であり、JavaScriptでは通常イベント(event)である.3.2メソッドの名前付け
メソッドのネーミングには、メソッドの具体的な役割を名前から知る必要があります(dowhat).方法の具体的な役割を示すべきかどうかは、あなたの具体的な論理に依存します.もし人の身長を取得するならば、私たちは
getHumanHeight
と命名することができます.もし確定しなければ、人の身長だけを取得するならば、私たちはgetHeight
と一般的に命名することができます.メソッドの参入も同様のポリシーをとるべきである.良いネーミングを考えるのは確かに難しいですが、難しい道理があります.良いネーミングは1、2つの単語だけであなたの根本的な意味を表現する必要があるからです.通常、適切な名前が思いつかない場合は、デザインに問題がある可能性があります.あなたの1つの方法では、多くの機能が実現されていますか?あるいはあなたのクラスのパッケージは、凝集性が足りませんか?--Stackoverflow創業者Jeff Atwood
3.3インタフェースの名前
インタフェースは通常、ある特定の機能の抽象であると思います.そのため、通常、インタフェースは
able
で終わり、JavaのCloneable
、Runnable
などです.しかし必ずしもそうとは限らず,インタフェースが同一の事物の共通性を表している場合,このような抽象的な概括的な命名も可能であり,比較的有名なのがサーブレット仕様のFilter
である.いくつかのネーミング方式は、工場モードがFactory
を使用し、テンプレートメソッドモードが通常Template
で終わるなどの設計モードを使用していることを示している.とにかくあなたの名前がこのインタフェースの能力を体現している限り、私はすべて適切だと思います.一部の仕様では、インタフェースは大文字Iで始まるべきだと考えていますが、これは良い選択だとは思いません.そして、美しくありません.
3.4クラスの名前付け
インタフェースが機能の汎化であるとすれば,現クラスは機能の具体化であるべきである.クラスのネーミングは相対的に具体的であり、インタフェースの機能を体現する必要はありません.ただし、ベースクラスは
Base
で始まることが多く、デフォルトで使用される実装クラスはDefault
で始まり、抽象クラスであればAbstract
で始まる.3.3章で述べた設計モードも、通常、クラス名の選択である.総じて類名も名詞とその修飾語の組み合わせが主である.4.ネーミングレベルの向上方法
まず強迫症が必要です.そうしないと、自分はこのことを気にしません.そして、有名なフレームワークのソースコードを多く読んで、大物のコードからインスピレーションを得ます.英語のレベルを高めることは、命名能力を高めるだけでなく、上限を高めることも重要です.
シリコンステップを積まず、千里もない.小流を積まなければ,川の海になることはできない.
5.まとめ
プログラミングで命名したいくつかの見方と経験を簡単に書きました.まったく一家の言叶!実は銀弾は何もなく、すべてが蓄積されています.プログラミングのネーミングにどんな良い経験があるか分かりませんが、伝言で共有してみてください.