IT/후기2015.03.13 13:51

아주 간만에 흥미로운 책을 읽었다. Polyglot 이라고 프로그래밍을 여러개 할 줄 아는 능력을 갖추라는 메시지가 담긴 책이다.

저자 임백준씨의 책은 대학교때 한손으로 뽑을 정도로 적게 읽었던 책중에 행복한 프로그래밍의 책부터 한권도 빠짐없이 보고 있다. 

아는 것이 참 많으신듯. 람다와 클로저의 개념도 쉽게 설명을 해주시고 많은 레퍼런스도 공유를 해주셨다.



스택오버플로우 사이트는 개발자면 다 아는 사이트이다. 이 사이트를 만든 사람 중 아트우드는 조엘 온 소프트웨어 저자 ,조엘 스폴스키와    stackoverflow를 만들고 이곳을  떠나서 대화 담화 의견의 교환 등을 의미하는 discourse.org 라는 웹사이트를 개발한다. 위키북스라는 책도 찾아보자. 



ㅇ Podcast

  'ted neward podcast'라고 검색하면 여럿 나옴.


ㅇ 람다와 클로저 

람다는 익명 메서드라고 보며, 코드조각 혹은 표현을 다른 객체나 메서드에 전달하기 위한 표현식이고. 

클로저는 외부에서 정의된 변수를 참조하는 코드조각 혹은 표현


public void foo()  {

int i = 0;

JButton  button = new JButton("Click me");

button.addActionListener( new ActionListener() {

// 이책에선 아래의 함수 정의 자체가 행사코드 

라고 표현

@Override

public void actionPerformed(ActionEvent e) {

System.out.println(i);

}

});

}


에서,  System.out.println(i);에서 i가 빠지면 람다이긴 하나 클로저가 아닌거라는 말이다.


ㅇ 코드의 변경불가능성 (블로흐 effective java)

 - 객체의 상태를 변경시키는 메서드를 제공하지 마라 

 - 클래스가 상속되지 못하도록 하라 

 - 모든 필드를 final로 선언하라

 - 모든 필드를 private로 선언하라

 - 변경불가능성을 만족시키지 못하는 컴포넌트에  대한 접근을 통제하라.

-  닐 게프터 vs 블로흐  (닐 게프터는 자바는 꽁꽁 얼어붙은 심해였다.)



ㅇ Scala 사용예

사회적 그래프를 역정규화된 사용자 ID의 리스트 형태로 저장하기 위해 Flock이라는 도구를 사용 

Hawkwind라는 스칼라로 구현된 서비스를 사용 : 트위터 사용자 검색엔진

호스버드 Hosebird : 공공 검색엔진에게 스트림으로 전송, http 기반의 지속적인 연결 시스템. 스칼라를 이용해서 jETTY 위에 우리만의 시스템 구현


시라는 것은 궁국의 압축이다. 감정의 철학과 깨달음과 메시지와 소통을, 치열한 사색과 고민으로 여과하여 간결한 언어 안에 압축시킨 것이라는 글귀에 시 한권 읽어야겠다는 생각도 들었다. 프로그래밍과 참 유사해야한다라는 말에 공감이 간다.



[형식 언어의 정의를 위한 새로운 접근법과 오테론에서의 응용] 라는 논문도 찾아서 보면 프로그래밍의 원리 이해에 도움이 될것 같다.




아래의 함수 프로그래밍 개념을 "Functional Programming for Java Developer(저자 Dean Wampler)"라는 책을 보고 익히자.

- 변경불가능성

- 일급함수

- 람다와 클로저

- 고차함수

- 재귀

- 게으른 평가

- 함수 합성

- 모나드


저작자 표시
신고

'IT > 후기' 카테고리의 다른 글

PyconKR 2016 정리  (0) 2016.08.16
Polyglot Programming  (0) 2015.03.13
2013 JCO 후기  (0) 2013.02.23
Posted by 억사마