diff options
Diffstat (limited to 'markup/pod/live-manual/media/text/ja/project_coding-style.ssi')
-rw-r--r-- | markup/pod/live-manual/media/text/ja/project_coding-style.ssi | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/markup/pod/live-manual/media/text/ja/project_coding-style.ssi b/markup/pod/live-manual/media/text/ja/project_coding-style.ssi new file mode 100644 index 0000000..cc8c41a --- /dev/null +++ b/markup/pod/live-manual/media/text/ja/project_coding-style.ssi @@ -0,0 +1,140 @@ +:B~ コーディングスタイル + +1~coding-style コーディングスタイル + +この章では Live システムで利用されているコーディングスタイルについて述べます。 + +2~ 互換性 + +_* Bash シェル固有の書式や記号を使わないでください。例えば配列構造の利用など + +_* POSIX のサブセットだけを使ってください - 例えば `foo` よりも $(foo) を使ってください。 + +_* 'sh -n' と 'checkbashisms' によりスクリプトをチェックできます。 + +_* シェルコードが全て確実に 'set -e' で動作するようにしてください。 + +2~ インデント + +_* 常にスペースよりもタブを使います。 + +2~ 改行 + +_* 通常、行は最大で80文字までです。 + +_* 「Linux 式」で改行します: + +悪い例: + +code{ + + if foo; then + bar + fi + +}code + +良い例: + +code{ + + if foo + then + bar + fi + +}code + +_* 関数についても同様です: + +悪い例: + +code{ + + Foo () { + bar + } + +}code + +良い例: + +code{ + + Foo () + { + bar + } + +}code + +2~ 変数 + +_* 変数は常に大文字です。 + +_* live-build で利用する変数は先頭を常に #{LB_}# で始めます。 + +_* live-build 内部の一時変数は #{\_LB_}# で始めます。 + +_* live-build のローカル変数は #{\_\_LB_}# で始めます。 + +_* live-config 中のブートパラメータにつながる変数は #{LIVE_}# で始めます。 + +_* live-config 中の他の変数は全て #{_}# で始めます。 + +_* 変数は大括弧「{}」で囲みます。例えば #{$FOO}# ではなく #{${FOO}}# とします。 + +_* 空白文字の可能性を考慮し、常に引用符を使って変数を保護します: #{${FOO}}# ではなく #{"${FOO}"}# とします。 + +_* 一貫性を保つため、変数に値を割り当てるときは常に引用符を使います: + +悪い例: + +code{ + + FOO=bar + +}code + +良い例: + +code{ + + FOO="bar" + +}code + +_* 複数の変数を使うときは表現全体を引用符で囲みます: + +悪い例: + +code{ + + if [ -f "${FOO}"/foo/"${BAR}"/bar ] + then + foobar + fi + +}code + +良い例: + +code{ + + if [ -f "${FOO}/foo/${BAR}/bar" ] + then + foobar + fi + +}code + +2~ その他 + +_* sed を呼び出すときは区切り文字に「#{|}#」を使います。例えば「#{sed -e 's|foo|bar|'}#」 + +_* 比較やテストには #{test}# コマンドを使わず、「#{[}#」や「#{]}#」を使います。例えば「#{if [ -x /bin/foo ]; +...}#」を使い、「#{if test -x /bin/foo; ...}#」は使いません。 + +_* #{test}# よりも #{case}# の方が読みやすく実行速度も早いため、可能な部分ではこちらを使います。 + +_* ユーザの環境と混ざる可能性を限定するため、関数の名前には大文字を使います。 |