Skip to content

Commit a1985ee

Browse files
authored
feat(翻訳): FSD 2.1 (feature-sliced#773)
1 parent 76f4f18 commit a1985ee

File tree

15 files changed

+272
-527
lines changed

15 files changed

+272
-527
lines changed

i18n/ja/docusaurus-plugin-content-docs/current/get-started/tutorial.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ sidebar_position: 2
3939

4040
Feature-Sliced Designの特徴は、ページが互いに依存できないことです。つまり、1つのページが他のページのコードをインポートすることはできません。これは**層のインポートルール**によって禁じられています。
4141

42-
*スライス内のモジュールは、下層にあるスライスのみをインポートできる。*
42+
*スライス内のモジュール(ファイル)は、下層にあるスライスのみをインポートできる。*
4343

4444
この場合、ページはスライスであるため、そのページ内のモジュール(ファイル)は、他のページではなく、下層からのみコードをインポートできます。
4545

i18n/ja/docusaurus-plugin-content-docs/current/guides/examples/auth.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ FSDプロジェクトには、ユーザーエンティティや現在のユー
192192

193193
APIクライアントは通常、`shared/api`に配置されるか、エンティティ間で分散されるため、このアプローチの主な問題は、他のリクエストがトークンにアクセスできるようにしつつ、[レイヤーのインポートルール][import-rule-on-layers]を破らないことです。
194194

195-
> スライス内のモジュールは、下層にあるスライスのみをインポートできる。
195+
> スライス内のモジュール(ファイル)は、下層にあるスライスのみをインポートできる。
196196
197197
この問題にはいくつかの解決策があります。
198198

i18n/ja/docusaurus-plugin-content-docs/current/guides/migration/from-custom.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
sidebar_position: 3
2+
sidebar_position: 1
33
sidebar_label: カスタムアーキテクチャからの移行
44
---
55

i18n/ja/docusaurus-plugin-content-docs/current/guides/migration/from-v1.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
2-
sidebar_position: 4
2+
sidebar_position: 2
33
---
44

5-
# v1からの移行
5+
# v1からv2への移行
66

77
## なぜv2なのか? {#why-v2}
88

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
---
2+
sidebar_position: 3
3+
---
4+
5+
# v2.0からv2.1への移行
6+
7+
v2.1の主な変更点は、インターフェースを分解するための「ページファースト」という新しいメンタルモデルです。
8+
9+
v2.0では、FSDは分解のためにエンティティ表現やインタラクティビティの最小部分まで考慮し、インターフェース内のエンティティとフィーチャーを特定することを推奨していました。そうしてから、エンティティとフィーチャーからウィジェットやページが構築されていきました。この分解モデルでは、ほとんどのロジックはエンティティとフィーチャーにあり、ページはそれ自体にはあまり重要性のない構成層に過ぎませんでした。
10+
11+
v2.1では、分解をページから始めること、または場合によってはページで止めることを推奨します。ほとんどの人はすでにアプリを個々のページに分ける方法を知っており、ページはコードベース内のコンポーネントを見つける際の一般的な出発点でもあります。この新しい分解モデルでは、各個別のページにほとんどのUIとロジックを保持し、Sharedに再利用可能な基盤を維持します。複数のページでビジネスロジックを再利用する必要が生じた場合は、それを下層のレイヤーに移動できます。
12+
13+
Feature-Sliced Designへのもう一つの追加は、`@x`表記を使用したエンティティ間のクロスインポートの標準化です。
14+
15+
## 移行方法 {#how-to-migrate}
16+
17+
v2.1には破壊的な変更はなく、FSD v2.0で書かれたプロジェクトもFSD v2.1の有効なプロジェクトです。しかし、新しいメンタルモデルがチームや特に新しい開発者のオンボーディングにとってより有益であると考えているため、分解に対して小さな調整を行うことを推奨します。
18+
19+
### スライスのマージ
20+
21+
移行を始めるための簡単な方法は、プロジェクトでFSDのリンターである[Steiger][steiger]を実行することです。Steigerは新しいメンタルモデルで構築されており、最も役立つルールは次のとおりです。
22+
23+
- [`insignificant-slice`][insignificant-slice] — エンティティ、またはフィーチャーが1ページでのみ使用されている場合、このルールはそのエンティティ、またはフィーチャーをページに完全にマージすることを提案します。
24+
- [`excessive-slicing`][excessive-slicing] — レイヤーにスライスが多すぎる場合、通常は分解が細かすぎるサインです。このルールは、プロジェクトのナビゲーションを助けるためにいくつかのスライスをマージ、またはグループ化することを提案します。
25+
26+
```bash
27+
npx steiger src
28+
```
29+
30+
これにより、1回だけ使用されるスライスを特定できるため、それらが本当に必要か再考することができます。そのような考慮において、レイヤーはその内部のすべてのスライスのための何らかのグローバル名前空間を形成することを念頭に置いてください。1回だけ使用される変数でグローバル名前空間を汚染しないようにするのと同様に、レイヤーの名前空間内の場所を貴重なものとして扱い、慎重に使用するべきです。
31+
32+
### クロスインポートの標準化
33+
34+
以前にプロジェクト内でクロスインポートがあった場合、Feature-Sliced Designでのクロスインポートのための新しい表記法`@x`を活用できます。これは次のようになります。
35+
36+
```ts title="entities/B/some/file.ts"
37+
import type { EntityA } from "entities/A/@x/B";
38+
```
39+
40+
詳細については、リファレンスの[クロスインポートの公開API][public-api-for-cross-imports]セクションを参照してください。
41+
42+
[insignificant-slice]: https://github.com/feature-sliced/steiger/tree/master/packages/steiger-plugin-fsd/src/insignificant-slice
43+
[steiger]: https://github.com/feature-sliced/steiger
44+
[excessive-slicing]: https://github.com/feature-sliced/steiger/tree/master/packages/steiger-plugin-fsd/src/excessive-slicing
45+
[public-api-for-cross-imports]: /docs/reference/public-api#public-api-for-cross-imports

i18n/ja/docusaurus-plugin-content-docs/current/guides/tech/with-nuxtjs.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export default defineNuxtConfig({
111111
例えば、プロジェクトに`Home`ページを追加するには、次の手順を行います。
112112
- `pages`層内にページスライスを追加する
113113
- `app`層内に適切なルートを追加する
114-
- スライスのページとルートを統合する
114+
- スライスのページをルートに接続する
115115

116116
ページスライスを作成するには、[CLI](https://github.com/feature-sliced/cli)を使用します。
117117
```shell

i18n/ja/docusaurus-plugin-content-docs/current/guides/tech/with-sveltekit.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ fsd pages home
6262
`ui`セグメント内に`home-page.svelte`ファイルを作成し、公開APIを介してアクセスできるようにします。 
6363

6464
```ts title="src/pages/home/index.ts"
65-
export { default as HomePage } from './ui/home-page';
65+
export { default as HomePage } from './ui/home-page.svelte';
6666
```
6767

6868
このページのルートを`app`層内に作成します。
@@ -81,7 +81,7 @@ export { default as HomePage } from './ui/home-page';
8181
│ │ │ ├── index.ts
8282
```
8383

84-
最後に`index.svelte`ファイル内にページコンポーネントを追加します。
84+
最後に`+page.svelte`ファイル内にページコンポーネントを追加します。
8585

8686
```html title="src/app/routes/+page.svelte"
8787
<script>

i18n/ja/docusaurus-plugin-content-docs/current/reference/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ FSDの重要な概念に関するセクション
2626
/>
2727
<NavCard
2828
title="公開API"
29-
description="堅牢で統合しやすいモジュール設計に関する実践"
29+
description="公開APIの定義と目標、@xによるクロスインポート、トラブルシューティング"
3030
to="/docs/reference/public-api"
3131
Icon={ApiOutlined}
3232
/>

i18n/ja/docusaurus-plugin-content-docs/current/reference/isolation/_category_.yaml

Lines changed: 0 additions & 1 deletion
This file was deleted.

i18n/ja/docusaurus-plugin-content-docs/current/reference/isolation/coupling-cohesion.md

Lines changed: 0 additions & 146 deletions
This file was deleted.

0 commit comments

Comments
 (0)