No video

Managing External API’s in Enterprise Systems - Peter Muldoon - ACCU 2023

  Рет қаралды 850

ACCU Conference

ACCU Conference

Күн бұрын

ACCU Membership: tinyurl.com/yd...
accu.org
www.accuconfer...
Managing External API’s in Enterprise Systems - Peter Muldoon - ACCU 2023
Slides: accu.org/conf-...
Taking a real world application, it is shown how to properly encapsulate external APIs to protect the system and use modern idioms. How to manage changing requirements including decommissioning of old functionality in the real world. How abstractions can be a powerful absorber of change to limit the impact of changes on a production codebase.
Many codebases use external libraries and wrap their associated API's for application use. Once these external dependencies are entrenched and widely used in your system even small changes in the use of these external APIs can force sweeping changes across your codebase.
This presentation will take an example request API and demonstrate using sound engineering choices how to encapsulate it to provide a more efficient modern interface i.e. move-only results, futures/promise instead of callbacks, void pointers etc.
After showing the use of this API, new requirements will now emerge that require new source data from the API potentially causing large scale code changes with branching required for a gradual transition from the old data source to the new source is rolled out.
We will explore various techniques to preserve the global calling semantics and introduce localized decoupling so wide spread code changes are not needed. How abstractions can be a powerful absorber of change that limit the impact of changes on a production codebase. These codes changes are then transparent to the original callers of the API hence no calling code changes are needed. This approach will then be expanded to apply the same engineering techniques to the unit & system testing code. The final decommissioning and removal of the old code is explored and shown now to be simple and straight forwards.
Additional real world problems are then incorporated like batching, parallelization while again localizing code changes on the migration path.
This prioritizing of the migration path for introducing API use changes will lead to a novel perspective for the next time your codebase has external dependency changes imposed on it from within or without.
This is all backed up with code examples. This alternative approach has being successfully employed for real world situations in Bloomberg.
---
Peter Muldoon
Pete Muldoon has been using C++ since 1991. Pete has worked in Ireland, England and the USA and is currently employed by Bloomberg as an Engineering Lead. A consultant for over 20 years prior to joining Bloomberg, Peter has worked on a broad range of projects and code bases in a large number of companies both tech and finance. Such broad exposure has, over time, shown what works and what doesn't for large scale engineering projects. He's a proponent of elegant solutions and expressive code.
---
KZfaq Videos Filmed, Edited & Optimised by Digital Medium: events.digital...
#accuconf #programming #api

Пікірлер: 2
@SimonToth83
@SimonToth83 Жыл бұрын
I don't quite follow how the future + immediate get is any better than the blocking send. Presumably the blocking send isn't a busy loop, it will also suspend this thread and let something else run until the response arrives.
@petermuldoon5751
@petermuldoon5751 Жыл бұрын
At timepoint 16:08 , 16:58 in the video, I address this. Actions are dispatched in concurrent co-routines and if the future.get() is not ready, that co-routine is put to sleep and another co-routine that's ready will be serviced. At some point when the original co-routine has a response, it will be serviced by a thread. This allows for massive parallel fanout of concurrency for many individual actions
C++ Linkers and the One Definition Rule - Roger Orr - ACCU 2024
1:22:57
ACCU Conference
Рет қаралды 1,6 М.
Running With Bigger And Bigger Feastables
00:17
MrBeast
Рет қаралды 134 МЛН
黑天使遇到什么了?#short #angel #clown
00:34
Super Beauty team
Рет қаралды 43 МЛН
Get 10 Mega Boxes OR 60 Starr Drops!!
01:39
Brawl Stars
Рет қаралды 16 МЛН
Harley Quinn's plan for revenge!!!#Harley Quinn #joker
00:49
Harley Quinn with the Joker
Рет қаралды 33 МЛН
Creator of git, Linus Torvalds Presents the Fundamentals of git
1:10:15
Developers Alliance
Рет қаралды 80 М.
WebRTC Crash Course
1:10:06
Hussein Nasser
Рет қаралды 226 М.
"I Got Rich When I Understood This" | Jeff Bezos
8:14
Business Motiversity
Рет қаралды 11 МЛН
The Next Decade of Software Development - Richard Campbell - NDC London 2023
1:07:05
Making A Billion-Year Lego Clock
13:11
Brick Technology
Рет қаралды 7 МЛН
I broke the 1/4-mile world record in this new HYPERCAR!
26:16
Running With Bigger And Bigger Feastables
00:17
MrBeast
Рет қаралды 134 МЛН