|
78 | 78 | } |
79 | 79 | ◊ul[#:class "list-disc list-inside mx-2 my-4 sm:text-lg leading-relaxed"]{ |
80 | 80 | ◊li{18.45 Doors open & Welcome} |
81 | | - ◊li{Really Functional Data Structures (Marvin)} |
| 81 | + ◊li{◊strong{Really Functional Data Structures} (Marvin)} |
82 | 82 | ◊p[#:class "ml-10 my-2 italic text-base"]{ |
83 | 83 | Last time, David showed us functional data structures in the form of persistent data structures. In this talk, I want to show you data structures that are defined entirely by functions themselves - no classes, structs, bitmaps, etc.! Knowing about such structures not only tickles the brain, but can also lead to a better intuition for solving problems functionally. Furthermore, one of the data structures shown can be used for space-efficient encodings of fractals and fun animations. |
84 | 84 | } |
85 | 85 | ◊li{Short break} |
86 | | - ◊li{Talk 2 (maybe you?)} |
87 | | - ◊; ◊p[#:class "ml-10 my-2 italic text-base"]{ |
| 86 | + ◊li{◊strong{Decoupled by Default – Funktionale Programmierung in der Softwarearchitektur} (Markus)} |
| 87 | + ◊p[#:class "ml-10 my-2 italic text-base"]{ |
| 88 | + |
| 89 | + Kopplung – das Maß der Abhängigkeiten zwischen Modulen – ist das |
| 90 | + zentrale Konzept der Softwarearchitektur. Die herkömmliche Sicht auf |
| 91 | + Kopplung ist die, dass hohe Kopplung dann entsteht, wenn man nicht |
| 92 | + aufpasst beim Programmieren: wenn man ◊em{nicht} gegen explizite |
| 93 | + Schnittstellen programmiert, wenn man ◊em{kein} Visitor-Pattern |
| 94 | + verwendet, wenn man ◊em{nicht} Dependency Injection verwendet … |
| 95 | + Kopplung, so scheint es, ist das Resultat von Unterlassung. Die |
| 96 | + Kopplung wieder zu senken, erfordert dann ausdrückliche |
| 97 | + Gegenmaßnahmen. Dieser Vortrag zeigt eine alternative Sichtweise: |
| 98 | + Viele Arten von Kopplung entstehen aufgrund von Unzulänglichkeiten der |
| 99 | + Programmiersprache. In funktionalen Sprachen treten diese |
| 100 | + Kopplungsarten teilweise gar nicht auf oder zumindest ist die |
| 101 | + Werkseinstellung dieser Sprachen dergestalt, dass Kopplung vermieden |
| 102 | + wird. Das zeigen wir im Vortrag insbesondere mit Blick auf den Umgang |
| 103 | + mit geteiltem Zustand und Plattformabhängigkeiten. Am Ende zeigen |
| 104 | + wir, dass auch funktionale Programmierer nicht automatisch vor allen |
| 105 | + Arten unnötiger Kopplung sicher sind. Wir zeigen, wie der Ansatz des |
| 106 | + Denotational Design dort Abhilfe schaffen kann, indem die Semantik von |
| 107 | + Schnittstellen in den Vordergrund gerückt wird. |
88 | 108 |
|
89 | | - ◊; } |
| 109 | + } |
90 | 110 | ◊li{Food, talking, coding, whatever} |
91 | 111 | ◊li{22.00 End} |
92 | 112 | } |
|
0 commit comments