Azure / Azure/durabletask

[DCR] Strongly Type CreateOrchestrationInstanceAsync

Offen
#342 3 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
C#
Sterne
1.7k
Forks
335
Ø Merge
2 T. 23 Std.
Gemergte PRs (30 T.)
6

Beschreibung

I think it'd be a good exercise to see what it would take to change our `object` overloads to generic ones so we can more strongly-type the developer experience instead of having to rely on boxing/unboxing.

In Durable Functions, we're [now strongly-typing our calls to `StartNewAsync`](https://github.com/Azure/azure-functions-durable-extension/commit/8446057cee423b9b652e3e34e99ca73fd45415a6) which hits these APIs underneath, but unfortunately this still results in boxing/unboxing and [forces us to take reference types](https://github.com/Azure/azure-functions-durable-extension/blob/master/src/WebJobs.Extensions.DurableTask/ContextInterfaces/DurableContextExtensions.cs#L430) vs accepting all types (e.g. `int`) which [has caused some confusion for developers](https://github.com/Azure/azure-functions-durable-extension/issues/1056)

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne damit, die object-Überladungen von CreateOrchestrationInstanceAsync und die APIs darunter in DurableContextExtensions.cs nachzuverfolgen. Vergleiche ihr Verhalten mit den im Issue beschriebenen stark typisierten Aufrufen von StartNewAsync, einschließlich Werttypen wie int. Als erledigt gilt die Aufgabe, wenn die unterstützten Überladungen starke Typisierung bieten, ohne Referenztypen oder Boxing/Unboxing zu erfordern, und das betroffene Verhalten durch die relevanten Tests des Repositorys verifiziert ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp
Bereich
backend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.