• ベストアンサー

変数や関数の命名規則?構文規則?

こんばんは。 今Perlを色々と勉強しているのですが、その前はPHPを勉強していました。 そこでどちらでも共通して思うことですが、作られている方によって当然変数や関数の命名方法が違います。 私自身も当然のごとくと言いますか、自分に分かりやすく名前をつけているのですが、 どうしても基本的な名前の命名規則がありそうで気になっております。 そこで教えていただきたいのは、 PHP、Perlなどで命名規則というか、構文規則のようなものはあるのでしょうか? それとこのような名前の付け方は「命名規則」というのでしょうか? 「構文規則」というのでしょうか? 本も数冊読んでいますが、このような事は載っていません。 と言うのも基本的な本だけしか読んでいないからかもしれないですし、 ネットで調べても思うような結果が得られません。 もしある程度決まった構文があるのでしたら、変な癖が付く前になおしたいと思っております。 今のところ 例えば文字列を使う変数には「$xxxStr」とつけたり 数値には「$xxxInt」や「$xxxLng」等としています。 関数でも全ての関数で使い回す物には「_Func」のようにしています。 ただどうしても他の方のを見ると色々違う使い方の方も多いので、非常に悩んでいます。 どうぞよろしくお願いいたします。

  • u-run
  • お礼率93% (695/745)

質問者が選んだベストアンサー

  • ベストアンサー
  • ttyp03
  • ベストアンサー率28% (277/960)
回答No.1

変数名や関数名の決まった名前のつけかたが「命名規則」です。 括弧の位置やコメントの書き方等が「構文規則」ですね。 ただあまり「構文規則」とは言わないかもしれません。 コンピューター業界ではこれら二つ(+α)をあわせて「コーディング規約」と呼ぶことが多いです。 命名規約についてですが、良く使われるのがハンガリー記法と呼ばれるもので、変数名の頭にその変数の型を示す文字(プレフィックス)を追加します。 例えばC言語の int 型の型の場合は i を頭につけ、iSample という感じにします。 ただ Perl や PHP の場合、厳密な型を定義しなくていいので、ちょっと違和感があるかもしれません。 構文規則については仕事で使う場合は会社毎やプロジェクト毎に決まる場合もありますが、個人でやる場合はほとんど趣味の世界ですね。 例えば関数の呼び出しひとつとっても書き方は色々あります。 ▲が空白だと考えてください。 sample(a,b,c); sample(▲a,b,c▲); sample(▲a,▲b,▲c▲); sample▲(▲a,▲b,▲c▲); などなど。 僕は3番目の書き方ですけどね。 とりあえず個人で作成するプログラムなら、命名規則も構文規則も自分なりに書きやすい方法を模索して自分なりの規則を作ってしまうのがいいでしょうね。 ただ Str や Int や Func 等、冗長すぎるのはかえってプログラムが読みづらくなると個人的には思います。

参考URL:
http://www.arcpit.co.jp/winapi/api_01/ap010203.htm
u-run
質問者

お礼

分かりやすいですね。 コーディング規約で色々調べてよく分かりました 回答ありがとうございました。

その他の回答 (2)

回答No.3

質問者さんの現在、使用されている書物は、どういったものでしょうか?僕は以前、以下のような本を使用していたことがあるのですが、この本の最後の方に、「Appendix G 識別子命名用資料」というのがあり、説明は次のようになっています。「ここでは、変数名や関数名などの識別子の命名に有用な、英単語の情報をまとめました。読みやすいプログラムにするためのスマートな命名を、この資料を参考に行って下さい。」 ・「TECHNICAL MASTER はじめてのPerl/CGIプログラミング UNIX/Windows+Perl 5.6対応」、玉川 純、株式会社 秀和システム、2002/5/5 初版第1刷 この資料によると、例えば、以下のような単語も厳密には使い分けた方がいいらしいです。 ・「初期化する」→initialize,reset ・「中断する」→abort,suspend ・「止める」→quit,stop それと、全部ではないのですが、省略形が載っているというのも結構為になりますね。実際には、Perlに限らず、他のプログラミング言語でも適用できそうなものばかりなので、このような資料等も参考にされたら、と思います。

u-run
質問者

お礼

掲示板から学ぶPerlと言う本です。 その本はいいですね!早速探してみたいと思います。 回答ありがとうございました。

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.2

横槍失礼します。 見た目(スタイル)に関する規則を「構文規則」と呼ぶ例は、仮にあるとしても多数派ではなかろうと思います。 というのも、自然言語で言うところの「文法」を、プログラミング言語やコンピューティングの業界では「構文」あるいは「構文規則」と呼びますので、これと同じ用語で別のものを指し示すことになってしまうからです。 (Googleで検索してみましたが、見た目に関する規則を「構文規則」と呼ぶ例を見つけることはできませんでした。)

u-run
質問者

お礼

業界用語がある訳ですね。 回答ありがとうございました。

関連するQ&A

  • java 変数の命名規則について

    閲覧ありがとうございます。 javaのクラスの変数にnotを入れた名前を付けたいのですが、notをNOTとすると分かりやすいと思います。 これは命名規則に反するのでしょうか。

    • ベストアンサー
    • Java
  • セッション変数の命名規則

    PHP5使っています。 1つのウェブアプリで、たくさんコーディングしていると、セッションの変数名がいつの間にかかぶってしまって、予期せぬ動きをしてしまうのではないかと心配です。 例えば、$_SESSION["id"]とか、ありがちな名前を使ってしまって、 それが実は違うロジックでも使われていて、そっちのページの方へアクセスして、元のページへ戻ってきたらなんかおかしなことになっている、というような現象は、起こりうると思います。 これを防ぐには、セッションの変数名がかぶらないようにするべきと思いますが、皆さんどのように命名していらっしゃいますでしょうか?または他にうまい解決法があるのでしょうか?

    • ベストアンサー
    • PHP
  • 変数・関数その他の命名規則

    SharpDevelop(VB.NET)であるプログラムのソースを書いています。ビルド自体はできます。 先日、色々うろついていてFxCopと言うものを知り、実行してみると出るわ出るわ警告の山。一つ一つ片付けていきたいと思います。 でまぁ、現在以下のエラーが出ています。 IdentifiersShouldBeCasedCorrectly 大文字小文字をきちんと意識して書け、ということなのは何となくわかるのですが、どう直して良いかわかりません。また何故直すべきなのかも判りません。 直し方を教えてください・・・・というのは質問ではなく。 この警告に限らず、FxCopが良いとする変数・定数・関数・クラス名・列挙型etcの命名規則(理由 & 具体例)はどのようなものなのでしょうか?何か文献はありますか?FxCopのヘルプにはソレっぽい記述がある気がしないので・・・

  • VBA 引数の簡単な命名規則ありますか?

    Excel VBAで 簡単なプロシージャを作る時に引数名で詰まります。 関数化するなら引数は別に名前を付けたい。でも単純すぎてわざわざ別名が 思いつかない…できれば呼びだし元の変数名をそのまま使いたい hoge(text,loop) sub hoge( _text, _loop ) とかできればいいんですが先頭_(アンダーバー)ってダメなんですよね 最後_(アンダーバー)は行継続と紛らわしいし… いまんとこ、 定数UPPER 関数UpperCamelCase 変数loweCamelCase と簡単な程度なんですがなにか短くて気楽な引数の命名規則は無いもんでしょうか?

  • ActionScript(3.0)の命名規則について

    flashデベロッパーの方に参考意見をいただきたいです。(それ以外の方も大歓迎です) 変数の命名規則なのですが、皆様はどのような形で規則性を持たせていますか?参考書などを見ると結構それぞれに違う規則があるように感じました。 例えば今自分が考えているモノとしては ・private変数には_hogeのようにアンダースコアを。 ・public変数は通常通りhogeで。(getterも同様に) ・クラス変数は__hogeのようにアンダースコア2つで。 このくらいしか分類していないのですが、他にも引数やローカル変数にはこれがいい、とか、その他慣例やおススメがあれば是非ご意見をいただけますでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • VB2008でのクラスや変数などの命名について。今VB6で作成したプロ

    VB2008でのクラスや変数などの命名について。今VB6で作成したプログラムをVB2008に移植中なのですが、名前の付け方で悩んでいます。 VB6のときはハンガリアン記法が推奨されており、クラス名は頭にclsをつけてclsHogeとかやっていたわけですが、VB2008ではそのような記法はもう主流でないと聞きましたので、clsを取っ払い始めたのですが、やっていくうちにそのクラス名が変数名やプロパティ名とぶつかっていることに気付きました。 Javaだとクラス名は大文字で始め、変数名や関数などは小文字で始める規則になっており、大文字小文字を区別する仕様なので問題ないと思いますが、VBでは区別ないので適用不可です。  VBにお勧めの命名規則はありますか?

  • ■ 式の構文規則について ■

    下記URLの設問2にある式の構文規則についてです。 http://情報処理試験.jp/FE22a-pm/t02.html 式の構文規則にある「式」や「項」、「因子」、「名前」はどんな意味なのでしょうか? 構文規則の見方がよく理解できませんでした。 ご教授いただける方、よろしくお願いいたします。

  • 関数定義での変数について

    Perl/CGIより移行してきた者です。 この度、サブルーチン(PHPで言う関数定義)にて疑問があります。 当方、PHP5を利用しています。 Perl/CGIでは関数外で定義した変数も利用できたかと思うのですが、PHPでは利用できますか? 簡単なスクリプトでテストしたら表示されなく頭を悩ませています。 以下コードになります。 <?php $prints ="aaa"; $printss ="bbb"; function check3(){ print "$prints"; print "$printss"; } check3(); ?> Perl/CGIですと $test = "aaa"; &print(); sub print { print "$test"; } でもばっちり表示されたかと思うのですが。 伝わりにくいかと思いますが、ご存知の方宜しくお願い致します。

    • ベストアンサー
    • PHP
  • phpの変数について

    phpの変数として<?= ~ ?>は設定できないのでしょうか? 例) $test = "<?= $smple ?>" <html> <body> <p>$test</p> </body> </html> 上の記述だと文字列として扱われてしまうので、以下のように表示されてしまいます。 <html> <body> <p><?= $smple ?></p> </body> </html> 変数を使用して、通常のphp構文のように使用することはできないのでしょうか? 若しくは、同じことを実現するためには別のやり方や関数などを用いなければならないのでしょうか? 基本的なことを質問している気がしますが、どなたかご教授願います。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • 変数など厳密なプログラムが書きたいのですが、どうすればよいでしょうか?

    PHPで関数の引数に渡すとき、以下のように$aaを$aとしてしまった場合に 関数内の$idは値がありませんが、関数内でこれを検出することができるのでしょうか? Perlなら use strict;とし、my等で定義されていない変数はすべて警告表示されますが、PHPはスルーです。 変数など厳密なプログラムが書きたいのですが、どうすればよいでしょうか? $aa = 1; test($a) function test($id){ ... }

    • ベストアンサー
    • PHP

専門家に質問してみよう