Gio is developer with a passion for testing and infrastructure, focused on iOS development, and blogs about these and other topic on http://mokacoding.com
He loves learning new things and has recently picked up Haskell, and speed-cubing. In his spare time he likes to swim and read about cosmology.
If you talk with him, it won’t be long before he’ll mention his love for Teenage Mutant Ninja Turtles.
YOW! West 2016 Perth
Super Testable Code using Functional Reactive Programming
Looking at a software from the point of view of its unit tests often provides great insights on the architecture and the point of frictions.
A common issue in unit tests is the overuse of mocks and stubs. This most often caused by a design where objects have too many responsibilities and/or dependencies, and side effects. The components of such a system are hard to test, hence the need for mocks.
In contrast with such objects, code that uses concepts from the functional programming world such as immutability and pure functions is easier and safer to test.
Such functional code can be used to write highly testable and easy to work with application, with the help of functional reactive programming frameworks like ReactiveCocoa or RxSwift. This is the concept of “functional core, reactive shell”.
Software written in such way might look unconventional, and has a bit of a learning curve. The talk is to show that the advantages it brings make it a viable choice.