0

満足のいく答えが見つからなかったので、ここに質問があります。

私は HTML5-Websocket ベースのアプリケーションを開発しており、モバイルにも移植する予定です。

問題は、私の機能の 3 分の 2 がモバイル バージョンになく、機能が JS を使用して HTML に緊密に統合されていることです。

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

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

この仕事のためにこれらのことを行うための良いフレームワークや方法はありますか?

4

2 に答える 2

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
}

になります:

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
}

デスクトップブラウザの場合はDoAllTheThings()を呼び出しますが、モバイルの場合はFribbleTheThing()のみを呼び出します。

于 2012-04-17T23:52:17.507 に答える
0

この状況では、非カラム化されたアプローチをお勧めします。表面的には、一部のコードを複製するため、メンテナンスの悪夢になると思いますが、メンテナンスの悪夢の奥深くでは、共有コードで処理しすぎてしまう可能性があります。この場合のコードの抽象化と分離は、進むべき道かもしれません、そしてそれはQAをスピードアップします。

于 2012-04-17T23:48:16.120 に答える