1
オブジェクト指向コードを機能コードにリファクタリングするために使用できるいくつかのテクニックは何ですか?
JavaScriptとHTML5キャンバスを使用してゲームの一部を開発するのに約20〜40時間費やしました。私が始めたとき、私は何をしているのか全く分かりませんでした。したがって、これは概念実証として始まり、現在は順調に進んでいますが、自動テストはありません。ゲームは複雑になり始めており、自動化されたテストの恩恵を受けることができますが、コードがグローバル状態の変化に依存しているため、実行するのは難しいようです。 JavaScript用の関数型プログラミングライブラリであるUnderscore.jsを使用して、すべてをリファクタリングしたいと思います。私の一部は、関数型プログラミングスタイルとテストを使用して、ゼロから始めるべきだと思っています。しかし、命令型コードを宣言型コードにリファクタリングすることは、より優れた学習体験であり、現在の機能の状態に到達するためのより安全な方法になると思います。 問題は、コードを最終的にどのように見せたいかはわかっていますが、現在のコードをそれに変換する方法がわかりません。私はここの何人かの人々がリファクタリングの本とレガシーコードで効果的に働くことのいくつかのヒントを私に与えることを望んでいます。 たとえば、最初のステップとして、私はグローバルステートの「禁止」について考えています。グローバル変数を使用するすべての関数を取り、代わりにパラメーターとして渡します。 次のステップは、ミューテーションを「禁止」し、常に新しいオブジェクトを返すことです。 任意のアドバイスをいただければ幸いです。これまでにOOコードを取得して、Functionalコードにリファクタリングしたことがありません。