刺身タンポポ職人なう

文系女子大生がエンジニアとして就職してその後

ES6構文の「...」(スプレッド演算子)

reducers にある ...state の ... ってなに?

case UPDATE:
  return {
    ...state,
    list: action.payload.list
  };

↓と同じ

  return Object.assign({}, state, {
    list: action.payload.list
  })

普通だったらこうなるものを

var parts = ['shoulder', 'knees'];
var lyrics = ['head', parts, 'and', 'toes'];
console.log(lyrics);
> [ 'head', [ 'shoulder', 'knees' ], 'and', 'toes' ]

これでできちゃう

var lyrics = ['head', ...parts, 'and', 'toes'];
console.log(lyrics);
> [ 'head', 'shoulder', 'knees', 'and', 'toes' ]

Redux のうんぬんではなく、 ES6 の構文。スプレッド演算子というらしい。

developer.mozilla.org

yutapon.hatenablog.com

Factory Method ってなに?

他のクラスのインスタンス化の責任を負う必要がある普通の実装。

class Sample {
    class showName() {
        Name name = new AName();
        System.out.println(name.getName()); // I'm A
        Name name = new BName();
        System.out.println(name.getName()); // I'm B
    }
}

abstract class Name {
    abstract void getName();
}

class AName extends Name {
    void getName() {
        System.out.println ("I'm A");
    }
}

class BName extends Name {
    void getName() {
        System.out.println ("I'm B");
    }
}

インスタンスの生成は一箇所に集約して、責任を Factory に任せる実装

abstract class Factory {
     abstract Name factoryMethod();
}

public class NameFactory extends Factory {
    abstract Name factoryMethod();
        return new GetName();
    }
}

public abstract class GetName {
    public abstract void manA();
    public abstract void manB();
}

public class Name extends GetName {
    public void manA() {
        System.out.println ("I'm A");
    }
    public void manB() {
        System.out.println ("I'm B");
    }
}

class Sample {
    void hoge() {
        Factory factory = new NameFactory();
        Name name = factory.factoryMethod();

        name.manA(); // I'm A
        name.manB(); // I'm B
    }
}

Factory Method と Abstract Factory の違いを順に理解する | Futurismo

CPU の使用状況をチェックする方法

CPU の使用状況をチェックする方法 (sar -u)

$ sar -u
00:00:00    %usr    %sys    %wio   %idle
01:00:00       0       0       0     100

%usr プロセッサがユーザーモードになっている時間の割合が表示されます。

%sys プロセッサがシステムモードになっている時間の割合が表示されます。

%wio プロセッサがアイドル状態で入出力の完了を待っている時間の割合が表示されます。

%idle プロセッサがアイドル状態で入出力を待っていない時間の割合が表示されます。

一般に、%wio の値が大きい場合は、ディスクの処理速度が低下していることを意味します。

参照

http://docs.oracle.com/cd/E19504-01/805-1753/spmonitor-40118/index.html