]> Dogcows Code - chaz/talk-event-driven-programming-in-perl/blob - notes.txt
add more slides on Future
[chaz/talk-event-driven-programming-in-perl] / notes.txt
1
2 Topics:
3
4 1. Evolution of event-driven programming:
5 X Wait for a key press or line of text.
6 X Interrupts (hardware and software).
7 X Modern event loops
8
9 2. Types of events in modern applications:
10 X IO
11 X Timer
12 X User input
13 X Signal
14 X Anything that can spontaneously happen in the real world.
15
16 3. How to write a modern event-loop (reactor style).
17 X kernel facilities (poll, select, etc.)
18
19 4. List of already-built reactors.
20 X EV
21 X Glib
22 X ...
23
24 5. Event-driven programming in Perl
25 - AnyEvent
26 - IO::Async
27 - Mojo::IOLoop
28 - POE
29
30 6. Special considerations
31 X Exceptions in event-driven code.
32 X SIGPIPE, EPIPE - might have more to do with long-lived processes rather than
33 just event-driven programming, but still something to watch out for...
34 X You should almost always check the return code of your syscalls to see if they succeeded or not.
35
36 7. Promises:
37 X Future
38 X Future::AsyncAwait
39 X Future::Utils
40
41 8. Real-world uses for event-driven applications:
42 - Webhooks
43 - PubsubHubbub
44 - msg queue
45
46
47
48
49 Other topics:
50 X What is event-driven programming?
51 - Reactor: event loop that can receive multiple types of events and
52 demultiplex them, delivering them to appropriate handlers.
53 - C10k problem
54 - EDA (event-driven architecture)
55 X Benefits of Event-driven
56 X How to debug event-driven code.
57
58 Traditional programs:
59 - CGI - web server calls your program, and your program does its thing and
60 finishes.
61 X filters - grep, less, sed, etc. Like a function, the program takes its input
62 and produces some output.
63
64 Perl features:
65 - first-class subroutines
66
67 - Can mix traditional architecture with event-driven (like docker that
68 provides both an http and command-line interface.
69
This page took 0.035504 seconds and 4 git commands to generate.