X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=notes.txt;h=7af3f6e27fce1d08ff7cdf8a72493063b0cb1266;hb=61c219d89d10bf7dd3847232d6eed3e90bddd2fe;hp=16f2f5c0439b4377c8ed931153d5255c126e2932;hpb=1e5589cbb1518565f28a66bafd4882eec1d9acd5;p=chaz%2Ftalk-event-driven-programming-in-perl diff --git a/notes.txt b/notes.txt index 16f2f5c..7af3f6e 100644 --- a/notes.txt +++ b/notes.txt @@ -1,4 +1,9 @@ +TODO: +X Get more knowledge about the Reactor front ends. +X Throw up some examples in some slides (#5). +X Add a section at the end to get out of the weeds and put a bit ol' bow on it. + Topics: 1. Evolution of event-driven programming: @@ -13,28 +18,30 @@ X User input X Signal X Anything that can spontaneously happen in the real world. -3. How to write a modern event-loop. +3. How to write a modern event-loop (reactor style). X kernel facilities (poll, select, etc.) -4. List of already-built event loops. -- EV -- Glib +4. List of already-built reactors. +X EV +X Glib +X ... 5. Event-driven programming in Perl -- POE -- AnyEvent -- IO::Async -- Mojo::IOLoop +X AnyEvent +X IO::Async +X Mojo::IOLoop +X POE 6. Special considerations -- Exceptions in event-driven code. -- SIGPIPE, EPIPE - might have more to do with long-lived processes rather than +X Exceptions in event-driven code. +X SIGPIPE, EPIPE - might have more to do with long-lived processes rather than just event-driven programming, but still something to watch out for... +X You should almost always check the return code of your syscalls to see if they succeeded or not. 7. Promises: -- Future -- Future::AsyncAwait -- Future::Utils +X Future +X Future::AsyncAwait +X Future::Utils 8. Real-world uses for event-driven applications: - Webhooks @@ -46,16 +53,17 @@ X kernel facilities (poll, select, etc.) Other topics: X What is event-driven programming? -- Reactor: event loop that can receive multiple types of events and +X Reactor: event loop that can receive multiple types of events and demultiplex them, delivering them to appropriate handlers. - C10k problem - EDA (event-driven architecture) -- Benefits of Event-driven +X Benefits of Event-driven +X How to debug event-driven code. Traditional programs: - CGI - web server calls your program, and your program does its thing and finishes. -- filters - grep, less, sed, etc. Like a function, the program takes its input +X filters - grep, less, sed, etc. Like a function, the program takes its input and produces some output. Perl features: