ソースコードの見直し(整理)の必要性
前回で、外部シナリオデータの取り込みも目途がつきました。
外部データの取得:ionic, angular(RxJS), JSONP サンプル
https://ncode.syosetu.com/n5283hn/139/
これの意味するところは、どこかのサーバにテキストファイルを置く事さえできれば、サーバ側の仕組み(あれば便利ではありますが)無しでも、他の人に作ったシナリオを読んでもらえるという事です。
そのような大きな進展があったので、ゲームブックアプリ開発も気合を入れたいところではあるのですが、改めてソースコードを見るとかなり見づらい。
外部データの取り込みの少し前に、固定文字列を外部JSONに移した訳ですが、関数の大部分(現在、データ整合性チェックのみを外部ファイルに定義している)も外部に移す事を推し進める必要がありそうです。
(リアルの部屋の整理とかしない私ではありますが、機能追加や修正などのメンテナンスを考えると早めにやるべき作業です)
いまだionicと言うものを未だに理解しているとは言えませんが、"home.page.ts"内に無いと困るものと外に出しても大丈夫なものを切り分けて見たいと思います。
無いと困るもの
"home.page.html"とバインディングされている変数および関数
多分、外部に出せるもの
上記以外
それ以外にも出せるけれど出さない方が面倒がない物もあるかもしれません。
"home.page.ts"が1万行とか超える前に、まず整理してみたいと思います。
(まだ外部に移したデータチェックを入れても2000行くらいですが、際限なく増えると思った方が良いです)
"home.page.html"は・・・やれない事はないかもしれませんが、多分、バグの原因になると予想しますので現状維持にして置きます。
追記
色々調べたりテストコードを書いたりしましたが、現在の理解でやるとおそらく対応できない問題に直面する気がします。
スコープやらimportの知識があやふやすぎますので、今後、可能ならという方針に転換します。
ただし固定文字列については、外部にJSONで持たせたのはうまく行ったと思います。
(使用場所や使用方法によりキーの階層で分けたので判りやすくなったと思います)
------------------------------------------
import t_fix from 'src/assets/text.json';
中略
export class HomePage {
//固定文字列全般
t_fix = JSON.parse(JSON.stringify(t_fix));
------------------------------------------
同じ名前で内部変数にコピーしたので、"home.page.html"でも内部関数でもthis.を使わず書けるのは良かった気もします。(値の変更が無いので安心してできた訳ですが)