wtorek, stycznia 25, 2011

Do 3 razy sztuka ;-)

Właśnie skończyłem implementować w Bloggeroidzie "ficzer" polegający na tym, że w razie niepowodzenia operacje sieciowe będą powtarzane. Dokładniej, operacja związana z siecią zostanie zakończona gdy się uda, albo gdy 3 razy się nie uda, ale wtedy wyrzuci wyjątek związany z ostatnią przyczyną niepowodzenia.
Szczerze to trochę już sieciowych rzeczy robię i zwykle jechałem na optymistycznym założeniu, że zadziała i zwykle działało ;-)
W mobile tak dobrze nie jest, bo co jakiś czas dostaję raporty o błędach, które zwykle znikają gdy się spróbuje po raz 2.

Oczywiście istnieją obawy, ba nawet pewność, że skutkiem tego może być to, że niektóre operacje choć będą generowały błędy to będą się udawały... i skończy się na tym, że czasem zamiast 1 postu opublikują się 3 o tej samej treści ;-)

No i jest jeszcze to, że niektóre błędy, np. taki który jest związany z tym, że by móc skorzystać z Picasa Web Albums to trzeba zatwierdzić ich Terms Of Service, pojawi się na pewno za każdym razem z 3 prób i trochę głupio 3 razy próbować gdy wiadomo jaki będzie efekt ;-)

W ogóle w pisaniu często obsługa właśnie sytuacji wyjątkowych to przysłowiowy "pain in the ass", bo w 99% przypadków wszystko działa perfect, ale trzeba się przygotować na sytuacji, które nie powinny się zdarzyć i trzeba jeszcze starać się je ukryć przed użytkownikiem, bo dla niego problem z serwerem czy siecią to nie problem z serwerem czy siecią, a problem ze "źle napisaną aplikacją".
A jak już jest tak, że np. publikując post ze zdjęciami najpierw trzeba wrzucić zdjęcia, a później sam post to jest problem co zrobić jeśli pierwsze się uda, a drugie nie? ;-) Najzdrowiej byłoby wrócić do stanu sprzed operacji, ale to oznacza kolejne ataki serwerów i istnieje ryzyko, że to iż nie udała się ostatnia operacja może być związane z siecią, a wtedy próby kasowania się zapewne nie udadzą ;-)


Podobne postybeta
Niehackerski dzień ;-)
Google ma dziś zły dzień? ;-)
Nie inicjalizuj rozmiaru kolekcji...
Podwójne standardy - Tybet a Arabia Saudyjska.
Język Go dla Windows :-)