Zasada działania Ubera z punktu widzenia użytkownika smartfona jest stosunkowo nieskomplikowana. Uruchamiamy aplikację, wciskamy jeden przycisk i czekamy na kierowcę. Proste? Proste. Ale pójdźmy o krok dalej i zastanówmy się nad nieco bardziej wymagającym użytkownikiem, który chciałby dostać się Uberem w pewne miejsce o zaplanowanej wcześniej godzinie. Po najniższym koszcie. A i żeby sam się zamówił :) Poznajmy Uber API.
Zaczynając swoją przygodę z ASP.NET MVC (oraz w ogóle z programowaniem) miałem sporo problemów z utrzymaniem porządku w moich akcjach na kontrolerach. Bardzo często pojawiało się tam mnóstwo warunków i niepotrzebnej logiki. Ten problem trzeba było sensownie rozwiązać, więc z kolegami wypracowaliśmy sobie pewną konwencję, której twardo się trzymaliśmy...
Which one of us doesn’t like to give commands? It’s the natural way to ask (in a polite way) for a specific task that needs to be completed. Therefore, it shouldn’t be surprising that the command pattern can be also easily implemented within our software, which might provide some serious benefits in terms of loose coupling the existing code.
Sztuka programowania 3033 dni, 16 godzin, 30 minut temu 239 źrodło rozwiń
Czy znacie narzędzie NDepend? Służy do statycznej analizy jakości kodu. Istnieje w świecie .NET już od wielu lat i zyskał zasłużoną renomę. I mi nadarzyła się okazja by przyjrzeć się temu narzędziu bliżej. Kilka lat temu bawiłem się nim na potrzeby analizy projektów w pracy. A teraz zapragnąłem nim przebadać coś nieswojego, coś dużego - .NET Core.
Within the last few weeks, a lot of things have happened in terms of the Warden project. It has gained already quite some popularity and became a whole stack of different applications and technologies with a single, ultimate goal which is providing the unified interface and set of tools to help you monitor and automatically resolve the issues with the maintenance of your system, infrastructure and resources.
I suppose there are not so many people who do not know what Node.js is. You may love it, you may hate it, but you cannot deny the fact that more and more enterprises are using it to replace some parts of their system, previously written in Java, Rails or .Net. Node.js runs in a lot of environments – starting from large, multi-core servers, through laptops, then microcomputers like Rasperry Pi, finishing on IoT devices...
TestyPiotr Zieliński2 Comments O testach UI, szczególnie w SpecFlow pisałem już kilka razy. Zawsze korzystałem z wzorca PageObject, chociaż nie wiedziałem, że ma on swoją nazwę. Czasami mam wrażenie, że na proste rzeczy wymyśla się “wzorce”. Muszę przyznać jednak, że uproszcza to często komunikację między programistami. Wzorce w końcu stanowią pewnego rodzaju słownictwo dla programistów. Zamiast opisywać coś w kilku zdaniach, można powiedzieć po prostu nazwę wzorca. PageObject pattern polega na tym, ż...
Sztuka programowania 3045 dni, 18 godzin, 6 minut temu 192 źrodło rozwiń
Zarówno o BDD, jak i TDD wiele razy już pisałem. Najważniejszą rzeczą w TDD jest sekwencja red-green-refactor. Zwykle BDD\TDD przybiera następującą postać: Zaczynamy od etapu BDD. Definiujemy wymagania za pomocą języka rozumianego zarówno przez programistów jak i jak BA\PO. Za pomocą Specflow możemy zdefiniować np. następujący test: Given I have entered 50 into the calculator And I have entered 70 into the calculator When I press add Then 120 sho...
Sztuka programowania 3045 dni, 18 godzin, 6 minut temu 134 źrodło rozwiń
If you take a look at the title of this post and instantly think it’s a trap or bait – let me prove you wrong. This is not going to be one of these catchy titles, so “what kind of bs am I going to read here” has little use in this place. Actually, this is 100% true that contributing to the open source community might greatly affect your life – and it goes far beyond daily activities related to the coding. Therefore, let me tell you a short story about a guy, typical .NET developer, who not so long ago al...
Zaczęły się wakacje i musiałem na razie przerwać spotkania Grupy .NET. Ale nie chciałem całkowicie usypiać grupy, więc postanowiłem nagrać dla nich prezentację o wzorcu Model View ViewModel, ponieważ zaczęliśmy pod koniec semestru robić projekt oparty o Windows Presentation Foundation, a tam MVVM świetnie pasuje. Zacząłem od zrobienia prezentacji, takiej jaką bym wyświetlał mówiąc do nich na żywo...
Architektura 3048 dni, 18 godzin, 28 minut temu 164 źrodło rozwiń
Czas naprawdę "szybko leci". Prawie jak wczoraj pamiętam udział w konferencji .NET Developer Days 2015, a tutaj już na poważnie rozkręciła się organizacja tegorocznego wydarzenia. Było ciekawie, więc z dużym zainteresowaniem śledziłem doniesienia organizatorów na temat tego, co szykują w tym roku.
Imagine that you have a service, which receives requests to execute specific methods, possibly from a number of different underlying libraries that you don’t want to expose directly. Possible examples are web services. The request comes in as a number of string values (method name, parameters etc.) and you need to respond with results. So you have inherited a project with API that starts with a method: object Invoke(string methodName, object[] parameters); You now have to call variety o...
Do you ever feel like (well, you should) these huge switch + case statements or too many ifs seem to be wrong? What if I told you, there’s one simple trick that will change your life, by getting rid of them? Ok, seriously – I have nothing against switch or if as the way of controlling the flow (I use them quite often) however, there are certain occasions at which the things could be done better. And let me show you another way to achieve the same goal which is much cleaner in terms of code readability a...
Sztuka programowania 3053 dni, 15 godzin, 58 minut temu 361 źrodło rozwiń
Rozpoznawanie twarzy na zdjęciach, emocji jakie wyrażają, opisywanie zawartości fotografii, przetwarzanie języka naturalnego – te i wiele więcej tematów powiązanych ze sztuczną inteligencją znane są nam od dawna. Jednak od niedawna są one tak bardzo na wyciągnięcie ręki. Rzućmy okiem na Microsoft Cognitive Services.
ELMAH, czyli Error Logging Modules And Handlers (ELMAH) - jest to biblioteka/moduł dostępny za darmo służący do zarządzania oraz monitorowania błędów w oprogramowaniu. Moduł ten oparty jest na śledzeniu zdarzeń i można go podpiąć do istniejącej aplikacji bez zmiany ani jednej linii kodu (zmiany wykonujemy tylko w konfiguracji). Główne zadania ELMAH-a, to obsługa, zarządzanie, monitorowanie, eskalacja błędów, ze szczególnym uwzględnieniem błędów nieobsłużonych. Główne zalety/funkcjonalności ELMAHA: ...
Xamarin nie jest gwarantem trzykrotnie szybszego developmentu. Nie zachodzi tutaj żadna równość typu, że niezależnie ile platform docelowych będziemy chcieli obsłużyć, to w praktyce i tak piszemy jedną aplikację. Xamarin tak nie działa. Nawet w sytuacji gdy korzystamy z Formsów to i tak nie jesteśmy w stanie skrócić developmentu na inne platformy do zera. Na ten temat szerzej pisałem we wpisie w ubiegłym tygodniu.
Mobile development 3053 dni, 15 godzin, 58 minut temu 203 źrodło rozwiń
Co wyróżnia C# od innych języków? Co sprawia, że C# jest nadzwyczajny? Co sprawia, że C# jest taki jak inne języki? Jakie są cechy (nie)szczególne C#? No i czym jest to dziedziczenie i czy w ogóle się go używa? Zapraszam do lektury i to nie tylko tych początkujących programistów. Czym jest dziedziczenie? ...
Sztuka programowania 3055 dni, 16 godzin, 35 minut temu 174 źrodło rozwiń
NDepend is one of these tools, that I have ever wanted to try out, but somehow couldn’t find the right moment to do so. Quite recently, I’ve eventually decided to give it a shot and I can honestly say that I’m very impressed with the outcome. This tool provides so many statistics and analytics that I’m still wondering what else can be checked in terms of .NET projects complexity, structure, layering, readability and other important things which in the end make a real difference between the great, good, ...
Nie wiem czy macie prawo jazdy, ale nawet jeśli nie, to pewnie zrozumiecie wysublimowaną analogię, którą zaraz przeczytacie. Otóż jeżdżąc samochodem i mniej więcej kojarząc przepis drogowe, możemy jeździć z powodzeniem całe życie. (...)
In this article I’ll focus on Android development, describe how Xamarin achieves its goals and present simple code example.
Mobile development 3067 dni, 6 godzin, 6 minut temu 78 źrodło rozwiń