Zanim zajmiemy się faktycznym wstrzykiwaniem zależności, to najpierw musimy mieć co wstrzykiwać! Statycznej klasy nie wstrzykniemy przecież, jakkolwiek byśmy wstrzykiwać nie chcieli. Na początek zatem: zidentyfikujmy składowe procesu rejestracji użytkownika, które w ogólnie nie powinny znajdować się w kontrolerze. Pewniakiem jest tutaj walidacja poprawności adresu e-mail. Nie dość, że bardzo ładnie da się to...
Sztuka programowania 3851 dni, 6 godzin, 18 minut temu 193 źrodło rozwiń
W poprzedniej części dokonałem kolejnego odwrócenia – tym razem zależności. W tej – choć będzie o wstrzykiwaniu – odwracać się do tego zabiegu nie będzie trzeba ;). Wręcz przeciwnie (by nie rzec odwrotnie) to wstrzykiwanie pomoże w odwracaniu i to zarówno zależności jak i sterowania (kontroli). Jeśli więc chcecie dowiedzieć się jak to możliwe – nie ma odwrotu, należy przeczytać niniejszy wpis :D ...
Sztuka programowania 3851 dni, 6 godzin, 18 minut temu 180 źrodło rozwiń
Dzisiaj dosyć ważne zagadnienie, a mianowicie filtry autoryzacji. Stosuje się je po to, aby wymusić autoryzację danej akcji i w razie braku autoryzacji po prostu ją zablokować.
Sztuka programowania 3857 dni, 10 godzin, 3 minuty temu 201 źrodło rozwiń
Last time I finished on negative values requirement. This will be the “almost” last part of the series about String Calculator Kata. There was some interest in more practical TDD examples in business context with services, layers, mocks and external dependencies like database. I will start next series to cover scenarios like that. Current kata is...
Sztuka programowania 3857 dni, 10 godzin, 3 minuty temu 62 źrodło rozwiń
W tym odcinku skupiam się na stanie aplikacji przed jakimikolwiek procesami “upiększającymi”. Aplikacja, którą mamy upiększyć, została do celów demonstracyjnych zbudowana dość nietypowo. Nie jest to web app, nie jest to nawet console app. Jest to jedna z...
Sztuka programowania 3857 dni, 10 godzin, 3 minuty temu 231 źrodło rozwiń
Poprzednio odwracałem sterowanie (lub kontrolę, jak kto woli). Dzisiaj pora odwrócić zależność. Zasada odwracania zależności (Dependency Inversion Principle) to ostatnia (licząc wg porządku liter w nazwie) z zestawu zasad SOLID. O co więc chodzi z tą zależnością i na czym tak naprawdę polega jej odwracanie? Najlepiej będzie zademonstrować to na przykładzie. Oglądaliście "Seksmisję" (to już 30 lat od jej premiery)? Był w niej...
Sztuka programowania 3857 dni, 10 godzin, 3 minuty temu 208 źrodło rozwiń
W dniu 2.06.2014 na Politechnice Wrocławskiej. Odbędzie się mini konferencja, a w niej 2 wykłady: - "Dlaczego musimy męczyć się z danymi, czyli, największe błędy programistów baz danych" – wykład Damiana Widery - Speakera na wielu krajowych i międzynarodowych konferencjach, w tym European PASS Conference oraz Microsoft Technology Summit. Posiada liczne certyfikaty firmy Microsoft, w tym MCT od roku 2005, MCITP-DBA, MCITP-DD, MCSD.NET oraz od 2009 roku tytuł MVP w kategorii SQL Server. - „Kiedy samo IDE ...
Sztuka programowania 3857 dni, 10 godzin, 3 minuty temu 102 źrodło rozwiń
Często słyszę: “TDD powinno sprawiać, że oprogramowanie nie ma bugów”. To bardzo mylne pojmowanie wszystkiego, co się za TDD kryje. I dla tej praktyki mocno krzywdzące, bo gdy się okazuje, że tak nie jest, to ludzie się zniechęcają. Starałem się zdecydowanie podkreślać ten fakt podczas moich wystąpień na temat unit testów w zeszłym i za-przeszłym roku. Może w kontekście ostatnich wydarzeń w świecie unit...
Sztuka programowania 3863 dni, 13 godzin, 22 minuty temu 284 źrodło rozwiń
TDD – commit by commit String Calculator Kata (III) Posted on by Michal Franc Previous post in the series – TDD – commit by commit String Calculator Kata (II) In the previous post I did a cleanup phase and added one feature to the String Calculator. The kata is not finished yet.Step VIII – Different Delimiters String Calculator should support different delimiters. Previous solution was just a hard-coded hack, still it was good enough solution. There wasn’t any requirement that would suggest a need f...
Sztuka programowania 3864 dni, 12 godzin, 15 minut temu 65 źrodło rozwiń
Introduction to Dependency Injection Sooner or later all of us will hear acronym SOLID. Some friend of us will whisper us that our code should be SOLID. The letter ,,D” is abbrevation of „Dependency Inversion” which means:High-level modules should not depend on low-level modules. Both should depend on abstractions.Abstractions should not depend upon details. Details should depend upon abstractions. Another importan term is IoC (Inversion Of Control). In software engineering, inversion of ...
Sztuka programowania 3865 dni, 13 godzin, 36 minut temu 136 źrodło rozwiń
Jednym z częściej opisywanych zagadnień na blogach programistycznych są wzorce projektowe. Często jednak ich opisy są bardzo krótkie, bez przykładów konkretnego zastosowania w prawdziwym kodzie, a czasem nawet niepoprawne. Dzisiaj przedstawię jak wykorzystanie wzorców projektowych może przyczynić się do ograniczenia powtórzeń w kodzie testów. Nie będzie to wprowadzenie do tych wzorców (opisanych setki razy w innych miejscach), ale opis moim zdaniem nietypowego ich zastosowania.
Sztuka programowania 3866 dni, 21 godzin, 27 minut temu 241 ź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 3866 dni, 21 godzin, 27 minut temu 345 źrodło rozwiń
Dzisiejszym wpisem chciałbym zapoczątkować krótką serię na temat tego co powinniśmy robić, a czego nie powinniśmy (a przynajmniej tak mi się wydaje). W części pierwszej przyjrzymy się XML.
Sztuka programowania 3871 dni, 20 godzin, 23 minuty temu 401 źrodło rozwiń
Dzisiaj przyjrzymy się słowu kluczowemu var w C#. Słowo dodane wraz z premierą framework’a .NET 3.5 stało się jednym z najbardziej nadużywanych przez programistów.
Sztuka programowania 3871 dni, 20 godzin, 23 minuty temu 304 źrodło rozwiń
W kwietniu na jednym z blogów poruszany był temat odwracania (inwersji) w kontekście tworzenia oprogramowania. Dotyczyło to takich zagadnień (pozwolę sobie na wstępie użyć ich angielskich nazw) jak Inversion of Control (w skrócie IoC) oraz Dependency Inversion Principle (DIP). Przy okazji tego drugiego odniesiono się też do Dependency Injection (DI), które ...
Sztuka programowania 3871 dni, 20 godzin, 23 minuty temu 269 źrodło rozwiń
Bohaterem dzisiejszego odcinka jest prosta, jednak bardzo użyteczna, i jak się okazuje chyba mało znana metoda jednej z klas dostępnych w .NET Framework już od wersji 1.1.
Sztuka programowania 3892 dni, 11 godzin, 15 minut temu 533 źrodło rozwiń
Nigdy jakoś specjalnie nie lubiłem testów jednostkowych jednak każdy porządny programista dobrze wie, że to ważny aspekt wytwarzania oprogramowania. Dzięki testom jesteśmy w stanie bezpiecznie dokonywać zmian w kodzie właściwym – jeśli w wyniku refaktoryzacji zmienimy sposób działania aplikacji, testy przestaną „przechodzić”, wiemy więc od razu, że coś jest nie tak. ...
Sztuka programowania 3892 dni, 11 godzin, 15 minut temu 199 źrodło rozwiń
Z sobotę odbyła się łódzka konferencja GET.NET (o czym jeszcze napiszę), w trakcie której tuż przed moją, odbyła się prezentacja Procenta o Dependency Injection. Samo wystąpienie było świetne, a moją ciekawość podsyciła dodatkowo obietnica (powtórzona dwukrotnie) wyjaśnienia całego zamieszania wokół pojęć DI (Dependency Injecton i Inversion) oraz IoC. Jakie było moje rozczarowanie, gdy upragniony moment nadszedł, a Maciek skwitował wszystko zdaniem, że definicje nie są ważne. Oj wkurzyłam się… Pomyślała...
Sztuka programowania 3899 dni, 1 godzinę, 58 minut temu 413 źrodło rozwiń
Dzisiaj całkowicie o podstawach ale jednak warto przypomnieć sobie słownictwo. Każdy kojarzy chyba wzorzec factory. Oficjalnie wyróżnia się jednak kilka typów tego wzorca. Najpopularniejsze z nich to Factory method oraz Abstract Factory. W podręczniku do wzorców projektowych, znajdziemy je jako dwie osobne konstrukcje. Czy to naprawdę tak ważne, aby znać różnice w nazewnictwie? Wzorce projektowe traktuję jako słownictwo. Zamiast wyjaśniać drugiej osobie, dokładnie co chcę napisać, używam wzorców projek...
Sztuka programowania 3899 dni, 1 godzinę, 58 minut temu 245 źrodło rozwiń
Jakiś czas temu (nawet nie wiedziałem, że to już tyle czasu minęło!) .NET zaoferował nam możliwość korzystania z inicjalizatorów obiektu, zamiast stosowania klasycznej inicjalizacji...
Sztuka programowania 3905 dni, 23 godziny, 19 minut temu 285 źrodło rozwiń