(引用)
マイケル・フェザーズは、テストのないコードをレガシーコードと定義している。
コードを実行し、意図したとおりに使われていることを検証する優れた自動ユニットテストに高い価値を置いているためだ。
これは私も同じである。
ウォード・カニンガムは技術的負債という単語を作った。
これは、開発中に学習した内容をコードに反映しなかったときに起こることを説明したものだ。
技術的負債以上に、開発を遅くしたり見積りを狂わせるものはほかにない。
1時間で終わるべきものが1日以上かかったり、ときには、1つの機能追加でおびただしい量のコード変更が必要になったりする。
コード品質の向上は変更のコストを下げ、見積りを予測可能なものにしてくれる。
技術的負債は、ほとんどの場合累積していく(例外はある)。
したがって、ほとんどの場合は、できるだけ早く技術的負債を返済するのが正しい選択だ。
技術的負債のあるシステムで開発者が作業すると、問題にぶつかる。
開発者は、何度も何度も技術的負債に遭遇し、そのたびにコストを払う。
『レガシーコードからの脱却』
元も子もないかもしれませんが、回答させていただきます。
こういったお話は、実際のコードを見てみないことには理想的な回答はできないように感じます。
実際のコードを見たとしても、本当に完璧な回答はできないように感じます。
(回答に従ってやってみたところで様々な壁にぶつかるような気がします)
「今までのjQuery Mobile のプログラム資産をできるだけ活かして、」
ですが、最初に引用した書籍の内容にもありますが、自動ユニットテストがあるのでしたら「資産」としても良いと思いますが、
そうでないのでしたら、「技術的負債」と解釈した方が良い気がします。
jQuery Mobileはプレゼンテーション層をサポートするフレームワークだと思いますので、
この層はユニットテストが難しく、おそらくユニットテスト自体が行われていないことがほとんどだと感じます。
現場で様々な案件をこなしてきた経験からすると、
既存のプログラムを「資産」として使おうとすると、負債に負債が積み重なって、
目も当てられないコードが出来上がるパターンしかありませんでした・・
「最新のフレームワークに移行したい」
のであれば、既存のコードは置いておいて、
一旦、素のままに最新のフレームワークを試してみるところから初めてみた方が、
結局は一番早いような気がします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/05 00:26
退会済みユーザー
2021/12/05 05:01