Constructor chaining

21 grudnia 2009 06:29 w kategorii: pro
Tagi:
Powtarzanie kodu w kilku miejscach zwykle jest sygnałem zaniedbania i nie powinno mieć miejsca. Nawet (a może: w szczególności!) gdy kod ten jest prosty, głupi, niewymagający myślenia i będący efektem tzw. clipboard inheritance (ctrl+c, ctrl+v). Tyczy się to również konstruktorów klas. Tą część kodu łatwo jest przegapić, bo wszelakie ułatwiacze umożliwiają automatyczne ich wygenerowanie. A co jeśli mamy ich kilka? Poniższy przykład obrazuje stan, do którego NIE CHCEMY doprowadzić: 1: pu... [More]

Słowo na niedzielę, o backupie

20 grudnia 2009 11:25 w kategorii: pro
Tak prawdziwe, a często musimy się tego nauczyć... "the hard way": An untested backup strategy is no backup strategy at all! Źródło: Phil Haack.

Jakiś czas temu z dużego projektu nad którym obecnie pracuję zostały całkowicie usunięte i zaorane biblioteki Enterprise Library. I życie stało się prostsze. Wykorzystywaliśmy je jedynie do logowania i obsługi wyjątków i JAKOŚ trzeba było te funkcjonalności w systemie zachować. O ile w przypadku logowania wybór jest dość naturalny (wypasiony log4net), o tyle z wyjątkami nie było już tak "oczywiście". Na szczęście dzięki własnej fasadzie na EHAB, o której pisałem kilka miesięcy temu, n... [More]

Ostatnio natknąłem się na coś, co... blew my mind (wydymało mi umysł?). Bardzo krótko wspomniał o tym Bartek Pampuch na ostatnim MTS i utkwiło mi w pamięci, ale dopiero kilka dni temu niechcący przyjrzałem się "owemu czemuś" bliżej. Owo cuś to biblioteka Reactive Extensions (Rx) implementująca założenia programowania reaktywnego by Microsoft. Nie będę zagłębiał się w teorię czy omawianie szczegółów, ponieważ sam dopiero zacząłem skrobać powierzchnię tej megazajebistej koncepcji i post... [More]

Słowo na niedzielę, o prostocie

13 grudnia 2009 12:25 w kategorii: pro
Mądre słowa mądrego człowieka. Odnoszą się do tworzenia oprogramowania, ale pewnie nie tylko tam mają zastosowanie: Simplicity is prerequisite for reliability. Warto o tym pamiętać w programistycznym szale:). Źródło: Edsger W.Dijkstra.

Błędno-boskie sko_dev_jarzenie

11 grudnia 2009 13:27 w kategorii: pro
Czy poniższy kod nie jest doskonałym odwzorowaniem odpowiedzi na pytanie "dlaczego programiści nie pracują w Święta?"? :) 1: Observable.Timer(new DateTime(1, 12, 25)) 2: .Subscribe(x => 3: { 4: throw new Exception(); 5: }); Heh, ależ to głupie... A co to za konstrukcja? O tym wkrótce.

Własne mechanizmy uwierzytelniania w WCF

10 grudnia 2009 07:26 w kategorii: pro
Tagi:
"Bezpieczeństwo w WCF" - pojęcie takie wydaje się oklepane i opisane na wszelkie możliwe sposoby. Tyle materiałów, tyle blogów, artykułów, książek... Chciałem osiągnąć rzecz bardzo prostą, właściwie - podstawową. Zacząłem od stworzenia własnej implementacji interfejsów "tożsamości": IIdentity: 1: public class ProcentIdentity : GenericIdentity 2: { 3: public int Id; 4: 5: public ProcentIdentity(int id, string name) 6: : base(name) 7: { ... [More]

Obsługa wyjątków w usługach WCF

8 grudnia 2009 06:27 w kategorii: pro
Tagi: ,
Projektanci WCF zostawili w swoim produkcie bardzo dużo półprzymkniętych furtek czekających tylko na odkrycie i wykorzystanie ich potencjału. Jednym z takich czarodziejskich otworów do przyjemnego, różowego, miękkiego wnętrza WCF jest infrastruktura Behaviors (więcej o, między innymi, nich, na przykład w artykule "Extending WCF with Custom Behaviors"). Z ich pomocą można osiągnąć baaardzo wiele, między innymi: w niesamowicie elegancki sposób zebrać w jednym miejscu wszystkie błędy wyge... [More]

Ostatnio było banalnie. Dziś słowa osoby niezwiązanej właściwie z informatyką, ale nadające temu banałowi głębszy sens. you can go complaining about how you lack passion (...) passion is something that likes to be conquered Źródło: "Night of the Living Dead" by Julia Marcell

Własna implementacja WCF Proxy

3 grudnia 2009 06:27 w kategorii: pro
Tagi: ,
Podczas korzystania z WCF najprostszą drogą do wywołania metody udostępnianej przez jakąś usługę jest pozwolenie Visual Studio na wygenerowanie odpowiedniego proxy, stworzenie jego instancji... i już - mamy metody usługi do dyspozycji. Bez wysiłku, bez kodu... bez sensu? O tym, dlaczego takie podejście NIE jest wyborem słusznym, rozpisywać się nie będę. Zainteresowanych argumentami "przeciw" odsyłam do fajnego artykułu autorstwa Miguela Castro na Code-Magazine: "WCF the Manual Wa... [More]

Jak potrafi naśmiecić przemęczona mózgownica

1 grudnia 2009 06:50 w kategorii: pro
Tagi: ,
Jakiś czas temu pod koniec jednego z programistycznych rajdów od świtu do świtu pojawiło się zapotrzebowanie na funkcjonalność "masz tu liczbę i zwróć X jej ostatnich cyfr w postaci stringa;  w razie potrzeby wypełnij jego początek zerami". Wydaje się banalne i byłem pewny, że w ciągu kwadransa załatwię to odpowiednim formatowaniem integera. Po półtorej godziny (sic!) lektury MSDN, różnych blogów i popełniania głupich eksperymentów nadal byłem w kropce. Jest to szczególnie irytuj... [More]