O usługach REST, które dzisiaj są wszechobecne pisałem już wiele razy np. tutaj. Dzisiaj chciałbym napisać krótkie podsumowanie w formie porad i antywzorców. Zaczynamy: 1. Nigdy nie używaj czasowników w URI. Przykład błędnych linków: GET: localhost\persons\1\UpdateEmail?email=’…’ Jedynym dozwolonym czasownikiem w adresie to HTTP verb. Całość linku to nic innego jak hierarchia zasobów. Poprawna aktualizacja adresu email może wyglądać zatem następująco: PUT: localhost\persons\1\email Metoda PUT ozn...
Strona głównaUżytkownik
rroszczyk | użytkownik
Programowanie rozproszone 3358 dni, 23 godziny, 37 minut temu 418 źrodło rozwiń
Dzisiaj technicznie-architektonicznie. Dwudziesty drugi odcinek DevTalka pod znakiem WIADOMOŚCI i KOMUNIKACJI stoi. Reflektor w te mgliste pojęcia kieruje Szymon Pobiega: programista/architekt, blogger, prelegent. Pracuje w Particular Software, gdzie klepie NServiceBusa dla Udiego Dahana (pamiętacie DevTalk#14 – CQRS with Udi Dahan?). Zatem: zdecydowanie wie o czym mówi! Z rozmowy dowiecie się czym tak naprawdę jest komunikacja i dlaczego warto sobie zawracać głowę jakimiś “wiadomościami” czy “kolejkami...
Architektura 3370 dni, 23 godziny, 33 minuty temu 156 źrodło rozwiń
Większość mobilnych aplikacji wymaga aktywnego połączenia internetowego do poprawnego działania. Wiele z nich, nie posiada nawet trybu offline i bez sieci po prostu nie jest w stanie funkcjonować. Często developer musi również reagować na rodzaj połączenia sieciowego, z którego aktualnie korzysta użytkownik (WiFi/GSM), dlatego temat ten jest naprawdę ważny z perspektywy całego projektu aplikacji.
Mobile development 3366 dni, 3 godziny, 31 minut temu 126 źrodło rozwiń
Z SQL Injection jest jak z polio czy odrą: w drugiej dekadzie XXI wieku możemy o nim zapomnieć. Wystarczy się zaszczepić, czyli: nie sklejać ręcznie poleceń SQL. Prawda? “Użyj parametrów z ADO.NET, a będzie cacy” – mówili. “Użyj Simple.Data, a złęgo obawiać się nie musisz” – mówili. Ależ kłamali! Jakież przeogromne było moje zdziwienie, gdy niedawno dostałem buga mówiącego, iż “coś dziwnego się dzieje jeśli w nazwie rekordu wstawi się apostrof”. WTF, jak to? Oczywiście sugestią naprawienia błędu od str...
Bazy danych i XML 3370 dni, 23 godziny, 33 minuty temu 278 źrodło rozwiń
Myślisz, że zapotrzebowanie na programistów jest teraz tak wielkie, że możesz rozwiązać zadanie rekrutacyjne w dowolny sposób a i tak każda robota jest twoja? NIE! Sposób rozwiązania (lub nawet nierozwiązania) zadania bardzo wiele o Tobie mówi. Czytaj dalej aby dowiedzieć się, na co zwracać szczególną uwagę. Bo – uwierz mi – nawet w naszej branży “zła sława” może mocno zaszkodzić przyszłej karierze. Na początku tego roku szukaliśmy w Ultrico nowych ludzi do zespołu. Wychodzimy z założenia, że żaden “tes...
Wakacje, wakacje i po wakacjach. I bardzo dobrze, ile można, c’nie? Po wakacyjnej przerwie powracamy, zamaszyście, pomału i usłużnie. Ale suchy rebus! Mału -> mikru -> mikro. Usłużnie -> serwisowo -> service. Czyli: po wakacyjnej przerwie powracamy, zamaszyście, z mikroserwisami! Towarzyszy mi Michał Franc, który z dalekiego jUKeja wskoczył mi na Skype’a. Michał bloguje na http://www.mfranc.com, przemawia oraz jest jednym z organizatorów konferencji dotnetconf.pl. Na Twitterze możecie go stalkować pod @...
Architektura 3384 dni, 21 godzin, 21 minut temu 245 źrodło rozwiń
Po dość znacznej przerwie powracamy jeszcze na chwilę do tematu Dependency Injection. Pamiętacie cykl i moment, do którego dotarliśmy? Zastosowaliśmy SRP by uprościć kod. Wprowadziliśmy jawne zależności między komponentami i ubraliśmy je w interfejsy. Spróbowaliśmy napisać własny kontener Dependency Injection, a potem zobaczyliśmy dlaczego lepiej użyć jednak czegoś gotowego. I stanęło na Autofac, kiedy to obiecałem “kilka finalnych refleksji”.
Sztuka programowania 3386 dni, 22 godziny, 32 minuty temu 256 źrodło rozwiń
Visual Studio 2015 jest już od jakiegoś czasu. Instalacja, odpalenie projektu i do przodu. Coś tam się zaktualizowało w projekcie i mogę dalej pracować z nowymi zabawkami. Problem jaki mi się pojawił to w jednym solution ze sporą ilością projektów jeden z nich aktualizował się przy każdym otwarciu projektu. Projekt, który chciał się aktualizować przy każdym otwarciu Visual Studio to MVC3, który później był migrowany do MVC4. Przy każdym otwarciu upgrade i kopia wszystkich plików i raport w html-u. Zanim...
Czasami zdarza się, że musimy dopisać do systemu prostego konsolowego tool’a pozwalającego na wykonanie kilku wybranych funkcjonalności. Czy to jakiś prosty raport tekstowy, sprawdzenie stanu, cokolwiek. Bywa, że z dumą przystępujemy do pisania „od zera”. Czasami mamy już swoje wypracowane rozwiązanie, a czasem ruszamy na poszukiwania. Tym szukającym właśnie wychodzi naprzeciw ManyConsole.
W Visual Studio jest parę sposobów aby szybciej kodować oprócz skrótów klawiszowych opisanych tutaj - jednym ze sposobów są wstawki kodu. Jest ich sporo i od czasu do czasu warto sobie je przypomnieć. Dużą zaletą jest to, że nie potrzeba ReSharpera czy innych narzędzi aby móc cieszyć się tymi skrótami. Wystarczy Visual Studio w wersji od 2010. Z tego posta dowiesz się:Co to...
Sztuka programowania 3406 dni, 16 godzin, 50 minut temu 481 źrodło rozwiń
Trochę scruma i agile widziałem w swojej karierze. I to chyba by było tyle w temacie pozytywnych elementów tego wpisu, ponieważ chciałbym opisać te złe podejścia do scruma jakich doświadczyłem. Myślę, że moje doświadczenie jest naprawdę nikłe, ale podzielę się nim z opinią publiczną. Na wstępie zaznaczam, że nigdy nie używałem scruma. Były to jedynie elementy scruma, lub nawet gorzej elementy agile (bo wstyd to scrumem nazywać). Wynikało to na pewno z tego, że osoby wyrażające scruma w tych zespołach ...
Sztuka programowania 3402 dni, 1 godzinę, 11 minut temu 665 źrodło rozwiń
Wiele osób pewnie już od dawna korzysta LINQPad. Osobiście nigdy nie miałem okazji korzystać z tego narzędzia i zawsze myślałem, że w przypadku TDD jest ono po prostu zbędne. Ostatnio jednak zainstalowałem z ciekawości i okazało się bardzo przydatne w przypadku testowania krótkich snippet’ów. Czasami chcę sprawdzić tylko np. formatowanie daty i wtedy zwykle uruchamiałem osobną instancję Visual Studio, immediate windows w VS albo po prostu pisałem konkretny test. Nie zawsze jednak jest to wygodne i prak...
Sztuka programowania 3396 dni, 3 godziny, 5 minut temu 370 źrodło rozwiń
Tworząc aplikacje mobilne, nie jest łatwo zbudować model danych, który idealnie odpowiadałby potrzebom aktualnego widoku. Problem staje się jeszcze bardziej złożony, w sytuacji gdy korzystamy z API, które zwraca ogólny model, dla rożnych końcówek. W takiej sytuacji, programista aplikacji mobilnej musi sam zadbać o odpowiednie wyświetlenie i sformatowanie otrzymanych danych.. W świecie Universal Apps problem ten można rozwiązać na różne sposoby. Osobiście preferuje tutaj wykorzystanie architektury MVVM, k...
Przemysław Walkowski Większość programistów w pewnym momencie odkrywa, że ich IDE posiada skróty klawiszowe i dzięki używaniu ich może przyspieszyć swoją pracę. Inni dowiadują się, że kodowanie przy pomocy myszki jest raczej objawem braku profesjonalizmu. Poniżej lista skrótów klawiszowych, których używam codziennie w mojej pracy. Cześć skrótów jest oferowana przez ReSharpera ale w większość są to skróty, które o...
Sztuka programowania 3414 dni, 19 godzin, 53 minuty temu 538 źrodło rozwiń
Po ostatnim poście powinno być jasne dlaczego i kiedy warto używać CORS. Przedstawiony przykład pokazywał dwa kluczowe nagłówki: origin oraz Access-Control-Allow-Origin. W praktyce jednak, może zdarzyć się, że przeglądarka wyśle dodatkowy pakiet, tzw. “prefight”. Przeglądarki omijają ten etap, gdy następujące warunki sa spełnione:Zapytanie jest typu GET, HEAD lub POSTW nagłówku nie ma innych zapytań niż Accept, Accept-Language, Content-Language lub Content-TypeContent-Type ma wyłącznie wartości takie ja...
Programowanie rozproszone 3420 dni, 1 godzinę, 41 minut temu 164 źrodło rozwiń
Kilka postów wcześniej pisałem o JSONP, jako sposobie na wywoływanie serwisów znajdujących się w innych domenach z poziomu JavaScript. Domyślnie przeglądarki blokują takie wywołania ze względu na bezpieczeństwo. Załóżmy, że mamy następujący serwis w jakiejś domenie...
Do napisania tego wpisu z jeden strony skłoniła mnie własna sytuacja (zmiany, zmiany, zmiany), a z drugiej strony dość stary artykuł na stronach Intela. Miałem go ciągle w artykułach do przeczytania, aż w końcu znalazłem chwilę i nie ukrywam zrobił na mnie bardzo duże wrażenie. Zgłębiając temat trafiłem na jeszcze jeden, na stronach Business Insider, a konkretnie na ten artykuł. On również daje do myślenia… Otóż możn...
Jestem w branży IT właściwie nieprzerwanie już gdzieś od połowy 2008. Przez ten czas branża zmieniała się bardzo dynamicznie. Nastąpiło odejście od desktopów, a większy nacisk postawiono na mobile i web. Same firmy zwiększyły nacisk na podział frontend - backend. Przez cały ten czas, w branży zmieniali się również ludzie. Pojawiło się sporo nowego narybku, który wciąż nie jest w stanie zadowolić olbrzymiego popytu na specjalistów IT. Powstał więc w pewnym sensie rynek pracownika, gdzie specjalistów najzw...
Testy jednostkowe z natury muszą być wykonywane w izolacji. Wykonanie np. pierwszego testu nie powinno mieć żadnego znaczenia dla pozostałych. Analogicznie, kolejność ich wykonywania nie ma znaczenia. Zwykle jest to bardzo proste i osiąga się to poprzez np. mock’i. Czasami jednak może zajść potrzeba całkowitej izolacji poprzez wykonywanie każdego testu w osobnej AppDomain. Myślę, że w 99% przypadków jednak, można bez tego obyć się. Ostatnio jednak, pisząc pewne narzędzie do Visual Studio, musiałem odiz...
Sztuka programowania 3424 dni, 11 godzin, 29 minut temu 155 źrodło rozwiń