2012-04-17 9 views
0

満足のいく回答が見つかりませんでしたのでここに質問があります。デスクトップ<-->モバイルコード共有[Javascript]

私はHTML5-Websocketベースのアプリケーションを開発しており、それもMobileに移植します。

問題は、私の機能の2/3がモバイル版にはなく、機能は密接にJSとHTMLに統合されていることです。

これらの1/3の機能をエレガントに分けることができれば、私はドライです。しかし、私はこのための簡単な解決策を見つけることができませんでした。

たとえば、ノードからユーザーオブジェクトを取得し、それを関数で処理する関数があります。モバイルの場合は、同じフローが必要ですが、フローの2/3は除きます。私はそれらのための異なる機能を作成し、それらを異なるファイルに入れることができますが、これはメンテナンスの悪夢をもたらすでしょう。なぜなら、私は単純な機能に対しても数十の追加機能を作成する必要があるからです。

この仕事のためにそこにこれらのことをする良い枠組みや方法はありますか?

答えて

0

この状況では、デノラム化アプローチをお勧めします。表面上では、コードを複製するのでメンテナンスの悪夢になると思いますが、共有コードがあまりにも多くを処理しようとすると、メンテナンスの悪夢が深刻化する可能性があります。この場合のコードの抽象化と分離が進む方法かもしれませんが、QAをスピードアップします。

1

長い関数を小さな関数に分割する必要があります。 (。あなたの画面は高さよりも、コードのかそこらの各機能のための15本の線は一般的に、何の機能はもはやないはずです。)

function DoAllTheThings() { 
    // long function 
    // long function 
    // long function 
    // long function 
    // long function 
    // long function 
    // long function 
    // long function 
    // long function 
    // long function 
    // long function 
    // long function 
    // long function 
    // long function 
    // long function 
    // long function 
} 

はなる:あなたはDoAllTheThingsを呼び出す

function DoAllTheThings() { 
    WarbleTheThing(); 
    FribbleTheThing(); 
    StrabbleTheThing(); 
} 
function WarbleTheThing() { 
    // short function 
    // short function 
    // short function 
} 
function FribbleTheThing() { 
    // short function 
    // short function 
    // short function 
} 
function StrabbleTheThing() { 
    // short function 
    // short function 
    // short function 
} 

そしてのためのデスクトップブラウザ( )でも、携帯電話の場合はFribbleTheThing()を呼び出すだけかもしれません

関連する問題