Come join Alex Brown and Dylan Beattie at this month's LDNUG meetup! Alex will be talking about mashing monoliths into manageable modules with Mediatr, and Dylan will talk about the Pursuit of APIness. Don't miss it!
We spend our lives working with systems created by other people. From the UI on our phones to the cloud infrastructure that runs so much of the modern internet, these interactions are fundamental to our experience of technology - as engineers, as developers, as users - and user experiences are viral. Great user experiences lead to happy, productive people; bad experiences lead to frustration, inefficiency and misery.
Whether we realise it or not, when we create software, we are creating user experiences. People are going to interact with our code. Maybe those people are end users; maybe they're the other developers on your team. Maybe they're the mobile app team who are working with your API, or the engineers who are on call the night something goes wrong. These may be radically different use cases, but there's one powerful principle that works across all these scenarios and more. In this talk, we'll draw on ideas and insight from user experience, API design, psychology and education to show how you can incorporate this principle, known as discoverability, into every layer of your application. We'll look at some real-world systems, and we'll discuss how discoverability works with different interaction paradigms. Because, whether you're building databases, class libraries, hypermedia APIs or mobile apps, sooner or later somebody else is going to work with your code - and when they do, wouldn't it be great if they went away afterwards with a smile on their face?
Dylan Beattie is a systems architect and software developer, who has built everything from tiny standalone websites to large-scale distributed systems. By day, he’s the systems architect at Spotlight (www.spotlight.com), where he works on HTTP APIs, distributed systems, and the architectural challenges of delivering cutting-edge online services in a company with nearly ninety years of legacy. He’s been working with Spotlight since 2000, and his first-hand experience of watching an organisation - and their code - evolving over more than a decade has given him a unique insight into how API design, distributed systems, Conway's Law, working with legacy systems, and recruitment can all influence a company’s products and culture. Alongside his work at Spotlight, Dylan is actively involved in the software development community. He’s involved in running the FullStack and Progressive.NET conferences, and frequently speaks at conferences in the UK and around Europe about software architecture and development culture.
In this talk, Alex shows us how to progress from the traditional repository / service layered architecture into a Command Query Separated structure and benefit from smaller, testable bits of code in your application. We'll take a look at what a typical monolith looks like - you've probably got some in your codebase already. Then we'll talk about how we could improve this, using CQS, facilitated by Mediatr. Finally, we'll take an existing application, which uses a typical repository / service architecture, and begin to break this out into commands and queries, and see immediate reward.
Alex Brown is a C# developer with a strong interest in writing as little (tested) code as possible to get the job done - done done. He's spent the last 4 years of his 12 year career as a contractor, working on some interesting and challenging projects, both green and brown field. He's currently working at Brightstarr, building a deployable intranet solution, utilising Hangfire, SignalR, Azure and all that other good stuff. He's online at alexjamesbrown.com and on Twitter as @alexjamesbrown