重构Job