Dzisiaj podstawy, ale wcześniej nie miałem potrzeby skorzystania z funkcji GroupJoin. Myślę, że prosty przykład jest najlepszą dokumentacją. Dosyć częstą używaną funkcją jest GroupBy. Jeśli mamy np. listę zamówień w postaci (IdCustomer, Name), wykonując GroupBy na IdCustomer otrzymamy słownik, gdzie kluczem jest identyfikator zamówienia, a wartością lista zamówień danego klienta. GroupJoin, jak sama nazwa sugeruje jest połączeniem Join z GroupBy. Załóżmy, że mamy nast...
Strona głównaUżytkownik
rroszczyk | użytkownik
Bazy danych i XML 3166 dni, 17 godzin, 49 minut temu 170 źrodło rozwiń
Prosty przypadek: biblioteka potrzebuje trzymać hasło i użytkownika do konfiguracji aplikacji w app.configu. Rozwijam bibliotekę, która jest wersjonowana w gicie. Dodałem wyjątek do .gitignore, aby plik app.config się nie wersjonował. Następnie dodałem bibliotekę z testami i tam też muszę dodać konfigurację. Dodać kolejny wyjątek to już przesada więc można by tak zrobić aby biblioteka testowa używała już istniejącej konfigurację z innego pliku...
Wszyscy wiedzą, że odpowiednia komunikacja w zespole projektowym jest bardzo ważna. Według statystyk „zła komunikacja” jest wymieniana jako jedna z głównych przyczyn opóźnień projektów. Doszło do tego, że pojęcie „dobra komunikacja” stała się frazesem i dla wielu wymówką w przypadku niepowodzeń z projektami. Nie jest to z pewnością trudność obiektywna, na którą nie mamy wpływu,...
Sztuka programowania 3170 dni, 3 godziny, 38 minut temu 195 źrodło rozwiń
W tym tygodniu zajmiemy się loaderem zależności RequireJS (ładowanie dynamiczne plików które są w danej chwili potrzebne a nie wszystkich bo tak) zgodnym ze specyfikacją AMD (Asynchronous Module Definition), która jest modyfikacją formatu transportu z CommonJS, której jedna z wersji jest zaimplementowana w Node. Różnica pomiędzy RequireJS i CommonJS jest taka, że jedno implementuj...
Zwykle programiści korzystają z podstawowych typów dostarczonych przez C#, takich jak String, Int32 czy Double. W świecie programowania obiektowego można jednak pójść o krok dalej i budować własne typy danych. Przeważnie programiści korzystają z nich wyłącznie, gdy do zaimplementowania jest jakaś logika. Dlaczego nie tworzyć ich nawet w sytuacjach, gdy mają one przechowywać wyłącznie dane? Problem z podstawowymi typami takimi jak String Czy Int32 t...
Sztuka programowania 3173 dni, 5 godzin, 27 minut temu 217 źrodło rozwiń
EXPECTEXCEPTION oraz EXPECTNOEXCEPTION. SQL Server oczywiście nie ma jako takich wyjątków, znanych ze świata C#. Mamy za to pojęcie Severity Level. Określa one jak bardzo dany błąd jest poważny. Stwórzmy procedurę, która próbuje użyć nieistniejącej tabeli: CREATE PROCEDURE DoSomething AS BEGIN SELECT * FROM NOTEXISTINGTABL...
Bazy danych i XML 3174 dni, 4 godziny, 29 minut temu 41 źrodło rozwiń
Kiedy korzystamy z EF należy pamiętać o tym, aby zawsze wyłączyć leniwe ładowanie (lazy loading) w przeciwnym wypadku za każdym razem gdy będziemy sięgać po dane które leżą w innej tabeli niż ta, która została początkowo zaciągnięta z bazy danych EF zrobi to za nas. Brzmi fajnie, ale gdy pomyślicie że taka operacja może wykonać się w pętli, pomysł szybko przestaje być tak miły. N wykonań pętli N pojedynczych zapytań do bazy danych. Minusem wyłączenia lenia w EF jest to, ...
Daj się poznać 2016 3173 dni, 5 godzin, 27 minut temu 278 źrodło rozwiń
Chyba omówiliśmy już prawie wszystkie takie paczki około developmentowe – których wykorzystanie jest dodatkowe i nie wypływa na to jak będziemy kod pisać – czy musimy tutaj zastosować X, Y i Z, a tutaj A, B i C bo inaczej to nie ma prawa nam zadziałać. Tak będzie ze wszystkimi pozostały paczkami które będę omawiał. Ostatnią zaś z paczek około dev, jest Yeoman, w skrócie Yo :)Yeoman Jest on t...
NavigationStrona głównaO MniePrelekcjeGutek7th March, 2016pro , cykl, javascript, node.js, npm, yeoman, yo W ostatniej części omówiliśmy co to jest i do czego służy Yeoman. W tej części skoncentrujemy się na stworzeniu prostego szablonu. Głównie chodzi o pokazanie, że nie jest to rocket science, i da się to dość szybko opanować. Naszym celem będzie stworzenie generatora który:Wyświetli coś fajnego na ekranieUdostępni nam wybór pomiędzy dwoma opcjamiDa możliwość stworzenie pojedynczego elementu (pliku) ...
W 30. odcinku DevTalka zagłębiamy się w… kontenery! I to nie takie znane z Dependency Injection. Chodzi o kontenery na zupełnie innym poziomie. Docker? Rings a bell? Moim Gościem jest Michał Dudak. Michał to trochę-więcej-niż-programista :). Może poczytać go na blogu i pooglądać w roli prelegenta na różnych konferencjach. Na Twitterze: @michaldudak. Nie ma co przedłużać, temat jest ciekawy, a materiału sporo! Enjoy! http://traffic.libsyn.com/devtalk/DevTalkE30-MichalDudak-Containers.mp3Zasubskrybu...
Architektura 3178 dni, 13 godzin, 8 minut temu 89 źrodło rozwiń
Jakiś czas temu, postanowiłem się doszkolić ze znajomości algorytmów. Częściowo było to spowodowane tym, że na studiach miałem dosyć okrojone algorytmy (mieliśmy różne sortowania, różne sposoby podziału, ale do grafów już nie doszliśmy) i o ile przez długi czas ta wiedza była wystarczająca, z czasem jednak codility rosło w popularność. O ile obecnie swój "peak" zapewne ma już za sobą, to podczas przykładowej rozmowy kwalifikacyjnej lub zgłaszania swojego uczestnictwa do darmowego szkolenia lub hakatonu z...
Ostatnie lata w świecie developmentu, to ogromny rozwój technologii frontendowych oraz dynamiczny rozwój sektora mobilnego, w którym wciąż jeszcze liczą się trzy systemy. No dobra - tak naprawdę to Windows Phone, tudzież Windows Mobile, trochę juz dogorywa. Świat WWW ma swoje problemy, a jednym z największych jest oczywiście wsparcie dla różnych przeglądarek. W świecie mobile, mamy za to zgoła inną sytuację. Z grubsza możemy spodziewać się wynikowego efektu na różnych urządzeniach z jednym systemem (choc...
Mobile development 3182 dni, 22 godziny, 12 minut temu 433 źrodło rozwiń
Tytułowy temat chodzi mi po głowie od lat. Zresztą nie tylko mi, co jakiś czas przewija się w rozmowach z kolegami i innymi developerami np. na konferencjach. Jest to wydaje mi się realny problem, nad którym nikt nie musiał się jeszcze specjalnie pochylić, bo rynek IT jest jeszcze młody. Czy wyobrażacie sobie...
W tym wpisie poruszę kwestię tego, czy możemy stwierdzić, że dana metodyka/metodologia działa lub nie. Dowiesz się dlaczego robiąc niewłaściwe rzeczy poprawnie oraz właściwe rzeczy niepoprawnie możesz nie osiągnąć zamierzonego celu. Jeśli poprzednie zdanie jest dla ciebie „masłem maślanym” tym bardziej zachęcam do przeczytania wpisu by zrozumieć temat doboru metod i ich właściwego użycia. Zapraszam ...
Sztuka programowania 3185 dni, 3 godziny, 34 minuty temu 397 źrodło rozwiń
Gdy przychodzi odpowiedzieć na pytanie czym się zajmujemy, każdy z Nas dość automatycznie i dumnie odpowiada, że jest programistą. Co poniektórzy dodają jeszcze z coś z zakresu swoich umiejętności. Programuje w .NET-cie, Java-wie, Web-ach itd. Ale czy mówiąc, że jesteśmy programistami to czy naprawdę rozumiemy kim jesteśmy? Czy rozumiemy różnicę pomiędzy programistą a programistą .NET-owym? Co daje Nam zmiana sposobu ...
To już ostatnia część dot. gulpa :) Tydzień temu opisałem ogólnie jak działa gulp. W tej zaś przejdziemy przez proces automatyzacji pracy. By nie komplikować sobie życia, wykorzystamy ten sam przykład który był w Co to jest Grunt.js? Część 3. UWAGA: to jest przykład, nie twierdzę że najlepiej napisany, chodzi głównie o pokazanie co można zrobić.Krok 0 – przygotowanie środowiska W aplikacji będziemy...
Pamiętam dobrze moją pierwszą grę platformą. Powstała w czasach kiedy Delphi było popularnym językiem do tworzenia aplikacji windowsowych. Było to także moje pierwsze podejście do języka obiektowego, poprzedzone dłuższym pisaniem w proceduralnym Pascalu. Nie rozumiałem wtedy do końca idei tworzenia obiektów, dlatego cały kod gry znajdował się w głównym obiekcie Main. Nie wiedziałem jak powinno się animować elementy gry, ale zauważyłem, że można poruszać kontrolką Image poprzez zmianę marginesów. Każdy...
TSQLT – IZOLACJA TABEL Jedną z największych korzyści z tSQLt jest moim zdaniem izolacja danych. Załóżmy, że mamy na następującą tabelę...
Bazy danych i XML 3188 dni, 1 godzinę, 28 minut temu 98 źrodło rozwiń
W poprzednich częściach poruszałem kwestię braku zarządzania buforami czasu w zadaniach, marnowaniem marginesów czasowych oraz złej definicji projektu, która również przyczynia się do opóźnień. Przed przeczytaniem tej części polecam ci rzucić okiem na część pierwszą o buforach bezpieczeństwa w łańcuchu krytycznym oraz część drugą, kontynuacje opisu łańc...
Za dokończenie cyklu zbierałem się z 2 lata… no ale pora go dokończyć i mieć to z głowy :) W poprzedniej części po krótce napisałem czym jest gulp, w tej części skoncentrujemy się na tym jak mniej więcej (naprawdę mniej więcej) działa gulp i czym on się różni od grunta. Główną i najważniejszą rzeczą w gulpie jest to, że działa on na strumieniach danych. Od czasu powstania *nix, strumienie są je...