Programmering

Fodbold som en webservice

Hver søndag får jeg en flok fyre sammen for at se fodbold. På baggrund af mine skarpe tekniske færdigheder brugte jeg en serviceorienteret tilgang til at oprette disse sammenkomster.

For eksempel lader jeg alle disse fyre bruge mit badeværelse, så jeg tager et universelt tillidsforhold for givet. Hver fyr sætter sin snackskål og drikker kopper på et fælles sofabord af glas. Anmodninger håndteres på en ensartet, forudsigelig måde, som webtjenestegrænseflader skal gøre.

Tag plads. Jeg havde en sofa, en hvilestol og en pude i min hule, men det præsenterede for mange mulige siddekategorier - datatyper, hvis du vil - til at administrere. Så jeg flyttede de bløde sæder til stuen, og nu er et sæde et sæde. En anmodning om et sæde er opfyldt med en foldestol af stål.

Min snackgrænseflade er lige så enkel - en skål hver med deling efter anmodningens skøn - selvom jeg reviderede den for at give opkaldere mulighed for at specificere Atkins-kompatible eller Atkins-go-to-hell-snacks, hvor standard er sidstnævnte.

Dette arrangement har fungeret problemfrit hver sæson. Men sidste søndag havde en audio / video-entreprenør travlt i hulen ved at installere et nyt projektions-tv, teatersæde og surround sound ('S seneste anerkendelse af mit stjernearbejde). Så jeg flyttede festen til stuen.

Det var et nyt implementeringsscenarie, men mine enkle, standardiserede protokoller og datatyper ville gøre omplacering til en film - eller så tænkte jeg. Hvilken ulykke. Jeg lærte, at jeg havde designet mine fodboldfesttjenester til at være så isolerede fra deres implementeringsmiljø, at de kun tilpassede sig på papir.

Dwayne ser ikke så godt, så vi var nødt til at scoot sofaen nærmere og give ham det bedste sæde. Derefter kunne to fyre i de ydre sæder ikke se, så jeg flyttede dem til et kærlighedsstol bag sofaen. En fyr gik på gulvet. Earl trak tv-bakken tæt på sig og tog sin søde tid på at give skåle og drikkevarer til og fra "hans bord." Og alle skændtes om, hvem der fik et blødt sæde, og hvem der fik en foldestol.

Det var klart, at jeg stod over for et redesign. Men uanset hvilken løsning jeg oprettede, vil det sandsynligvis bryde igen (ikke funktionelt, men praktisk talt), når vi bevæger os ind i Auditorium.

Det viser sig, at den rigtige ting at gøre var at spørge min kone. Hun er en begivenhedsplanlægger af handel. Hun smal, da jeg satte Earl ved siden af ​​tv-bakken, fordi hun vidste, at han var der for at spise, ikke for at se. Hun vidste, at Dwaynes egenskaber gjorde midten af ​​sofaen til en god placering for ham, men en dårlig for alle andre.

Mens jeg vred mine hænder over ondt i undtagelsestilfælde, forklarede hun, at al begivenhedsplanlægning tager højde for lokalet, men alligevel er fleksibel nok til at håndtere en ændring af placering en time før kickoffet, som det var. Det er upraktisk at ændre en begivenhed, mens den er i gang, men hun skriver ned, hvad der fungerer, og hvad der ikke fungerer ved hver begivenhed, og bruger den viden til at skabe masterplaner, der gradvist er mere tilpasselige.

Webtjenester arkitekturer er ikke anderledes. Overholdelse af standardprotokoller og datatyper er fint, men det betyder ikke, at det er fornuftigt at tvinge en firkantet pind i et rundt hul.

Jeg tænkte ikke engang på det i mit spil-fest design. Hver søndag blev jeg nødt til at foretage det første opkald til sæde-, snack- og drikkegrænsefladerne. Fra mit udsigtspunkt var mit design perfekt hver uge.