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 3513 dni, 6 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 3525 dni, 2 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 3520 dni, 4 godziny, 1 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 3525 dni, 2 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 3538 dni, 21 godzin, 51 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 3540 dni, 23 godziny, 2 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 3560 dni, 17 godzin, 19 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 3556 dni, 1 godzinę, 41 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 3550 dni, 3 godziny, 35 minut temu 371 ź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 3568 dni, 20 godzin, 23 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 3574 dni, 2 godziny, 10 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 3578 dni, 11 godzin, 58 minut temu 155 źrodło rozwiń