X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=notes.txt;h=7af3f6e27fce1d08ff7cdf8a72493063b0cb1266;hb=HEAD;hp=0d32c72821b78cfa6b92dd54fbd93df17c9fa3a3;hpb=fa698f7b8f498a04b0394f5cadc2cadf0a6fb21a;p=chaz%2Ftalk-event-driven-programming-in-perl diff --git a/notes.txt b/notes.txt index 0d32c72..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,29 +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... -- You should almost always check the return code of your syscalls to see if they succeeded or not. +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 @@ -47,17 +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 -- How to debug event-driven code. +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: