create-specment 0.2.8 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/commands/create.d.ts +0 -1
- package/bin/constants/languages.d.ts +0 -1
- package/bin/core/interactive-setup.d.ts +0 -1
- package/bin/core/interactive-setup.js +17 -10
- package/bin/core/interactive-setup.js.map +1 -1
- package/bin/core/interactive-setup.test.d.ts +0 -1
- package/bin/core/interactive-setup.test.js +7 -7
- package/bin/core/interactive-setup.test.js.map +1 -1
- package/bin/core/project-generator.d.ts +0 -1
- package/bin/core/project-generator.js +5 -8
- package/bin/core/project-generator.js.map +1 -1
- package/bin/features/index.d.ts +0 -1
- package/bin/features/index.js +15 -13
- package/bin/features/index.js.map +1 -1
- package/bin/generators/docusaurus-config.d.ts +0 -1
- package/bin/generators/docusaurus-config.js +211 -264
- package/bin/generators/docusaurus-config.js.map +1 -1
- package/bin/generators/package-json.d.ts +0 -1
- package/bin/generators/package-json.js +45 -91
- package/bin/generators/package-json.js.map +1 -1
- package/bin/generators/template-files.d.ts +0 -1
- package/bin/generators/template-files.js +625 -229
- package/bin/generators/template-files.js.map +1 -1
- package/bin/index.d.ts +0 -1
- package/bin/index.js.map +1 -1
- package/bin/templates/index.d.ts +0 -1
- package/bin/templates/index.js +36 -24
- package/bin/templates/index.js.map +1 -1
- package/bin/tests/integration.test.d.ts +0 -1
- package/bin/tests/integration.test.js +34 -34
- package/bin/tests/integration.test.js.map +1 -1
- package/bin/types/index.d.ts +1 -21
- package/bin/utils/config-merger.d.ts +0 -1
- package/bin/utils/config-merger.js +0 -1
- package/bin/utils/config-merger.js.map +1 -1
- package/bin/utils/errors.d.ts +0 -1
- package/bin/utils/install.d.ts +0 -1
- package/bin/utils/install.js +3 -3
- package/bin/utils/install.js.map +1 -1
- package/bin/utils/message-formatter.d.ts +0 -1
- package/bin/utils/template-processor.d.ts +0 -1
- package/bin/utils/template-processor.js +2 -3
- package/bin/utils/template-processor.js.map +1 -1
- package/bin/utils/template-processor.test.d.ts +0 -1
- package/bin/utils/template-processor.test.js +22 -22
- package/bin/utils/template-processor.test.js.map +1 -1
- package/bin/utils/version.d.ts +0 -1
- package/bin/utils/version.js +3 -3
- package/bin/utils/version.js.map +1 -1
- package/package.json +2 -7
- package/templates/docs/01-overview/_assumptions-constraints.mdx +19 -0
- package/templates/docs/01-overview/_business-context.mdx +18 -0
- package/templates/docs/01-overview/_firm-proposal.mdx +52 -0
- package/templates/docs/01-overview/_gap-analysis.mdx +18 -0
- package/templates/docs/01-overview/_project/342/200/221charter.mdx +23 -0
- package/templates/docs/01-overview/_requirements-specification.mdx +73 -0
- package/templates/docs/01-overview/_risks.mdx +16 -0
- package/templates/docs/01-overview/_scope.mdx +24 -0
- package/templates/docs/01-overview/_stakeholders.mdx +24 -0
- package/templates/docs/01-overview/as-is.mdx +64 -0
- package/templates/docs/01-overview/glossary.mdx +41 -0
- package/templates/docs/01-overview/index.mdx +41 -0
- package/templates/docs/01-overview/odsc.mdx +72 -0
- package/templates/docs/01-overview/roadmap.mdx +27 -0
- package/templates/docs/01-overview/system-context.mdx +22 -0
- package/templates/docs/01-overview/to-be.mdx +102 -0
- package/templates/docs/02-requirements/_category_.yaml +2 -0
- package/templates/docs/02-requirements/functional/_category_.json +8 -0
- package/templates/docs/02-requirements/functional/_req-template.mdx +46 -0
- package/templates/docs/02-requirements/functional/req-001.mdx +52 -0
- package/templates/docs/02-requirements/index.mdx +14 -0
- package/templates/docs/02-requirements/non-functional/_category_.json +8 -0
- package/templates/docs/02-requirements/non-functional/_nfr-template.mdx +42 -0
- package/templates/docs/02-requirements/non-functional/nfr-001.mdx +57 -0
- package/templates/docs/02-requirements/non-functional/nfr-002.mdx +57 -0
- package/templates/docs/03-external/business-model.mdx +14 -0
- package/templates/docs/03-external/img/business-model-by-claude.xml +107 -0
- package/templates/docs/03-external/img/business-model.xml +84 -0
- package/templates/docs/03-external/img/docsVersionDropdown.png +0 -0
- package/templates/docs/03-external/img/gantt.xml +1 -0
- package/templates/docs/03-external/img/localeDropdown.png +0 -0
- package/templates/docs/03-external/index.mdx +46 -0
- package/templates/docs/04-internal/batches/_category_.yaml +2 -0
- package/templates/docs/04-internal/batches/import-products.mdx +64 -0
- package/templates/docs/04-internal/batches/index.mdx +25 -0
- package/templates/docs/04-internal/index.mdx +32 -0
- package/templates/docs/04-internal/policies/_category_.yaml +2 -0
- package/templates/docs/04-internal/policies/branch-naming-rules.mdx +110 -0
- package/templates/docs/04-internal/policies/github.mdx +100 -0
- package/templates/docs/04-internal/policies/pull-request-operation-flow.mdx +118 -0
- package/templates/docs/04-internal/rules/_category_.yaml +2 -0
- package/templates/docs/04-internal/rules/database.mdx +139 -0
- package/templates/docs/04-internal/rules/document-creation-rules.mdx +39 -0
- package/templates/docs/04-internal/rules/index.mdx +10 -0
- package/templates/docs/04-internal/rules/markdown.mdx +148 -0
- package/templates/docs/04-internal/rules/review-process.mdx +32 -0
- package/templates/docs/04-internal/screens/_category_.yaml +2 -0
- package/templates/docs/04-internal/screens/dashboard.mdx +17 -0
- package/templates/docs/04-internal/screens/index.mdx +20 -0
- package/templates/docs/04-internal/screens/login.mdx +18 -0
- package/templates/docs/04-internal/screens/menu.mdx +17 -0
- package/templates/docs/04-internal/tables/_category_.yaml +2 -0
- package/templates/docs/04-internal/tables/customer_details.mdx +35 -0
- package/templates/docs/04-internal/tables/customers.mdx +35 -0
- package/templates/docs/04-internal/tables/index.mdx +11 -0
- package/templates/docs/index.module.css +96 -0
- package/templates/docs/index.tsx +48 -0
- package/templates/docs/intro.md +47 -0
- package/templates/docs/introduction/document-editing/_category_.yml +2 -0
- package/templates/docs/introduction/document-editing/how-to.mdx +31 -0
- package/templates/docs/introduction/index.mdx +35 -0
- package/templates/docs/introduction/operational-policies/_category_.yaml +2 -0
- package/templates/docs/introduction/operational-policies/github.mdx +33 -0
- package/templates/docs/introduction/operational-policies/img/branch-naming-rules.svg +73 -0
- package/templates/docs/introduction/operational-policies/sharepoint.mdx +28 -0
- package/templates/package.json.template +46 -0
- package/templates/src/components/Highlight/index.tsx +68 -0
- package/templates/src/components/PriorityMatrix/index.tsx +97 -0
- package/templates/src/components/TBD/index.tsx +16 -0
- package/templates/src/css/custom.css +81 -0
- package/templates/src/types/requirements.ts +19 -0
- package/templates/static/img/business-model.drawio.svg +4 -0
- package/templates/static/img/gantt.drawio.svg +1152 -0
- package/templates/static/img/logo.svg +21 -0
- package/bin/commands/create.d.ts.map +0 -1
- package/bin/constants/languages.d.ts.map +0 -1
- package/bin/core/interactive-setup.d.ts.map +0 -1
- package/bin/core/interactive-setup.test.d.ts.map +0 -1
- package/bin/core/project-generator.d.ts.map +0 -1
- package/bin/features/index.d.ts.map +0 -1
- package/bin/generators/docusaurus-config.d.ts.map +0 -1
- package/bin/generators/package-json.d.ts.map +0 -1
- package/bin/generators/template-files.d.ts.map +0 -1
- package/bin/index.d.ts.map +0 -1
- package/bin/plugins/i18n-integration.d.ts +0 -25
- package/bin/plugins/i18n-integration.d.ts.map +0 -1
- package/bin/plugins/i18n-integration.js +0 -310
- package/bin/plugins/i18n-integration.js.map +0 -1
- package/bin/plugins/plantuml-integration.d.ts +0 -17
- package/bin/plugins/plantuml-integration.d.ts.map +0 -1
- package/bin/plugins/plantuml-integration.js +0 -112
- package/bin/plugins/plantuml-integration.js.map +0 -1
- package/bin/plugins/redoc-integration.d.ts +0 -25
- package/bin/plugins/redoc-integration.d.ts.map +0 -1
- package/bin/plugins/redoc-integration.js +0 -373
- package/bin/plugins/redoc-integration.js.map +0 -1
- package/bin/plugins/search-integration.d.ts +0 -20
- package/bin/plugins/search-integration.d.ts.map +0 -1
- package/bin/plugins/search-integration.js +0 -169
- package/bin/plugins/search-integration.js.map +0 -1
- package/bin/templates/index.d.ts.map +0 -1
- package/bin/templates/template-definitions.d.ts +0 -10
- package/bin/templates/template-definitions.d.ts.map +0 -1
- package/bin/templates/template-definitions.js +0 -517
- package/bin/templates/template-definitions.js.map +0 -1
- package/bin/tests/integration.test.d.ts.map +0 -1
- package/bin/types/index.d.ts.map +0 -1
- package/bin/utils/config-merger.d.ts.map +0 -1
- package/bin/utils/errors.d.ts.map +0 -1
- package/bin/utils/install.d.ts.map +0 -1
- package/bin/utils/message-formatter.d.ts.map +0 -1
- package/bin/utils/template-processor.d.ts.map +0 -1
- package/bin/utils/template-processor.test.d.ts.map +0 -1
- package/bin/utils/version.d.ts.map +0 -1
- package/templates/classic-spec/docusaurus.config.js.template +0 -106
- package/templates/classic-spec/package.json.template +0 -36
- package/templates/external-design/docusaurus.config.js.template +0 -123
- package/templates/external-design/package.json.template +0 -36
- package/templates/internal-design/docusaurus.config.js.template +0 -123
- package/templates/internal-design/package.json.template +0 -36
- package/templates/project-analysis/docusaurus.config.js.template +0 -113
- package/templates/project-analysis/package.json.template +0 -36
- package/templates/requirements/docusaurus.config.js.template +0 -119
- package/templates/requirements/package.json.template +0 -36
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<mxfile host="app.diagrams.net" modified="2025-05-10T08:00:00.000Z" agent="ChatGPT" etag="AmazonBizModel" version="21.6.7" type="device">
|
|
3
|
+
<diagram id="amazon-biz-model" name="Amazon Business Model">
|
|
4
|
+
<mxGraphModel dx="1250" dy="750" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="1200" math="0" shadow="0">
|
|
5
|
+
<root>
|
|
6
|
+
<mxCell id="0"/>
|
|
7
|
+
<mxCell id="1" parent="0"/>
|
|
8
|
+
|
|
9
|
+
<!-- カスタマー -->
|
|
10
|
+
<mxCell id="customer" value="顧客\n(買い手)" style="shape=mxgraph.people.user;html=1;fillColor=#fff2cc;strokeColor=#666666;fontStyle=1;" vertex="1" parent="1">
|
|
11
|
+
<mxGeometry x="40" y="40" width="120" height="120" as="geometry"/>
|
|
12
|
+
</mxCell>
|
|
13
|
+
|
|
14
|
+
<!-- Amazon Marketplace -->
|
|
15
|
+
<mxCell id="marketplace" value="Amazon\nマーケットプレイス" style="shape=mxgraph.basic.rect;rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#4b830d;fontStyle=1;" vertex="1" parent="1">
|
|
16
|
+
<mxGeometry x="220" y="60" width="160" height="80" as="geometry"/>
|
|
17
|
+
</mxCell>
|
|
18
|
+
|
|
19
|
+
<!-- セラー -->
|
|
20
|
+
<mxCell id="seller" value="セラー\n(出品者)" style="shape=mxgraph.people.user;html=1;fillColor=#fff2cc;strokeColor=#666666;fontStyle=1;" vertex="1" parent="1">
|
|
21
|
+
<mxGeometry x="440" y="40" width="120" height="120" as="geometry"/>
|
|
22
|
+
</mxCell>
|
|
23
|
+
|
|
24
|
+
<!-- フルフィルメントセンター -->
|
|
25
|
+
<mxCell id="fba" value="Amazon FC\n(FBA倉庫)" style="shape=mxgraph.office.storage;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;" vertex="1" parent="1">
|
|
26
|
+
<mxGeometry x="320" y="200" width="140" height="100" as="geometry"/>
|
|
27
|
+
</mxCell>
|
|
28
|
+
|
|
29
|
+
<!-- 配送業者 -->
|
|
30
|
+
<mxCell id="carrier" value="配送業者" style="shape=mxgraph.aws4.delivery;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontStyle=1;" vertex="1" parent="1">
|
|
31
|
+
<mxGeometry x="40" y="220" width="120" height="80" as="geometry"/>
|
|
32
|
+
</mxCell>
|
|
33
|
+
|
|
34
|
+
<!-- Amazon本社 (手数料・サービス) -->
|
|
35
|
+
<mxCell id="amazoncorp" value="Amazon㈱\n
・手数料
・広告/AWS/Prime" style="shape=mxgraph.basic.cube;size=30;direction=south;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontStyle=1;" vertex="1" parent="1">
|
|
36
|
+
<mxGeometry x="500" y="230" width="160" height="100" as="geometry"/>
|
|
37
|
+
</mxCell>
|
|
38
|
+
|
|
39
|
+
<!-- 矢印:注文 -->
|
|
40
|
+
<mxCell id="order" value="注文" style="edgeStyle=orthogonalEdgeStyle;rounded=0;exitX=0.5;exitY=1;exitPerimeter=1;entryX=0.5;entryY=0;entryPerimeter=1;strokeColor=#000000;endArrow=block;html=1;" edge="1" source="customer" target="marketplace" parent="1">
|
|
41
|
+
<mxGeometry relative="1" as="geometry"/>
|
|
42
|
+
</mxCell>
|
|
43
|
+
|
|
44
|
+
<!-- 矢印:支払い -->
|
|
45
|
+
<mxCell id="pay" value="支払い" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#000000;endArrow=block;html=1;" edge="1" source="customer" target="marketplace" parent="1">
|
|
46
|
+
<mxGeometry relative="1" as="geometry">
|
|
47
|
+
<mxPoint x="100" y="140" as="targetPoint"/>
|
|
48
|
+
</mxGeometry>
|
|
49
|
+
</mxCell>
|
|
50
|
+
|
|
51
|
+
<!-- 矢印:販売手数料 -->
|
|
52
|
+
<mxCell id="fee" value="販売手数料" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#b85450;dashed=1;endArrow=open;html=1;" edge="1" source="marketplace" target="amazoncorp" parent="1">
|
|
53
|
+
<mxGeometry relative="1" as="geometry"/>
|
|
54
|
+
</mxCell>
|
|
55
|
+
|
|
56
|
+
<!-- 矢印:売上振込 -->
|
|
57
|
+
<mxCell id="payout" value="売上振込" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#009933;endArrow=block;html=1;" edge="1" source="marketplace" target="seller" parent="1">
|
|
58
|
+
<mxGeometry relative="1" as="geometry"/>
|
|
59
|
+
</mxCell>
|
|
60
|
+
|
|
61
|
+
<!-- 矢印:在庫納品 -->
|
|
62
|
+
<mxCell id="inventory" value="在庫納品" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#000000;endArrow=block;html=1;" edge="1" source="seller" target="fba" parent="1">
|
|
63
|
+
<mxGeometry relative="1" as="geometry"/>
|
|
64
|
+
</mxCell>
|
|
65
|
+
|
|
66
|
+
<!-- 矢印:出荷指示 -->
|
|
67
|
+
<mxCell id="shipinst" value="出荷/配送" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#000000;endArrow=block;html=1;" edge="1" source="fba" target="carrier" parent="1">
|
|
68
|
+
<mxGeometry relative="1" as="geometry"/>
|
|
69
|
+
</mxCell>
|
|
70
|
+
|
|
71
|
+
<!-- 矢印:商品配送 -->
|
|
72
|
+
<mxCell id="delivery" value="商品受取" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#000000;endArrow=block;html=1;" edge="1" source="carrier" target="customer" parent="1">
|
|
73
|
+
<mxGeometry relative="1" as="geometry"/>
|
|
74
|
+
</mxCell>
|
|
75
|
+
|
|
76
|
+
<!-- 矢印:マーケットプレイス掲載 -->
|
|
77
|
+
<mxCell id="listing" value="商品登録/広告" style="edgeStyle=orthogonalEdgeStyle;strokeColor=#666666;dashed=1;endArrow=open;html=1;" edge="1" source="seller" target="marketplace" parent="1">
|
|
78
|
+
<mxGeometry relative="1" as="geometry"/>
|
|
79
|
+
</mxCell>
|
|
80
|
+
|
|
81
|
+
</root>
|
|
82
|
+
</mxGraphModel>
|
|
83
|
+
</diagram>
|
|
84
|
+
</mxfile>
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<mxfile host="localhost" modified="2021-05-18T09:41:40.835Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" version="@DRAWIO-VERSION@" etag="MlFZ1QgpfDXi1VSEqS1e" type="device"><diagram name="Page-1" id="8378b5f6-a2b2-b727-a746-972ab9d02e00">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</diagram></mxfile>
|
|
Binary file
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: index
|
|
3
|
+
sidebar_position: 1
|
|
4
|
+
---
|
|
5
|
+
import TBD from '@site/src/components/TBD';
|
|
6
|
+
|
|
7
|
+
# 外部設計
|
|
8
|
+
|
|
9
|
+
:::note Note
|
|
10
|
+
1. 全般で <TBD/>
|
|
11
|
+
1. これから編集していくもの
|
|
12
|
+
:::
|
|
13
|
+
:::tip Tip
|
|
14
|
+
1. 外部設計はお客様視点で描くもの
|
|
15
|
+
1. お客様が見て理解できるように記述することが重要
|
|
16
|
+
1. システム化するもの、システム化しないものを明確に記述する
|
|
17
|
+
:::
|
|
18
|
+
|
|
19
|
+
## システム概要
|
|
20
|
+
1. [ビジネスモデル図](business-model.mdx)
|
|
21
|
+
1. ユースケース
|
|
22
|
+
1. aaa
|
|
23
|
+
1. bbb
|
|
24
|
+
1. 業務フロー
|
|
25
|
+
1. aaa
|
|
26
|
+
1. bbb
|
|
27
|
+
|
|
28
|
+
## ネットワーク
|
|
29
|
+
1. 外部IF定義
|
|
30
|
+
|
|
31
|
+
## アプリケーション
|
|
32
|
+
1. 使用アーキテクチャ
|
|
33
|
+
1. 機能
|
|
34
|
+
1. フロントエンド(画面)
|
|
35
|
+
1. ここで細かいことを決めない
|
|
36
|
+
1. 目的は必要となる画面数とその概要の把握
|
|
37
|
+
1. バックエンド
|
|
38
|
+
1. 画面の機能を実現する上で必要なバックエンドを記載する
|
|
39
|
+
|
|
40
|
+
## 画面設計 - モックアップ
|
|
41
|
+
1. 画面デザイン
|
|
42
|
+
|
|
43
|
+
## データベース
|
|
44
|
+
1. ER図
|
|
45
|
+
1. 概念データモデル
|
|
46
|
+
1. 論理データモデル
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 2
|
|
3
|
+
tags:
|
|
4
|
+
- batch
|
|
5
|
+
- product
|
|
6
|
+
---
|
|
7
|
+
import TBD from '@site/src/components/TBD';
|
|
8
|
+
|
|
9
|
+
# import-products - 商品取込
|
|
10
|
+
## 概要 {#overview}
|
|
11
|
+
1. 商品情報をTSVファイルで受け取り、テーブル`product`にレコードを追加・更新(upsert)する
|
|
12
|
+
|
|
13
|
+
## 前提条件 {#prerequisite}
|
|
14
|
+
1. <TBD/>
|
|
15
|
+
1. 読込先フォルダー
|
|
16
|
+
1. <TBD/>
|
|
17
|
+
1. TSVファイル名
|
|
18
|
+
1. `abc-yyyymmdd-hhnn-x.tsv`
|
|
19
|
+
1. TSVのmax行数は10000とする
|
|
20
|
+
1. それより大きい行数だった場合、警告メッセージを出力する
|
|
21
|
+
|
|
22
|
+
## サイクル {#cycle}
|
|
23
|
+
1. cron
|
|
24
|
+
1. `5 0 * * MON-FRI`
|
|
25
|
+
1. 土日はデータ量が少ないため、実行しない
|
|
26
|
+
|
|
27
|
+
## フロー {#flow}
|
|
28
|
+
|
|
29
|
+
:::info info
|
|
30
|
+
1. 設計はアクティビティ図ではなく、シーケンス図がオススメ
|
|
31
|
+
1. 各フェーズごとのエラー処理、メッセージ内容は明確にする
|
|
32
|
+
:::
|
|
33
|
+
|
|
34
|
+
```pumld
|
|
35
|
+
@startuml
|
|
36
|
+
participant User
|
|
37
|
+
User -> A: DoWork
|
|
38
|
+
activate A #FFBBBB
|
|
39
|
+
A -> A: Internal call
|
|
40
|
+
activate A #DarkSalmon
|
|
41
|
+
A -> B: << createRequest >>
|
|
42
|
+
activate B
|
|
43
|
+
B --> A: RequestCreated
|
|
44
|
+
deactivate B
|
|
45
|
+
deactivate A
|
|
46
|
+
A -> User: Done
|
|
47
|
+
deactivate A
|
|
48
|
+
@enduml
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 関数 {#functions}
|
|
52
|
+
### funcFileExistenceCheck - TSVファイルの存在確認
|
|
53
|
+
1. <TBD/>
|
|
54
|
+
|
|
55
|
+
### funcFileRead - TSVファイル読込
|
|
56
|
+
1. <TBD/>
|
|
57
|
+
|
|
58
|
+
## TSVファイルカラム {#tsv-file-columns}
|
|
59
|
+
|
|
60
|
+
| # | Header | Logical name | Type | Digit | Comment |
|
|
61
|
+
| :---: | --------- | ------------ | ------- | ----: | -------------------------- |
|
|
62
|
+
| 1 | id | ID | integer | - | |
|
|
63
|
+
| 2 | name | 名前 | string | 255 | |
|
|
64
|
+
| 3 | is_member | is会員 | boolean | - | true:会員<br/>false:非会員 |
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 1
|
|
3
|
+
hide_table_of_contents: true
|
|
4
|
+
---
|
|
5
|
+
# バッチ一覧
|
|
6
|
+
## データベースインポート {#database-import}
|
|
7
|
+
| ID | 機能名 | 機能概要 | cron | input | output |
|
|
8
|
+
| -------------------------------------- | -------- | ------------------------------------------ | :---------------: | ----------------------- | ------------------ |
|
|
9
|
+
| [import-products](import-products.mdx) | 商品取込 | tsvの商品情報をテーブル`product`に取り込む | `5 0 * * MON-FRI` | `products-yyyymmdd.tsv` | テーブル `product` |
|
|
10
|
+
| import-orders | 注文取込 | tsvの商品情報をテーブル`order`に取り込む | `9 0 * * MON-FRI` | `orders-yyyymmdd.tsv` | テーブル `order` |
|
|
11
|
+
|
|
12
|
+
## 履歴へ移動 {#move-to-history}
|
|
13
|
+
| ID | 機能名 | 機能概要 | cron | input | output |
|
|
14
|
+
| ------------------ | -------------- | ---------------------------------------------------------------- | :----------: | ------------------------ | -------------------------- |
|
|
15
|
+
| to-history-product | 商品履歴へ移動 | バッチ実行日時-180日に作成されたレコードを履歴テーブルに移動する | `5 0 5 * *` | テーブル `product` | テーブル `product_history` |
|
|
16
|
+
| to-history-order | 注文履歴へ移動 | バッチ実行日時-180日に作成されたレコードを履歴テーブルに移動する | `11 0 5 * *` | テーブル `order_history` | テーブル `order_history` |
|
|
17
|
+
|
|
18
|
+
## エラーレベル定義
|
|
19
|
+
| ステータス | 説明 |
|
|
20
|
+
| ---------- | -------------------------------------------------------------------------------------------- |
|
|
21
|
+
| `FATAL` | 致命的なエラー。ただちに対応しないとビジネスに影響がでてしまう場合 |
|
|
22
|
+
| `ERROR` | エラー。バッチを継続するには問題がある場合。明確なメッセージと対応方法を定義しておく必要あり |
|
|
23
|
+
| `WARN` | 警告。継続はできるが何らかの対処が必要な場合 |
|
|
24
|
+
| `INFO` | 情報表示。バッチの状態や経過を表示する場合 |
|
|
25
|
+
| `DEBUG` | デバッグ用。本番環境でこれが出力されないようにする |
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: index
|
|
3
|
+
sidebar_position: 1
|
|
4
|
+
---
|
|
5
|
+
# 内部設計
|
|
6
|
+
|
|
7
|
+
:::tip
|
|
8
|
+
1. 何故その言語、フレームワークを選定したかを書いておく
|
|
9
|
+
1. 実装が済めば(リリースされれば)詳細なことはソースに書かれているはず
|
|
10
|
+
1. なので仕様には「なぜそのコードに至ったか?」など実装ではかかれないことを明記することに注力する
|
|
11
|
+
:::
|
|
12
|
+
|
|
13
|
+
## 要約
|
|
14
|
+
### 規約・ルール
|
|
15
|
+
1. 実装時に必要な規約、ルールを管理する
|
|
16
|
+
1.
|
|
17
|
+
|
|
18
|
+
### 運用ポリシー
|
|
19
|
+
1. Pull Requestなど運用時に必要なことのまとめ
|
|
20
|
+
1. 開発時の共有事項など
|
|
21
|
+
|
|
22
|
+
### 画面
|
|
23
|
+
1. 実装時の重要事項
|
|
24
|
+
1. コーディング時にそこに至るまでの経緯を残しておく
|
|
25
|
+
1. 関連したissue、pull requestを書いておくと後任者は助かる
|
|
26
|
+
|
|
27
|
+
### テーブル定義
|
|
28
|
+
1. 各テーブル定義。モデル更新時には合わせて更新する
|
|
29
|
+
|
|
30
|
+
## 参考情報
|
|
31
|
+
1. Qiita: [【11万文字越え】プログラミング初心者に贈る即戦力ガイド](https://qiita.com/nuco_bk/items/27f5ad03d0c4b41241fc)
|
|
32
|
+
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 3
|
|
3
|
+
tags:
|
|
4
|
+
- git
|
|
5
|
+
- branch
|
|
6
|
+
---
|
|
7
|
+
# ブランチ命名規約
|
|
8
|
+
|
|
9
|
+
ブランチ名の統一性を確保し、プロジェクトの管理を容易にするため、以下の規則に従ってブランチ名を命名してください。
|
|
10
|
+
|
|
11
|
+
## 基本ルール {#basic-rules}
|
|
12
|
+
|
|
13
|
+
使用可能なブランチ名の種類は次のとおりです。これ以外の命名は禁止します。
|
|
14
|
+
|
|
15
|
+
:::tip tip
|
|
16
|
+
接頭の `\p` はイメージ表示に使っているPlantUMLの決まり事なので利用時には不要なので注意
|
|
17
|
+
正しくは各詳細で確認すること
|
|
18
|
+
:::
|
|
19
|
+
|
|
20
|
+
1. `\p{#issue_id}` = `[0-9]+` : GitHubのIssue ID
|
|
21
|
+
1. `\p{summary}` = `[a-z0-9-]+` : 概要を英語で書く
|
|
22
|
+
1. `\p{date(yyyymmdd)}` = `[0-9]{8}` : 作成日(作業開始日)
|
|
23
|
+
1. `\p{commit_hash}` = `[a-f0-9]{7,40}` : コミットハッシュ
|
|
24
|
+
|
|
25
|
+
```pumld
|
|
26
|
+
@startregex
|
|
27
|
+
^((feature|bugfix|hotfix)/\p{#issue_id}-\p{summary}|revert/\p{commit_hash})-\p{date(yyyymmdd)}$
|
|
28
|
+
@endregex
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Feature
|
|
32
|
+
|
|
33
|
+
1. 機能開発用
|
|
34
|
+
1. 新機能の開発や改善作業で使用します。
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
feature/{#issue_id}-{summary}-{date(yyyymmdd)}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- 例: issue IDが `10` の場合
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
feature/#10-add-api-nameabc-20250316
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Bugfix
|
|
47
|
+
|
|
48
|
+
1. 本番環境バグ対応用
|
|
49
|
+
1. 本番環境で発生したバグを修正するために使用します。
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
bugfix/{#issue_id}-{summary}-{date(yyyymmdd)}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
- 例: issue IDが `15` の場合
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
bugfix/#15-fix-login-error-20250316
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Hotfix
|
|
62
|
+
|
|
63
|
+
1. 緊急の修正対応
|
|
64
|
+
1. 本番環境で発生した致命的な不具合に対し、緊急対応を要する場合に使用します。
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
hotfix/{#issue_id}-{summary}-{date(yyyymmdd)}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
- 例: issue IDが `20` の場合
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
hotfix/#20-critical-security-patch-20250316
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Revert
|
|
77
|
+
|
|
78
|
+
1. 変更の取り消し用
|
|
79
|
+
1. 過去のコミットを取り消す際に使用します。
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
revert/{commit_hash}-{date(yyyymmdd)}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
- 例: コミットハッシュが `abcd123` の場合
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
revert/abcd123-20250316
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## 使用可能文字 {#allowed-characters}
|
|
92
|
+
|
|
93
|
+
1. アルファベット小文字 (`a`-`z`)
|
|
94
|
+
1. 数字 (`0`-`9`)
|
|
95
|
+
1. ハイフン (`-`)
|
|
96
|
+
|
|
97
|
+
必ず **ケバブケース**(単語同士をハイフンで繋ぐ)を使用してください。
|
|
98
|
+
|
|
99
|
+
## 使用禁止文字 {#prohibited-characters}
|
|
100
|
+
|
|
101
|
+
1. 大文字 (`A-Z`)
|
|
102
|
+
1. スペース (` `)
|
|
103
|
+
1. アンダースコア (`_`)
|
|
104
|
+
1. その他記号 (`!`, `@`, `#`, `$`, `%`, `^`, `&`, `*`, `(`, `)`, 等)
|
|
105
|
+
|
|
106
|
+
## 注意事項 {#notes}
|
|
107
|
+
|
|
108
|
+
1. ブランチ名は可能な限り明確かつ簡潔にしてください。
|
|
109
|
+
1. issueがない場合は省略せず、必ずissueを作成したうえでブランチを作成してください。
|
|
110
|
+
1. 一度作成したブランチの名前を変更することは禁止します。
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 1
|
|
3
|
+
tags:
|
|
4
|
+
- git
|
|
5
|
+
- github
|
|
6
|
+
---
|
|
7
|
+
import TBD from '@site/src/components/TBD';
|
|
8
|
+
|
|
9
|
+
# GitHubの利用方法
|
|
10
|
+
|
|
11
|
+
## 基本的なGitHubの利用ルール
|
|
12
|
+
|
|
13
|
+
### コミットメッセージのルール
|
|
14
|
+
1. 簡潔で分かりやすいコミットメッセージを書く
|
|
15
|
+
1. プレフィックスを使用する(例:`feat:`、`fix:`、`docs:`、`style:`、`refactor:`、`test:`、`chore:`)
|
|
16
|
+
1. 現在形の動詞で始める(例:「Add」「Fix」「Update」など)
|
|
17
|
+
1. 50文字以内に収める
|
|
18
|
+
|
|
19
|
+
### ブランチ戦略
|
|
20
|
+
1. `main`/`master`ブランチは常に安定した状態を保つ
|
|
21
|
+
1. 機能開発は`feature/機能名`ブランチで行う
|
|
22
|
+
1. バグ修正は`fix/バグ内容`ブランチで行う
|
|
23
|
+
1. リリース準備は`release/バージョン番号`ブランチで行う
|
|
24
|
+
|
|
25
|
+
### プルリクエスト(PR)のルール
|
|
26
|
+
1. 明確なタイトルと説明を書く
|
|
27
|
+
1. 変更内容を詳細に記述する
|
|
28
|
+
1. レビュアーを指定する
|
|
29
|
+
1. 関連するIssueがある場合は参照する
|
|
30
|
+
1. CI/CDのチェックが通過していることを確認する
|
|
31
|
+
|
|
32
|
+
### イシュー管理
|
|
33
|
+
1. 新機能やバグは必ずイシューとして登録する
|
|
34
|
+
1. イシューには適切なラベルを付ける
|
|
35
|
+
1. 担当者を明確にする
|
|
36
|
+
1. 期限がある場合は設定する
|
|
37
|
+
|
|
38
|
+
## SSHキー作成からGit Cloneまでの手順
|
|
39
|
+
|
|
40
|
+
### SSHキーの作成
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# SSHキーを生成(メールアドレスは自分のものに置き換える)
|
|
44
|
+
ssh-keygen -t ed25519 -C "your_email@example.com"
|
|
45
|
+
|
|
46
|
+
# デフォルトの保存場所とパスフレーズを設定(Enterキーで進める)
|
|
47
|
+
# パスフレーズは設定することを推奨
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### SSHエージェントへの追加
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# SSHエージェントを起動
|
|
54
|
+
eval "$(ssh-agent -s)"
|
|
55
|
+
|
|
56
|
+
# SSHキーをエージェントに追加
|
|
57
|
+
ssh-add ~/.ssh/id_ed25519
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### GitHubアカウントにSSH公開キーを追加
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
# 公開キーをクリップボードにコピー(Linuxの場合)
|
|
64
|
+
cat ~/.ssh/id_ed25519.pub | xclip -selection clipboard
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
- GitHubにログイン
|
|
68
|
+
- 右上のプロフィールアイコンをクリック→「Settings」を選択
|
|
69
|
+
- サイドバーの「SSH and GPG keys」をクリック
|
|
70
|
+
- 「New SSH key」ボタンをクリック
|
|
71
|
+
- タイトルを入力(例:「Work Laptop」)
|
|
72
|
+
- 「Key」フィールドに公開キーを貼り付け
|
|
73
|
+
- 「Add SSH key」ボタンをクリック
|
|
74
|
+
|
|
75
|
+
### SSHキーの動作確認
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# GitHubとの接続をテスト
|
|
79
|
+
ssh -T git@github.com
|
|
80
|
+
|
|
81
|
+
# 初回接続時は確認メッセージが表示されるので「yes」と入力
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### Gitの初期設定
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# ユーザー名とメールアドレスを設定
|
|
88
|
+
git config --global user.name "あなたの名前"
|
|
89
|
+
git config --global user.email "your_email@example.com"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### リポジトリのクローン
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# SSHを使用してリポジトリをクローン
|
|
96
|
+
git clone git@github.com:ユーザー名/リポジトリ名.git
|
|
97
|
+
|
|
98
|
+
# クローンしたディレクトリに移動
|
|
99
|
+
cd リポジトリ名
|
|
100
|
+
```
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
sidebar_position: 2
|
|
3
|
+
tags:
|
|
4
|
+
- git
|
|
5
|
+
- pull request
|
|
6
|
+
---
|
|
7
|
+
# Pull Request運用フロー
|
|
8
|
+
|
|
9
|
+
## 主な運用フロー
|
|
10
|
+
|
|
11
|
+
```pumld
|
|
12
|
+
@startuml
|
|
13
|
+
|
|
14
|
+
skinparam responseMessageBelowArrow true
|
|
15
|
+
autonumber "<b> [00]"
|
|
16
|
+
|
|
17
|
+
participant local as "branch: feature/ブランチ名"
|
|
18
|
+
participant develop as "branch: develop"
|
|
19
|
+
participant staging as "branch: staging"
|
|
20
|
+
participant main as "branch: main"
|
|
21
|
+
|
|
22
|
+
develop -> local ** : clone &\ncreate branch feature/ブランチ名
|
|
23
|
+
local -> local: commit changes
|
|
24
|
+
local -> local: create Pull Request & review
|
|
25
|
+
local -> develop: merge feature/ブランチ名 into develop
|
|
26
|
+
local -> local !! : delete feature branch
|
|
27
|
+
|
|
28
|
+
develop -> develop: CI/CD checks
|
|
29
|
+
develop -> staging: merge develop into staging
|
|
30
|
+
staging -> staging: perform release validation
|
|
31
|
+
staging -> staging: e2e test
|
|
32
|
+
staging -> main: merge staging into main
|
|
33
|
+
|
|
34
|
+
main -> main: tag version &\nperform release
|
|
35
|
+
@enduml
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 手順
|
|
39
|
+
|
|
40
|
+
1. \[01\]: developブランチをクローンし、ローカルでfeature/ブランチ名を作成する
|
|
41
|
+
1. \[02\]: feature/ブランチ名でコードを修正しコミットする
|
|
42
|
+
1. \[03\]: feature/ブランチ名内でPull Requestを作成し、レビューを依頼する
|
|
43
|
+
1. \[04\]: レビュー完了後、feature/ブランチ名をdevelopへマージする
|
|
44
|
+
1. \[05\]: feature/ブランチ名を削除する(自動)
|
|
45
|
+
1. \[06\]: developブランチでCI/CDチェックを実行する
|
|
46
|
+
1. \[07\]: developをstagingへマージ
|
|
47
|
+
1. \[08\]: リリース前の検証をする
|
|
48
|
+
1. \[09\]: stagingブランチでE2Eテストを実行する
|
|
49
|
+
1. \[10\]: テスト完了後、stagingをmainへマージし、リリースを実施する
|
|
50
|
+
1. \[11\]: mainブランチでタグを作成し、正式にリリースする
|
|
51
|
+
|
|
52
|
+
## エンジニアの動き
|
|
53
|
+
|
|
54
|
+
```pumld
|
|
55
|
+
@startuml
|
|
56
|
+
start
|
|
57
|
+
|
|
58
|
+
:Issueからfeatureブランチを作成する;
|
|
59
|
+
:コード、テストを実装する;
|
|
60
|
+
#Aquamarine:(A)
|
|
61
|
+
:テストをする;
|
|
62
|
+
|
|
63
|
+
if (テストは成功したか?) then (はい)
|
|
64
|
+
:Pull Requestを作成する;
|
|
65
|
+
:レビュアーを指定する;
|
|
66
|
+
#LightSkyBlue:(B)
|
|
67
|
+
:レビューを受ける;
|
|
68
|
+
|
|
69
|
+
if (レビューは承認されたか?) then (はい)
|
|
70
|
+
:レビュアーがPull Requestをマージする;
|
|
71
|
+
:Issueをクローズする;
|
|
72
|
+
stop
|
|
73
|
+
else (いいえ)
|
|
74
|
+
:フィードバックに基づいて修正する;
|
|
75
|
+
:修正をコミットする;
|
|
76
|
+
#Aquamarine:(A)
|
|
77
|
+
:再レビューを依頼する;
|
|
78
|
+
#LightSkyBlue:(B)
|
|
79
|
+
detach
|
|
80
|
+
endif
|
|
81
|
+
|
|
82
|
+
else (いいえ)
|
|
83
|
+
:テストが通るように修正する;
|
|
84
|
+
#Aquamarine:(A)
|
|
85
|
+
detach
|
|
86
|
+
|
|
87
|
+
endif
|
|
88
|
+
|
|
89
|
+
@enduml
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Pull Requestのベストプラクティス
|
|
93
|
+
|
|
94
|
+
1. **小さくまとめる**: 一つのPRは一つの機能や修正に焦点を当てる
|
|
95
|
+
1. **明確なタイトルと説明**: PRの目的と変更内容を明確に記述する
|
|
96
|
+
1. **テストの実施**: PRを提出する前に必ずテストを実行する
|
|
97
|
+
1. **レビュープロセスの尊重**: レビューコメントに対して建設的に対応する
|
|
98
|
+
1. **マージ前の確認**: マージ前にコンフリクトがないことを確認する
|
|
99
|
+
|
|
100
|
+
## PRレビューのチェックリスト
|
|
101
|
+
|
|
102
|
+
### 機能面
|
|
103
|
+
|
|
104
|
+
1. 要件を満たしているか
|
|
105
|
+
1. エッジケースを考慮しているか
|
|
106
|
+
1. バグやパフォーマンスの問題がないか
|
|
107
|
+
|
|
108
|
+
### コード品質
|
|
109
|
+
|
|
110
|
+
1. コードは読みやすく、理解しやすいか
|
|
111
|
+
1. 命名規則に従っているか
|
|
112
|
+
1. コードの重複がないか
|
|
113
|
+
1. セキュリティ上の問題がないか
|
|
114
|
+
|
|
115
|
+
### ドキュメント
|
|
116
|
+
|
|
117
|
+
1. コメントやドキュメントが適切か
|
|
118
|
+
1. 必要な場合はドキュメントが更新されているか
|