Po tej prezentacji będziesz mógł/a odróżnić kod funkcjonalny od niefunkcjonalnego i zrefaktorować własne metody, by spełnić wymagania funkcjonalnego kodu i czerpać z niego korzyści!
2. Piotr Wiśniowski
Data Engineer at Scalac with a scientific
background. Interested in:
● the newest algorithms,
● solving tough problems,
● architecture solutions
Also, an avid traveler, hiking fan and
sailor.
3. Scalac
● Backend / Architecture
● Frontend / User Interface
● Devops / Infrastructure
● Data Engineering / Data
Science
● Quality Assurance
● Project Management
8. Why Go Functional?
● Avoid confusing corner
cases
● Avoid code errors
● Data processing
● Concurrent processing
● High-critically systems
● Not hard or difficult!
● Test-driven development
18. Benefits
● No state!
● Invert control - caller
always have control over
callee
● Test applications easily
● Read programs easily
● Refactor code without
changing meaning or
behavior
● Reason about program
by using types
19. You lose nothing from OOP
● Single responsibility
● Open-closed
● Substitutability
● Interface segregation
● Dependency inversion
28. Future reading
● John De Goes - FP to the Max video
https://www.youtube.com/watch?v=sxudIMiOo68&t=1664s
● Learn libraries like Cats or Scalaz
https://typelevel.org/cats-effect/api/cats/effect/IO.html
● Monads, Comonads, Profunctors, Operads, Fibrations etc.