Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und...

23

Transcript of Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und...

Page 1: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software
Page 2: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software Craftsmanship Specification by Example und

Domain-Driven Design Facilitation von Code Retreats und

Legacy Code Retreats

Page 3: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

Michael Sperber

• funktionale Programmierung

• Scala, Clojure, F#, Haskell, OCaml, Erlang, Elixir, Swift

• Schulungen und Coaching

• Blog: funktionale-programmierung.de

• Entwickerkonferenz BOB bobkonf.de

Page 4: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

https://www.arbornetworks.com/blog/asert/mirai-iot-botnet-description-ddos-attack-mitigation/

Page 5: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

http://heartbleed.com/

HeartBleed

Page 6: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

CloudBleed

Page 7: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

WannaCry

Page 8: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

http://wp.doc.ic.ac.uk/riapav/wp-content/uploads/sites/28/2014/05/HACMS-Fisher.pdf

Page 9: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

Korrekte Software

Mehr Tests!

Page 10: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

Intel Pentium, FDIV-Bug

Page 11: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

Typen

Page 12: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

http://projects.laas.fr/IFSE/FMF/J3/slides/P05_Jean_Souyiris.pdf

Page 13: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

Tools

• Coq • Isabelle • Agda • Idris

• ATS • F* • ACL2 • Liquid/Dependent Haskell

Page 14: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

Eigenschaften

xs = rev (rev xs)

rev [x] = [x]

rev (append xs1 xs2) = append (rev xs2) (rev xs1)

∀xs: List a

Page 15: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

Algebra

Page 16: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

Eigenschaften

Everywhere

Page 17: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

http://www.russinoff.com/papers/paris.ps

Page 18: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software
Page 19: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software
Page 20: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

https://sel4.systems/

Page 21: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software
Page 22: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

Tomorrow?

(International Conference on Functional Programming, 2000)

Page 23: Objektorientierte und funktionale Softwareentwicklung · 2017-05-23 · Objektorientierte und funktionale Softwareentwicklung Refactoring von Java Legacy Code Clean Code und Software

Today!