A SkillsCast for this session is not available.
We live in connected world, powered by countless thousands of loosely-coupled distributed systems. As developers, we're working in an age where you can do almost anything by connecting to APIs. You can pay bills, order pizza, print T-shirts, publish videos... the entire internet is our digital Lego set, and we're only an HTTP call away from the most astonishing network of data and services that's ever existed. Sounds exciting, doesn't it? And it is... right up until the point where something doesn't work. And when it fails, it's probably failed because we've fallen victim to one of the fallacies of distributed computing. When your application's relying on half-a-dozen external services, data feeds and cloud providers, there's a lot more to scalability and performance than just prefetching your data and unrolling your while() loops.
As distributed systems become more complex, we are discovering new development patterns that help us create and maintain these distributed systems, and the most significant pattern of the last ten years has been the widespread adoption of asynchronous programming. From continuation passing, to JavaScript callbacks, to ES6 promises and the async/await operators in C# and .NET, most of our day-to-day development languages now have first-class support for asynchronous programming patterns - and if you've not worked with them before, you can find the learning curve a little daunting.
In this workshop we'll discuss the origins and applications of asynchronous programming, and how it relates to underlying concepts like OS threads and parallel computation. We'll look at how the asynchronous features of various development platforms have evolved, from modules to libraries to language keywords, and we'll look at how - and when - you can apply these patterns in your own projects to deliver responsive applications and great user experience even when your app is spending 90% of its time waiting for responses from external services.
YOU MAY ALSO LIKE:
- Have I Got .NET For You?! (SkillsCast recorded in September 2019)
- Advanced JavaScript Workshop with Damjan Vujnovic (Online Course on 8th - 12th February 2021)
- Functional Concurrency in .NET with C# and F# with Riccardo Terrell (Online Course on 8th - 11th March 2021)
- FullStack eXchange 2021: The Conference on JavaScript & Node (Online Conference on 21st - 22nd July 2021)
- F# for a Real World E-commerce Project (SkillsCast recorded in October 2020)
- Nagareyama: a new Fable, faster, more powerful and easier to use (SkillsCast recorded in October 2020)
The Asynchronous Age: A Developer's Illustrated Primer
Dylan Beattie
Dylan Beattie is a systems architect, developer, and Microsoft MVP, who has built everything from tiny standalone websites to large-scale distributed systems. He created his first web page in 1992, and he's been building data-driven interactive web applications since the days of Windows NT 4. He's currently the CTO at Skills Matter in London, where he juggles his time between working on their software platform and supporting their conference and community teams. From 2003 to 2018, Dylan worked as webmaster, then IT Manager, and then systems architect at Spotlight (www.spotlight.com), where his first-hand experience of watching an organisation and its codebase evolve over more than a decade provided him with a unique insight into how everything from web standards and API design to Conway's Law and recruitment ends up influencing a company’s code and culture.