Open nard-tech opened 4 years ago
page/index.vue
のみで使われている components/
以下のファイルを,components/index
以下に移動する(components/flow
と同様)
components/cards/
以下のファイルも,components/index/cards/
に移動するcomponents/cards/
で import
している component(主にグラフ描画用の XxxxChart
)を components/index/cards/charts/
に移動する
XxxxCard
に対応する component は XxxxChart
という命名に統一するDataTable
は ComfirmedCasesAttributesTable
に,TimeStackedBarChart
は TestedNumberBarChart
に名前を変更すべきでは?page/flow.vue
のみで使われている components/
以下のファイルを,components/flow
以下に移動する(PrinterButton
のみ?)ConfirmedCasesIncreaseRatioByWeekChart.vue
は使われていないので削除すべき例:components/cards/TestedCasesDetailsCard.vue
8行目〜
<data-view
:title="$t('検査実施状況')"
:title-id="'details-of-tested-cases'"
:date="Data.inspection_status_summary.date"
>
<template v-slot:button>
<ul :class="$style.notes">
<li>
{{ $t('(注)医療機関が保険適用で行った検査は含まれていない') }}
</li>
<li>
{{
$t(
'(注)検査実施人数には、チャーター機帰国者、クルーズ船乗客等は含まれていない'
)
}}
</li>
<li>
{{
$t(
'(注)速報値として公開するものであり、後日確定データとして修正される場合あり'
)
}}
</li>
</ul>
</template>
DataView.vue
の実装を考えると,本来は <template v-slot:button>
ではなく <template v-slot: description>
を使うべき.
このような箇所が ConfirmedCasesDetailsCard.vue
, TestedNumberBarChart.vue
にも見られる.
追記 (2020-08-15): 解消または該当ファイル削除済み
その他,page/index.vue
上の component, chart が全体的に荒れている印象があるので,dry で統一感のある構成にしたい.
data/data.json
などからデータを取得する際に,中間層を設けることで型推論を可能とし、コードの保守性を上げる.
cf. JSONファイルとVueの間に中間層を設ける (#1100)
実装すると宣言した方がいらっしゃるが,音沙汰なしの状況.
tool/convert.php
についてNuxt.js のプロジェクトなので,JavaScript(または TypeScript)に書き換えたい.
型をしっかり付けるなら「JSONファイルとVueの間に中間層を設ける」とも関連してくるかも?
追記 (2020-08-15): tool/convert.php
は削除されたため対応不要
data.json
についてdata.json
を分割しなくても conflict することには変わりないが,conflict 解消時のミスの危険性が増すと思われる.data.json
を分割した方がファイルごとの責務が明確になり,Git で管理するときに差分が確認しやすい.tool/convert.php
の書き換えも含め,工数が大きく,データの信頼性を担保したまま分割するのは大変.template に渡す値は <script></script>
内で絞り込みたい.
例: components/cards/ConfirmedCasesAttributesCard.vue
<template>
<v-col cols="12" md="6" class="DataCard">
<data-table
:title="$t('陽性患者の属性')"
:title-id="'attributes-of-confirmed-cases'"
:chart-data="patientsTable"
:chart-option="{}"
:date="Data.patients.date"
:info="sumInfoOfPatients"
:url="'https://catalog.data.metro.tokyo.lg.jp/dataset/t000010d0000000068'"
:source="$t('オープンデータを入手')"
/>
</v-col>
</template>
<script>
import Data from '@/data/data.json'
// (略)
export default {
// (略)
data() {
// (略)
const data = {
Data,
patientsTable,
sumInfoOfPatients
}
return data
}
}
</script>
追記 (2020-08-14): #5250 で対応
非機能要件ということで、各vueファイルの Githubissues.
改善詳細 / Details of Improvement
という訳で,この issue に非機能要件の問題・改善すべき点を,必要性やデメリットも含め,まとめていきつつ議論を進めたいと思います.