前の記事でcycle.jsについて少し紹介したものの、いまから始める人のことを考えると日本語の情報が無くて大変だろうと思ったので、何か説明出来ることがないか探した。使いはじめると途中でコードの分割方法について困ると思うので、いま開発しているエディタアプリではこうやっているよというのを書く。概観エディタ領域のコードは重いので左側2枚のサイドバーの部分のコードだけ抜き出して書くと、現状こういう感じのファイル構成になっている。読み込まれるエントリポイントになる。同じディレクトリにある、Model・View・Intentの関数をそれぞれ読み込み、Cycle.jsのイベントループに設定するとアプリケーションが動き出す。出来る限りファイル構成がどうなっているかについて意識しなくても良いようにしようとしてこうなった。ディレクトリの中にある小さく分割された複数のintentを読み込み、大きなintentとして合成して返す。返す関数」ということにしている。いうデータ構造になっているObjectで、主にDOMからのイベントを受け取るためのイベントソースの集合である。入力を受け取る場合もあるので、intentをresponsesを受け取る関数として定義した。intentは単純なObjectを返すだけなので簡単に1つの関数にまとめられる。};}model.jsmodelsディレクトリの中にある小さく分割された複数のmodelを読み込み、1つのストリームとして合成して返す。(どれか1つのObservableに新しい値が来たら新しい値を返すやつなので、これを使えば何らかの状態が更新されたときにViewに更新を伝えられる)。細かいけど、それぞれの分割されたmodel関数の名前は、その関数のObservableが返す値を表す名詞にしてみてる。);}view.jsviewだけは同じ型の小さなviewには分割されない。代わりに、templatesディレクトリ以下にtemplate関数を返す複数のファイルを用意して分割するようにしている。template関数は「Objectを受け取り、VirtualDOMを返す関数」として定義してある。ただのテンプレート関数。state$.map(root);}。