Niestety z jakiegoś powodu nie chcemy tego teraz sprawdzać, zastawiać się i co najważniejsze testować. Przydaje się wtedy w takim miejscu dodanie informacji, która przypomni nam następnym razem o potrzebnej zmianie.
Strona głównaUżytkownik
pawelm | użytkownik
Dziś znów powrót do podstaw inżynierii oprogramowania. Przedstawianie podstawowej zasady może wydawać się śmieszne ale mimo wszystko programista dobrze jak wie, że taka zasada ma swoją nazwę i naprawdę powinno się tego przestrzegać. Za pewne wiele programistów nie zna nazw tych reguł ale i tak postępuje zgodnie z nimi. Post ma jednak uświadomić, że takie praktyki są dobrze udokumentowane i są na naprawdę dobrym zwyczajem a nie tylko intuicją doświadczonego programisty. Wzorzec dotyczy konstrukcji metod...
Architektura 4553 dni, 19 godzin, 44 minuty temu 317 źrodło rozwiń
Posted by slanto on Zastosowanie wzorca Decorator na przykładzie produktu i ofert specjalnych. Wzorzec ten pozwala nam na dynamiczną zmianę/rozszerzanie zachowania istniejących klas.
Architektura 4554 dni, 19 godzin, 48 minut temu 290 źrodło rozwiń
Często spotykanym wyzwaniem przy budowie systemów rozproszonych jest przesyłanie plików o znacznych rozmiarach. Tego typu rozwiązanie w łatwy sposób można zaimplementować w technologii WCF, która pozwala na tworzenie wszechstronnych i wydajnych usług sieciowych. Na przykładowym serwisie WCF pokażę w jaki sposób radzić sobie z wysyłaniem i odbieraniem dużych plików pomiędzy klientem a usługą.
Programowanie rozproszone 4556 dni, 18 godzin, 44 minuty temu 412 źrodło rozwiń
When working with multi threaded applications, we tend to spawn worker threads which can lead to ineffective code when not done correctly, for example threads will not get reused and will be recreated for each work items. The solution to all those problems is a ThreadPool which reuses threads and queues work items that are consumed by those threads. This sort of implementation while simple can have side effects as unless the pool Queue is immutable it will have to be locked each time an item Enqueued and...
Piotr Zieliński na swoim blogu rozważał zasadność redefiniowania przez klasy dziedziczące metod z klas dziedziczonych (przy pomocy modyfikatora new), warto zapoznać się z tym wpisem przed kontynuowaniem lektury niniejszego tekstu. Na zakończenie Piotr poprosił o podanie innych, od przestawionych przez niego, powodów, na zasadność użycia modyfikatora new. Oto jeden z nich...
Architektura 4557 dni, 15 godzin, 58 minut temu 160 źrodło rozwiń
W obecnym czasie, z bardzo rozwiniętymi środowiskami programistycznymi, takimi jak choćby Visual Studio, czy też Eclipse, bardzo łatwo jest rozpocząć swoją przygodę z programowaniem, które w tym przypadku czasem bardziej przypomina zabawę z klockami, niż rzeczywiste . Jednak nastawiając się na bezmyślne składanie klocków, szybko można obudzić się z przysłowiową , w sytuacji gdy zajdzie potrzeba modyfikacji lub rozszerzenia tak radośnie tworzonego kodu, a warto zaznaczyć, że nieumiejętnie sklejony kod mo...
Architektura 4559 dni, 8 godzin, 27 minut temu 475 źrodło rozwiń
Po Single Responsiblity Principle najważniejsza (moim zdaniem) zasada programowania obiektowego – Dependency Inversion Principle. Mówi ona, że obiekty powinny być zależne od abstrakcji a nie od konkretnej klasy. A po ludzku, w żadnej definicji funkcji i w żadnej deklaracji zmiennej nie powinniśmy używać nazwy klasy. Zamiast tego powinniśmy używać interfejsy albo klasy abstrakcyjne czyli zamiast private IPerson _owner; public bool ValidateOwner(IPerson personToValidate) { //..... } piszemy private IPe...
Architektura 4566 dni, 11 godzin, 28 minut temu 196 źrodło rozwiń
W c# 5.0 dodano dwa nowe atrybuty: CallerMemberName oraz CallerFilePath. Można je stosować do domyślnych parametrów metod:staticprivatevoid Print([CallerMemberName]string methodName =null, [CallerFilePath]string fileName =null) { Console.WriteLine(methodName); Console.WriteLine(fileName); } Wywołanie powyższej metody bez podania argumentów spowoduje przekazaniem nazwy metody, która wywołała Print oraz ścieżki pliku w którym znajduje się ta metoda:Print(); Jeśli Print został wywołany w metodzie ...
Większość aplikacji Windows Forms, kojarzą nam się z prostokątną formą koloru szarego z naniesionymi kontrolkami i tytułowym paskiem. Nie jest to jednak reguła. Nasze aplikacje mogą mieć nieregularny kształt (chmurka, serduszko, etc). Dzięki temu można uzyskać bardzo ciekawie wyglądający program, a odpowiednie skonfigurowanie formy opiera się na kilku prostych krokach. Właśnie to opiszę w dzisiejszym artykule. Całość będę oprogramowywał w C#. Przygotowanie kształtu formu Przygotowanie musimy ...
… na szczęście nie przez wszystkich. Intencją niniejszej serii jest przedstawienie podstaw programowania w trochę inny sposób, dlatego mówiąc najbardziej niedoceniana umiejętność w domyśle tyczy się to początkujących. Starsi albo sami dotarli do odpowiedniej wiedzy albo życie ich nauczyło. Jak wyglądają pierwsze kroki w programowaniu? Po opanowaniu pętli for i foreach, ifów i caseów, Console.WriteLineów oraz tych wszystkich klas i obiektów i nie zapominając o polimofizmach wielu rzuca się w wir poznawan...
Architektura 4564 dni, 19 godzin, 58 minut temu 270 źrodło rozwiń
Sprostowanie nieścisłości dotyczącej pojęcia polimorfizmu, która pojawiła się w kursie C# na portalu virtualstudy.pl
Architektura 4564 dni, 6 godzin, 9 minut temu 134 źrodło rozwiń
Wczoraj mówiliśmy o single responsibility principle (SRP) czyli o zasadzie pojedynczej odpowiedzialności. Jest to zasada, która moim zdaniem najwięcej zmienia w dotychczasowych przyzwyczajeniach programistycznych. Na początku jest trochę męcząca ponieważ zgodnie z nią w klasie nie powinniśmy tworzyć innych obiektów.Jak to? Nie mogę używać słowa kluczowego new? Nie mogę tworzyć obiektów? No właściwie to nie. Jeżeli chcesz w klasie tworzyć obiekty to to już jest odpowiedzialność. Wiec klasa nic poza tworz...
Architektura 4568 dni, 12 godzin, 48 minut temu 99 źrodło rozwiń
Od .NET 2.0 dostępna jest klasa SqlBulkCopy, która pozwala na efektywne ładowanie dużych zbiorów danych do bazy SQL Server. Główną zaletą tej klasy jest wydajność operacji kopiowania danych...
Bazy danych i XML 4570 dni, 2 godziny, 54 minuty temu 199 źrodło rozwiń
Wczoraj mówiliśmy o tym, że funkcja powinna wykonywać jedną rzecz. Świetnym papierkiem lakmusowym jest nazwa funkcji. Jeśli można łatwo nadać jej nazwę i nie zawiera spójników typu i, lub, albo, oraz (lub ich odpowiedników w j. angielskim ) to jesteśmy na dobrej drodze. Funkcje, które wykonują kilka czynności są wprowadzają po prostu w błąd.A co z klasami? Single Responsibility Principle mówi, że klasa powinna mieć jedną odpowiedzialność, powinna mieć jeden powód do zmiany. Takie podejście powoduje, że...
Pytanie brzmi: czy metody statyczne są wydajniejsze niż ich “zwykłe” odpowiedniki (instance methods)? Odpowiedź brzmi tak, ponieważ:Wywołanie jakiejkolwiek niestatycznej metody na klasie powoduje przekazanie parametru “this” – a to wymaga dodatkowego czasu.Same wywołanie jest bardziej czasochłonne dla zwykłych metod. W klasach statycznych nie ma dziedziczenia i wirtualnych metod. W niestatycznych metodach, kompilator musi dokonać kilka dodatkowych operacji. Każda metoda niestatyczna jest wywoływana za p...
Co rozumiem przez tryb offline ? Jest to przejście w taki tryb pracy gdzie wszystkie requesty przekierowane są na pewien landing page może informować np. że jest przeprowadzana aktualizacja, albo aplikacja jest przenoszona na nowy serwer, albo np. trwa aktualizacja serwera baz danych itp.
Rozważmy następujący. Co jest największym problemem tego kodu? Wszystkie przykłady wymyślam na bieżąco dlatego oprócz głównego problemu, który chce zaprezentować w poście, istnieje kilka pobocznych.
Tytułowa funkcjonalność pozwala wrzucić do kodu komentarze, które kiedyś trzymałbym w jakimś dokumencie tekstowym. Warto utworzyć własny token. Ustawienia znajdują się w Tools->Options->Environment->Task List.
Posted by mndevnotes W .NET 4 pojawiła się nowa klasa System.Lazy. Opakowuje ona obiekt danego typu, dzięki czemu jego inicjalizacja następuje dopiero w momencie pierwszego użycia.