mirror of
https://github.com/go-task/task.git
synced 2026-06-26 22:26:13 +00:00
234 lines
3.7 KiB
Markdown
234 lines
3.7 KiB
Markdown
---
|
|
slug: /styleguide/
|
|
sidebar_position: 8
|
|
---
|
|
|
|
# スタイルガイド
|
|
|
|
これは`Taskfile.yml`の公式Taskスタイルガイドです。 このガイドには、Taskfileを整理し、他ユーザーにとっても理解しやすいように保つための基本的な手順が含まれています。
|
|
|
|
これには一般的なガイドラインが含まれていますが、必ずしも厳密に従う必要はありません。 必要であったり、あるいは違う方法を取りたい場合は自由にしてください。 また、このガイドの改善点について、IssueまたはPull Requestを開くことも自由です。
|
|
|
|
## `taskfile.yml`ではなく`Taskfile.yml`を使用する
|
|
|
|
```yaml
|
|
# bad
|
|
taskfile.yml
|
|
|
|
|
|
# good
|
|
Taskfile.yml
|
|
```
|
|
|
|
これはLinuxユーザーにとって特に重要です。 WindowsとmacOSは大文字と小文字を区別しないファイルシステム持っているので、公式にはサポートされていないにもかかわらず、`taskfile.yml`は正常に動作します。 Linuxでは`Taskfile.yml`だけが動作します。
|
|
|
|
## キーワードを正しい順序にする
|
|
|
|
- `version:`
|
|
- `includes:`
|
|
- 設定項目として、`output:`、`silent:`、`method:`、そして`run:`があります。
|
|
- `vars:`
|
|
- `env:`, `dotenv:`
|
|
- `tasks:`
|
|
|
|
## インデントにはスペース2つを使用する
|
|
|
|
これはYAMLファイルの最も一般的な慣習であり、Taskはそれに倣うものです。
|
|
|
|
```yaml
|
|
# bad
|
|
tasks:
|
|
foo:
|
|
cmds:
|
|
- echo 'foo'
|
|
|
|
|
|
# good
|
|
tasks:
|
|
foo:
|
|
cmds:
|
|
- echo 'foo'
|
|
```
|
|
|
|
## メインセクションをスペースで分ける
|
|
|
|
```yaml
|
|
# bad
|
|
version: '3'
|
|
includes:
|
|
docker: ./docker/Taskfile.yml
|
|
output: prefixed
|
|
vars:
|
|
FOO: bar
|
|
env:
|
|
BAR: baz
|
|
tasks:
|
|
# ...
|
|
|
|
|
|
# good
|
|
version: '3'
|
|
|
|
includes:
|
|
docker: ./docker/Taskfile.yml
|
|
|
|
output: prefixed
|
|
|
|
vars:
|
|
FOO: bar
|
|
|
|
env:
|
|
BAR: baz
|
|
|
|
tasks:
|
|
# ...
|
|
```
|
|
|
|
## タスク間にスペースを設ける
|
|
|
|
```yaml
|
|
# bad
|
|
version: '3'
|
|
|
|
tasks:
|
|
foo:
|
|
cmds:
|
|
- echo 'foo'
|
|
bar:
|
|
cmds:
|
|
- echo 'bar'
|
|
baz:
|
|
cmds:
|
|
- echo 'baz'
|
|
|
|
|
|
# good
|
|
version: '3'
|
|
|
|
tasks:
|
|
foo:
|
|
cmds:
|
|
- echo 'foo'
|
|
|
|
bar:
|
|
cmds:
|
|
- echo 'bar'
|
|
|
|
baz:
|
|
cmds:
|
|
- echo 'baz'
|
|
```
|
|
|
|
## 変数名は大文字で定義する
|
|
|
|
```yaml
|
|
# bad
|
|
version: '3'
|
|
|
|
vars:
|
|
binary_name: myapp
|
|
|
|
tasks:
|
|
build:
|
|
cmds:
|
|
- go build -o {{.binary_name}} .
|
|
|
|
|
|
# good
|
|
version: '3'
|
|
|
|
vars:
|
|
BINARY_NAME: myapp
|
|
|
|
tasks:
|
|
build:
|
|
cmds:
|
|
- go build -o {{.BINARY_NAME}} .
|
|
```
|
|
|
|
## テンプレート記法で変数名の前後に空白を設けない
|
|
|
|
```yaml
|
|
# bad
|
|
version: '3'
|
|
|
|
tasks:
|
|
greet:
|
|
cmds:
|
|
- echo '{{ .MESSAGE }}'
|
|
|
|
|
|
# good
|
|
version: '3'
|
|
|
|
tasks:
|
|
greet:
|
|
cmds:
|
|
- echo '{{.MESSAGE}}'
|
|
```
|
|
|
|
この書き方は多くの人によってGoのテンプレート作成にも使われています。
|
|
|
|
## タスク名の単語をハイフンで区切る
|
|
|
|
```yaml
|
|
# bad
|
|
version: '3'
|
|
|
|
tasks:
|
|
do_something_fancy:
|
|
cmds:
|
|
- echo 'Do something'
|
|
|
|
|
|
# good
|
|
version: '3'
|
|
|
|
tasks:
|
|
do-something-fancy:
|
|
cmds:
|
|
- echo 'Do something'
|
|
```
|
|
|
|
## タスクの名前空間にコロンを使用する
|
|
|
|
```yaml
|
|
# good
|
|
version: '3'
|
|
|
|
tasks:
|
|
docker:build:
|
|
cmds:
|
|
- docker ...
|
|
|
|
docker:run:
|
|
cmds:
|
|
- docker-compose ...
|
|
```
|
|
|
|
これはインクルードされたタスクファイルを使用する場合に、自動的に行われます。
|
|
|
|
## 複雑な複数行のコマンドの使用は避け、外部スクリプトを使用する
|
|
|
|
```yaml
|
|
# bad
|
|
version: '3'
|
|
|
|
tasks:
|
|
build:
|
|
cmds:
|
|
- |
|
|
for i in $(seq 1 10); do
|
|
echo $i
|
|
echo "some other complex logic"
|
|
done'
|
|
|
|
# good
|
|
version: '3'
|
|
|
|
tasks:
|
|
build:
|
|
cmds:
|
|
- ./scripts/my_complex_script.sh
|
|
```
|