Software Engineering Note

Principles of Reactive Programming 본문

스터디/Coursera

Principles of Reactive Programming

devmoons 2015. 6. 27. 12:12

https://www.coursera.org/course/reactive


2015년 4월부터 6월까지.. 플젝하면서 도움을 얻기위해 수강한 강의.


총 세명의 교수가 파트를 나누어 설명한다. (Martin Odersky, Erik Meijer, Roland Kuhn)


개인적으로 actor를 설명한 쿤 아저씨가 가장 친절하게 느껴졌고, 플젝에 가장 큰 도움이 된듯하다.


마이어 아저씨는 약간 해커 스타일? (대충설명..;;)


과제 제출기한이 하루 밀릴때마다 점수 20% 삭감 정책이라 감점을 두 번정도 당했다. 


과제 하느라 몇 주 주말은 날라갔지만 그래도 배운게 많아서 뿌듯하다. (많겠지..?)


마지막 과제는 테스트 통과에만 급급해서 전체적으로 이해를 하지못했다. 그래서 아쉽다.


akka를 이용해서 뭔가를 해볼 사람들에게는 정말 추천 해주고싶은 강의다. 나도 다운받아놓고 두고두고 볼 생각이다.


다음은 코스 내용..


Week 1: Review of Principles of Functional Programming: substitution model, for-expressions and how they relate to monads. Introduces a new implementation of for-expressions: random value generators. Shows how this can be used in randomized testing and gives an overview of ScalaCheck, a tool which implements this idea.

Week 2: Functional programming and mutable state. What makes an object mutable? How this impacts the substitution model. Extended example: Digital circuit simulation.

Week 3: Futures. Introduces futures as another monad, with for-expressions as concrete syntax. Shows how futures can be composed to avoid thread blocking. Discusses cross-thread error handling.

Week 4: Reactive stream processing.  Generalizing futures to reactive computations over streams. Stream operators.

Week 5: Actors. Introduces the Actor Model, actors as encapsulated units of consistency, asynchronous message passing, discusses different message delivery semantics (at most once, at least once, exactly once) and eventual consistency.

Week 6: Supervision. Introduces reification of failure, hierarchical failure handling, the Error Kernel pattern, lifecycle monitoring, discusses transient and persistent state.

Week 7: Conversation Patterns. Discusses the management of conversational state between actors and patterns for flow control, routing of messages to pools of actors for resilience or load balancing, acknowledgement of reception to achieve reliable delivery.


'스터디 > Coursera' 카테고리의 다른 글

Functional Programming Principles in Scala  (0) 2016.08.06
Algorithms: Design and Analysis, Part 1  (0) 2015.06.27