W 25 odcinku DevTalk wracamy do tematu architektury. Tym razem moim Gościem jest Szymon Kulec: programista, blogger, prelegent i jeden z liderów Warszawskiej Grupy .NET. Na Twitterze: @scooletz. Dyskutujemy o Event Driven Architecture. Z odcinka dowiecie się czym jest EDA, o jakich zdarzeniach mowa i jak z nich korzystać. Do tego: jak ma się do tego CQRS i Event Sourcing, na czym polega eventual consistency oraz jak obsługiwać/przetwarzać zdarzenia? I… oczywiście, wiele więcej :). Zapraszam do słuchania...
Strona głównaUżytkownik
moody19871987 | użytkownik
Architektura 3285 dni, 7 godzin, 30 minut temu 206 źrodło rozwiń
Bardzo często tworzymy osobne usługi, które dostarczają jakieś dane. Pisząc aplikacje ASP.NET Web nierzadko chcemy korzystać z zewnętrznych usług, zamiast hostować dane w tym samym projekcie. Niestety może to spowodować problemy, jeśli chcemy skonsumować usługę w JavaScript, a należy ona do innej domeny. Załóżmy, że mamy jakąś usługę REST. Dla testów posłużyłem się http://www.mocky.io. Polecam tą stronę, można generować tam własne “mocki”. Dla tego wpisu stworzyłem mock, który zwraca następującą treść ...
Programowanie rozproszone 3428 dni, 2 godziny, 56 minut temu 189 źrodło rozwiń
Przemysław Walkowski Parę linijek kodu, proste pytanie co ten kod robi lub gdzie jest błąd. Nazywam to zagadkami. Czasem nawet 5 lat doświadczenie nie wystarczy aby odpowiedzieć prawidłowo na tego typu pytania. Poniżej lista paru zagadek, które zebrałem w jednym miejscu. Osobiście zawsze gdy idę na rozmowę o pracę mam ze sobą swoją zagadkę, w razie gdybym nie odpowiedział na którąś zadaną mi przez rekrutera. Robię to po to aby pokazać, że zagad...
Sztuka programowania 3541 dni, 22 godziny, 47 minut temu 1418 źrodło rozwiń
W dzisiejszym wpisie pokażę dosyć mało znaną konstrukcję TOP…WITH TIES. Muszę przyznać, że sam trafiłem na nią całkiem niedawno mimo, iż była ona dostępna już w SQL Server 2000.
Bazy danych i XML 3698 dni, 13 godzin, 29 minut temu 293 źrodło rozwiń
Tyle się mówi o rozwoju programistów. Ba, sam o tym często gadam. Że to dobre, że trzeba, żeby nie stać w miejscu a iść do przodu… Ale powiedzcie mi: jak ma się rozwijać programista w typowym programistycznym polskim (i pewnie nie tylko) dev-kołhozie? Przychodzi do roboty, siada do projektu, po 8h wstaje i wychodzi. Niby normalka, ale… niekoniecznie. Moim zdaniem kluczowe jest pytanie: do jakiego projektu ten pr...
Wstęp do zagadnień związanych z optymalizacją i mierzeniem wydajności zapytań SQL. Jest to fragment darmowego kursu pisania zapytań SQL opisującego proces przetwarzania kwerend przez silnik bazodanowy.
Bazy danych i XML 3682 dni, 15 godzin, 34 minuty temu 475 źrodło rozwiń
Trafiłem ostatnio na tekst o nadużywaniu var. Przede wszystkim zafrapowało mnie użycie pojęcia „nadużywanie„, bo sugerowało, że podczas tworzenia kodu należałoby (oprócz wielu reguł) brać jeszcze pod uwagę czy danej konstrukcji nie używa się zbyt często (czyli nadużywa). Tylko jakie w takim razie powinno być kryterium umożliwiające stwierdzenie, czy coś jest nadużyciem, czy nie? Czy jeśli ...
Sztuka programowania 3817 dni, 22 godziny, 30 minut temu 345 źrodło rozwiń
Dlaczego programiści nie odchodzą skutecznie? Inspiracją do tego tekstu jest artykuł pod niewątpliwie bardzo ciekawym tytułem "Dlaczego programiści odchodzą?". Niestety na nośnym tytule się skończyło, bo treść jest już nieadekwatna - opiera się na wideo prezentacji Pana z innej bo nie polskiej rzeczywistości, a wszystko przetworzone na polski przez młodego pracowitego człowieka, który staje się szefem i widzi ten amerykański "big picture" dla polsk...
W ostatnich postach opisuje różne mechanizmy synchronizacji w c#. Jak widać, jest tego na prawdę wiele i sama znajomość słowa lock nie wystarcza jeśli poważnie myśli się o algorytmach współbieżnych. Dziś kolejna metoda synchronizacji a mianowicie klasa CountdownEvent. Ostatnie posty oprócz wprowadzenia do wspomnianych klas stanowią wstęp do kolekcji współbieżnych, które zamierzam omówić wkrótce. Konstruktor CountdownEvent przyjmuje liczbę całkowita (zwykle większą od 0), która stanowi wartość początkową...
Sztuka programowania 4538 dni, 3 godziny, 29 minut temu 113 źrodło rozwiń
Raven DB to dokumentowa baza danych, przedstawiciel trendu NoSQL, opracowana przez Ayende i jego zespół. Całkiem niedawno bo w październiku 2011 Ayende był zresztą w Polsce i opowiadał o swoim dziecku. Kilka miesięcy temu w jednym ze swoich pet project postanowiłem zmienić technologię dostępu do danych i wybór padł właśnie na Raven DB. Kilka słów wstępu Projekt ten to program LanguageTrainer wspomagający naukę słówek. Pomysł jego napisania narodził się ponad rok temu kiedy "ponownie" rozp...
Bazy danych i XML 4666 dni, 22 godziny, 58 minut temu 230 źrodło rozwiń
Nieprawidłowa obsługa wyjątków może przynieść więcej problemów niż pożytku. O obsłudze błędów można byłoby napisać artykuł, jednak w poście chciałbym skupić się wyłącznie na kilku aspektach. 1. Pierwszym problemem jest fakt, że część programistów używa wyjątków do sytuacji po prostu niewyjątkowych. Jak sama nazwa mówi, wyjątek powinien być zastosowany gdzie może zdarzyć się coś niespodziewanego. Spójrzmy więc na poniższy fragment:int number; try { number =int.Parse(text); } catch { numbe...
Architektura 4666 dni, 9 godzin, 15 minut temu 462 źrodło rozwiń
autor: W drugim poście poświęconym Raven DB opiszę jak wykonywać podstawowe operacje (zapisz/usuń/zmień) na dokumentach. Ale czym jest dokument? Nie wiem jaka jest formalna definicja ale ja na dokumenty patrzę po prostu jak na obiekty zapisane (zserializowane) w formacie JSON. Poniżej przykład takiego dokumentu z mojego pet project, który odpowiada obiektowi klasy reprezentującej wyrażenie i jego tłumaczenia. { "Category": "Geografia", "Expression": "wioska", "Translations": [ {...
Bazy danych i XML 4664 dni, 21 godzin, 59 minut temu 188 źrodło rozwiń
Aby pisać kod, który jest wydajny i optymalny należy dobrze zrozumieć jak działa Garbage Collector (GC). W dzisiejszym poście przedstawię ogólne zasady działania GC na przykładzie algorytmu mark and sweep. Zaznaczam, że implementacja w .NET różni się i jest dużo bardziej wyrafinowana – ale o tym w następnych postach. Chcę najpierw przedstawić algorytm mark and sweep ponieważ da to czytelnikowi ogólny obraz zagadnienia związanego ze zwalnianiem pamięci w językach zarządzanych. Garbage Collector oczywiści...
Zachęcam do kolejnego artykułu, tym razem o wzorcu MVVM: http://msdn.microsoft.com/pl-pl/library/wprowadzenie-do-wzorca-projektowego-model-view-viewmodel-na-przykladzie-aplikacji-wpf.aspxExplore posts in the same categories:Patterns & Practices, WPF
Architektura 4655 dni, 6 godzin, 12 minut temu 920 źrodło rozwiń