LoginSignup
0
0

More than 5 years have passed since last update.

LSL(Linden Script Language)のコーディング規約のまとめ

Last updated at Posted at 2018-12-24

まえがき

LSLにはPythonのPEP8のような明確な規約がなく、作者によってコーディングの規則が違います。
そこで、各自の規則を考える際の手がかりになるように、慣例的に用いられているコーディング規約についてまとめました。
重要なことは可読性と一貫性を保つことです。

インデント

インデントは半角スペース4文字
もしくはそれと同じ幅のTAB文字

名前の表記法

命名には以下の三つのタイプがよく用いられます。

  • スネークケース (snake case)
  • ローワーキャメルケース (lower camel case)
  • アッパーキャメルケース (upper camel case)

スネークケース (snake case)

単語を_(アンダースコア)で区切る。
例:snake_case, example_name

ローワーキャメルケース (lower camel case)

最初の単語は小文字、それ以降の単語の先頭を大文字で区切る。
例:lowerCamelCase, exampleName

アッパーキャメルケース (upper camel case)

単語の先頭を全て大文字で区切る。
例:UpperCamelCase, ExampleName

より詳しい説明は以下の記事などが参考になります。
「変数/クラス名の命名規則に使われる記法の分類(Qiita)」
「キャメルケースで省略語をどう扱うか(Qiita)」

命名規則

基本規則

意味を読み取ることができる名前

  • 名称から役割、意味が読み取られる名前を付ける。
  • info, data, temp, str, bufなど曖昧・抽象的な名前は避ける。
  • 意味が分かる名前を付けるようにし、単語の省略はしない。
    • (ただし、十分にスコープの狭いローカル変数やループカウンタなどの場合、可読性を損なわない範囲で省略形が使われることがある。)

名称の対称性

対照的な名称は正しい組み合わせで使用する。

A B A B
add remove put get
insert deflete up down
get set show hide
start stop source target
begin end open close
send receive increment decrement
first last old new
get release next previous

変数名

その機能を表すために必要十分な短いものとする。
スネークケースローワーキャメルケースを用いる。

グローバル変数

グローバル変数の先頭には、g_もしくはgをつけてもよい。
例:g_owner_key, g_ownerKey, gOwnerKey

ローカル変数

グローバル変数と区別するために、関数内のローカル変数には、先頭に_(アンダースコア)をつけてもよい。
例:_channel, _message

定数

すべて大文字にして_(アンダースコア)でつなぐ。
SECONDS_PER_DAY, MAIN_MENU_CHANNEL

ループカウンター

スコープが狭いループカウンターにi, j, kという名前をこの順に使う。

関数名

ローワーキャメルケースアッパーキャメルケースを用いる。
変数がローワーキャメルケースなら、関数はアッパーキャメルケースを使うというように、変数と関数のスタイルをわけるのが望ましい。
先頭の単語は動詞にする。

属性を取得する関数

getObject()
findUser()

属性を設定する関数

setParameter()

boolean値を返す関数

形容詞、is + 形容詞、can + 動詞、has + 過去分詞、三単現動詞、三単現動詞 + 名詞。

isEnabled()
isEmpty()
containsKey()

リンク

  1. Second Life Wiki > LSL Style Guide/ja
  2. Second Life Wiki > LSL Style Guide
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0