speakerconf: my findings in trying to use this functional programming business you guys keep talking...
TRANSCRIPT
![Page 1: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/1.jpg)
Wednesday, August 8, 12
![Page 2: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/2.jpg)
my findings in trying to use this functional
programming business you guys keep talking about
phil calçado@pcalcado
http://philcalcado.com
#speakerConf München
Wednesday, August 8, 12
![Page 3: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/3.jpg)
are tests good design aid for programming with pure-ish functions?
my question:
Wednesday, August 8, 12
![Page 4: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/4.jpg)
“dafuq? just use [Quick|Scala]Check LOL”
asking the FP community
“reason about your code or do not reason about your code,
there is no try”
Wednesday, August 8, 12
![Page 5: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/5.jpg)
silly example:we have iOS push notifications; let’s introduce android
Wednesday, August 8, 12
![Page 6: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/6.jpg)
written w/o tests
Wednesday, August 8, 12
![Page 7: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/7.jpg)
writing some tests
Wednesday, August 8, 12
![Page 8: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/8.jpg)
making it pass
Wednesday, August 8, 12
![Page 9: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/9.jpg)
introducing android
Wednesday, August 8, 12
![Page 10: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/10.jpg)
“Every function should have:- A single specific purpose- If possible, a generally useful purpose- A meaningful name- A structure that is simple to understand - An interface that is simple yet general enough”
Peter Norvig, Good Lisp Programming Style - http://bit.ly/u6JTPt
Wednesday, August 8, 12
![Page 11: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/11.jpg)
other findings
Wednesday, August 8, 12
![Page 12: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/12.jpg)
functional vs. object impedance happens all the
time
other findings
Wednesday, August 8, 12
![Page 13: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/13.jpg)
Wednesday, August 8, 12
![Page 14: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/14.jpg)
1) give up “functional” stages2) object-functional mapping
layer
stages must interact with ruby libs. options:
Wednesday, August 8, 12
![Page 15: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/15.jpg)
there is something going on between category theory and software engineering*
* you know, the fairly anecdotal body of knowledge we use
other findings
Wednesday, August 8, 12
![Page 16: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/16.jpg)
more types = less typingother findings
Wednesday, August 8, 12
![Page 17: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/17.jpg)
more types = less typingother findings
ORLY? howmuch less?
Wednesday, August 8, 12
![Page 18: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/18.jpg)
how much of testing as design aid can static
typing replace?
next question:
Wednesday, August 8, 12
![Page 19: SpeakerConf: my findings in trying to use this functional programming business you guys keep talking about](https://reader033.vdocuments.mx/reader033/viewer/2022052823/555278e4b4c905115b8b48d9/html5/thumbnails/19.jpg)
phil calçado
http://philcalcado.com@pcalcado
www.soundcloud.com
Wednesday, August 8, 12