리팩토링, 테스팅, 디버깅

가독성과 유연성을 개선하는 리팩토링

코드 가독성 개선

익명 클래스를 람다 표현식으로 리팩토링하기

int a = 10;
Runnable r1 = () -> {
  int a = 2; // 컴파일 에러
  System.out.println(a);
}

Runnable r2 = new Runnable () {
  public void run () {
    int a = 2; // 모든 것이 잘 동작
    System.out.println(a);
  }
}

람다 표현식을 메서드 레퍼런스로 리팩토링하기

명령형 데이터 처리를 스트림으로 리팩토링하기

List<String> dishNames = new ArrayList<>();
for (Dish dish : menu) {
  if (dish.getCalories() > 300) {
    dishNames.add(dish.getName()) ;
  }
}

menu.parallelStream().
      .filter(d -> d.getCalories() > 300)
      .map(Dist::getName)
      .collect(toList());

코드 유연성 개선

람다로 객체지향 디자인 패턴 리팩토링하기

전략

http://drive.google.com/uc?export=view&id=0ByLqiEM75qEzaVp6Y183dHFHNk0

전략