質問: initialize: -> console.log '1' @setBind() setBind: -> @関数 $ -> app.initialize() ``` のように整理するように言われました。 しかし、独学で進めてきたもので上のような書き方の作法?が掲載されているサイトもなかなか見つからず、どのように悪いのか、どう直していけば良いのかアドバイスを頂きたく、質問しました。 コードは こちらです。 長文かつとても煩雑なコードになっており別urlにしました。申し訳ないのですが回答いただけると嬉しいです。
回答: 「めちゃくちゃ」と言うほど悪くなく、現状でも組めてるとは思うんですが、 開発規模が大きくなってくると、リファクタリングが必要になるでしょう。 たとえば麻雀だとか、より複雑なプログラムを組むには何千行か必要ですし、 さらに言えば、商業ゲームのコードは何万行、何十万行にもなります。 コードの規模が大きいと、全体を把握できなくなるので、組み方を変える必要があります。 リファクタリングの技法にもいろいろありますが、 もっとも基本になるのは、「メソッドの抽出」です。 現状では、右に弓なり(>)の形をした、典型的な手続き的なコードです。 長いif文やfor文を分解して、関数やメソッドにくくり出していきます。 最初はかえって分かりづらいと思うでしょうが、慣れると元に戻りたくなくなります。 リファクタの第一歩として、コード全体をクラスやメソッドに分割してみてください。