Skip to content

Commit

Permalink
docs(ja): add translation of option-philosophy
Browse files Browse the repository at this point in the history
  • Loading branch information
chansuke committed Dec 8, 2023
1 parent 7017a7d commit 0e72d60
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 1 deletion.
13 changes: 13 additions & 0 deletions website/src/content/docs/formatter/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -97,5 +97,18 @@ Differently from other tools, Biome places options belong to a language in a dif

Following, the default applied to JavaScript files:

```json title="biome.json"
{
"javascript": {
"formatter": {
"arrowParentheses":"always",
"jsxQuoteStyle": "double",
"semicolons": "always",
"trailingComma": "all",
"quoteProperties": "asNeeded",
"bracketSpacing": true,
"bracketSameLine": false
}
}
}
```
2 changes: 1 addition & 1 deletion website/src/content/docs/ja/formatter/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ const expr =

### JavaScript

以下は、JavaScript のファイルに適用されるデフォルトの設定です:
以下は、JavaScript のファイルに適用されるデフォルトの設定です

```json title="biome.json"
{
Expand Down
40 changes: 40 additions & 0 deletions website/src/content/docs/ja/formatter/option-philosophy.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
title: Formatter Option Philosophy
description: 独断的なフォーマッターを設定する
---

>💡 Biomeは、[Prettierのオプション哲学](https://prettier.io/docs/en/option-philosophy)と同様のアプローチを採用しています。formatに関する既存のオプションセットは安定しており、新しいオプションは考慮される可能性が低いです。
>
>この文書では、Biomeがどのようにして今日の位置に到達したか、その歴史と今後の展望について説明しています。
Biomeは*独断的なフォーマッター*です。理想では、Biomeは正しいformat方法が1つだけ存在し、そのスタイルを常に強制すると考えています。プロジェクトに関係なく、セットアップに関係なく、Biomeによってformatされたコードは常に同じように見えるでしょう。別の視点から見ると、Biomeは*自動スタイルガイド*であり、他のスタイルガイドを実装するためのツールではありません。

このように強い意見を持つことは強引に思えるかもしれませんが、採用後すぐにその利点が明らかになります。空白がどこにあるべきか、行が分割されるべきか、行がインデントされるべきかなど、これまでの議論が単に*消えてなくなります*[些細な議論](https://en.wikipedia.org/wiki/Law_of_triviality)はもはや、重要なことに集中することから注意をそらすことはありません。コードレビューは、再formatの要求や循環的な議論がなくなります。Biomeがきれいで、読みやすく、一貫性のあるコードをformatするという信頼があれば、それだけで十分です。

個々のチームや組織内での利点に加えて、一貫したformatterの採用は、ウェブエコシステム全体に利益をもたらし、プロジェクト間の移動時に熟知を維持しやすくし、新人がパターンをより直感的に学び、認識しやすくすることに役立ちます。

現在のウェブエコシステムでは、Prettierが圧倒的に最も人気のあるコードformatterであり、強い意見を持っており、[オプションの追加に関する厳格な哲学](https://prettier.io/docs/en/option-philosophy)を持っています。Biomeは、[Prettierとの互換性を大いに重視しています](https://biomejs.dev/blog/biome-wins-prettier-challenge)。そのため、Prettierが実装している多くの意見を採用し、設定もその例外ではありません。

BiomeはPrettierとの高い互換性を誇り、ユーザーの移行プロセスを可能な限り痛みのないものにしていますが、それには同様の注意点も伴っています。

## 既存のオプション

Biomeは、最初はJavaScriptエコシステムで最も一般的で論争の的になっているスタイルガイドラインをターゲットにした限定された設定オプションのサブセットからスタートしました:インデントスタイル(タブ対スペース)、インデント幅(タブに等しい2スペース、または4スペース?)、セミコロンの強制使用。これらの点に対するオプションを追加することは、ほとんどの人々のニーズに十分対応すると考えられ、他のオプションを追加することは強く検討されませんでした。

[Prettierのオプション哲学](https://twitter.com/Vjeux/status/1722733472522142022)に基づき、Biomeは新たなスタートを切るチャンスがあり、Prettierが `--bracket-same-line``--arrow-parens` などの既存のオプションで陥った落とし穴を避けることができました:

> ...[これら]は私たちが持っていることを望んでいるタイプのオプションではありません。チーム内で多くの議論を引き起こし、そのために申し訳ありません。今では削除するのが難しいため、これらのオプションは歴史的な遺物として存在し、他のオプションを追加するための動機付けにはなりません(「これらのオプションが存在するなら、なぜこのオプションはダメなのか?」)。
いずれにせよ、[Prettier Challengeが発表](https://twitter.com/Vjeux/status/1722733472522142022)された際、Biomeはこのチャレンジを受け入れることにし、Prettierが持つ全ての設定オプションを実装して完全な互換性を達成する必要がありました。

Biomeは依然としてPrettierと同じ哲学を共有しており、これらのオプションを互換性のためのレガシー機能として捉えており、将来的なオプションの追加の基準とは考えていません。

## 新しいオプション

Prettierと同様に、Biomeは現在のオプションセットが安定しており、十分であり、追加や変更の余地はないと信じています。追加の設定オプションに関するリクエストは考慮される可能性が低く、議論なしで閉じられることがあります。

それにもかかわらず、Biomeはまだ比較的新しいツールとして確立されつつあり、他では実現不可能と思われる新しいアイデアや進歩への道を切り開く機会がたくさんあります。

Biomeのformatスタイルも比較的安定しており、Prettierとできるだけ一致するように続けていますが、意図的な逸脱もあります。Biomeのスタイルに対する変更は検討され、実装される可能性がありますが、これらも設定可能なオプションにはならず、代わりに将来のBiomeの全てのバージョンに一律に適用されることになります。

Biomeのformatスタイルも比較的安定しており、できる限りPrettierと一致することを目指していますが、[いくつかの意図的な逸脱](https://github.com/biomejs/biome/issues/739)があります。Biomeのスタイルの変更は検討され、実装される可能性がありますが、これらも設定可能なオプションになることはほとんどなく、代わりに将来のBiomeの全バージョンに一律に適用されることになります。

0 comments on commit 0e72d60

Please sign in to comment.