Kilka dni przed napisaniem artykułu o drodze od czeladnika do mistrza, zostałem poproszony przez jednego ze znajomych managerów, aby odpowiedzieć na ankietę prowadzoną przez pewną politechnikę. Sprowadzała się ona do pytania, jakich umiejętności brakuje absolwentom studiów inżynierskich, którzy zaczynają karierę w branży IT. Padł wtedy również pomysł, aby podejść do tematu nieco szerzej i spisać doświadczenia moje i kolegów.
Strona głównaUżytkownik
Xedroid | użytkownik
Rzadko zdarza mi się pisać o ficzerach języka C#, a już na pewno nie o takich, które są dostępne od wielu lat. Niemniej, dziś miałem okazję ponownie wykorzystać ciekawą i mniej znaną „odsłonę” enum-ów dostępną poprzez atrybut FlagsAttribute, która być może okaże się dla Ciebie przydatna. Klasyczne użycie typów wyliczeniowych Gdybym z własnych obserwacji miał powiedzieć kiedy typy wyliczeniowe są stosowane, odparłbym „kiedy bool nie wystarcza”. Zazwyczaj bowiem, zaczyna się od właśnie od zmiennej typu ...
Sztuka programowania 2178 dni, 13 godzin, 11 minut temu 305 źrodło rozwiń
Mikroserwisy to temat, który w moim odczuciu jest nadal bardzo popularny na wszelkiego rodzaju meetupach, czy konferencjach porgramistycznych (sam się do tego poniekąd przyczyniam). Implikacją tego jest fakt , że wielu programistów odchodzi od oklepanych i bardzo niemodnych monolitów, na rzecz systemów rozproszonych. Pytanie brzmi, dlaczego? Osobiście uważam, że hype wszyskitgo co „distributed” i „micro” jest poniekąd efektem kuli śniegowej popchniętej kilka lat temu. Ktoś kiedyś wspomniał o SOA, nazwał ...
Architektura 2324 dni, 15 godzin, 27 minut temu 281 źrodło rozwiń
Studia informatyczne, jak wiele innych kierunków inżynierskich, składają się z dwóch typów przedmiotów do studiowania. Niektóre z nich to teoria której wykorzystania w praktyce nie potrafimy zrozumieć, a inne to coś, nad czym możemy spędzać setki godzin bo widzimy ich bezpośrednie przełożenie na naszą przyszłość. Niestety, z powodu braku dostatecznej wiedzy, te podziały o których mowa bardzo często nie mają nic wspólnego z rzeczywistością, a przedmioty z gatunku “przeży...
In my last post, we got familiar with the internals of string switch statement in C#. Today, we are going to deeply understand another language feature – iterators. Iterators in C# Despite the fact that iterators (using yield keyword) were introduced back in C# 2.0, many folks are still confused how they work. Honestly, I’m not surprised at all, because to me this mechanism was a mystery for a long time. Of course, we have to clearly distinguish two things here:How do...
Sztuka programowania 2460 dni, 9 godzin, 37 minut temu 152 źrodło rozwiń
Last Tuesday, I had a talk in Wrocław about async/await in C# (thanks once again, you rock!). At some point, I asked the audience seemingly simple question. Why do we need async keyword at all? When I look at the folks, lots of them looked very confused since the answer seemed very obvious. Well, as you probably expect, it’s a little bit more complicated. Async makes my method asynchronous… At the very beginning, I should explain why the answer to my ques...
Sztuka programowania 2529 dni, 14 godzin, 7 minut temu 292 źrodło rozwiń
Słyszałeś o GraphQL? To technologia stworzona przez Facebook wspomagająca tworzenie API, a która ma być alternatywą dla tradycyjnej architektury REST.
Architektura 2532 dni, 10 godzin, 23 minuty temu 210 źrodło rozwiń
Na pewno znasz to uczucie, gdy jesteś na rozmowie rekrutacyjnej, wszystko jest miło, aż do momentu kiedy osoba, z którą rozmawiasz zadaje to osławione pytanie „A czy Pan/Pani ma może do mnie jakieś pytanie?”. Jedyne co wypełnia pokój w tym momencie to albo krępująca cisza, albo odpowiedź w stylu „Eeeeeyyyy… Chyba nie”. W dzisiejszym wpisie, będę chciała opowiedzieć ci trochę więcej o tym jakie pytania zadawać na rozmowie, tak żeby mieć z tego dla siebie jak najwięcej, ale też jak reagować w sytuacjach ki...
W poprzednich częściach cyklu skupiałem się na korzyściach płynących z TDD. Jeżeli ta metoda wejdzie nam w krew, te korzyści zachęcą nas, abyśmy pisali w ten sposób zawsze i wszędzie. Motywują nas do tego również eksperci mówiący, że każda linia kodu powinna być przetestowana. Okazuje się jednak, że nie zawsze testowanie wszystkiego na siłę jest dobrym rozwiązaniem. W tym artykule opiszę sytuacje, kiedy nie opłaca się używać TDD. Programując czasem natrafiamy na problemy, co do których nie mamy z góry...
Sztuka programowania 2610 dni, 16 godzin, 49 minut temu 190 źrodło rozwiń
Przestawienie się na Test Driven Development z pisania metodą tradycyjną nie jest łatwym zadaniem. Szczególnie na początku musimy walczyć ze starymi nawykami, a kiedy napotykamy trudności, naturalnym rozwiązaniem jest stosowanie metod, które znamy i rozumiemy. Poza tym początkowo TDD może nam się wydawać nieintuicyjne, a wkład pracy wydaje się większy. Jak to zwykle bywa w takich przypadkach, kluczem jest wytrwałość. Każda umiejętność wymaga czasu, aby ją dobrze opanować. Kiedy już nam się to uda, zauważ...
Sztuka programowania 2618 dni, 14 godzin, 42 minuty temu 93 źrodło rozwiń
Próbując wprowadzić TDD w projekcie najczęściej spotkamy się z oporem. Argumenty przeciwko tej technice ze strony developerów i osób decyzyjnych, które nie miały z nią do czynienia często się powtarzają. Postanowiłem więc w tym wpisie zebrać te argumenty i je omówić. Krytyka TDD ze strony osób mających doświadczenie w temacie zwykle przybiera inną formę i jest to temat na osobny wpis. Brak czasu to podstawowy argument przeciwko pisaniu testów. Jest bardzo często używany przez managerów oraz przez niek...
Sztuka programowania 2614 dni, 16 godzin, 42 minuty temu 239 źrodło rozwiń
I can’t be the only person who hates waiting for the code to compile and run… Especially when I want to test only a small part of it! That’s a total waste of time! But good news everyone, I found a way to run a part of my C# code without building the whole project!Ctrl + E, E – the magical shortcut!
Leniwy czy opóźniony? Po ostatnim wpisie pojawiły się pytania, dlaczego użyłem nazwy Deferred Execution a nie Lazy Loading. W tym wpisie wyjaśnię jak ja widzę te dwa koncepty. Aby zobrazować przedstawione zagadnienie, przygotowałem program, który pomoże pokazać co i kiedy się dzieje. Cały kod można znaleźć pod tym linkiem. Przedstawiłem tam trzy koncepty tworzenia danych. Jeden normalny, drugi na bazie Lazy Loading i trzeci, o którym mówiłem w poprzed...
Daj się poznać 2017 2731 dni, 41 minut temu 186 źrodło rozwiń
Thanks to this class, we can open the window(form) immediately and eg. all data can be loaded in the background. This is usefull becouse basic Windows application runs on a single thread and when we’ve got big list to load on this form. We have to wait until this list and all the others components are loaded then we can display this form.This is sometimes a nuisance....
Daj się poznać 2017 2734 dni, 43 minuty temu 141 źrodło rozwiń
~ MJWstęp Od jakiegoś czasu, dużą uwagę poświęcam rozwiązaniom NoSQL. Nie jest to łatwy temat, ponieważ wymaga od programisty kompletnego przestawienia się z myślenia relacyjnego na agregacyjne. Do tego dochodzi mnóstwo „kruczków”, typów do wyboru i wreszcie dostawców rozwiązań. Pojawia się w głowie wiele pytań, tj. Jakim cudem moja baza danych może nie posiadać schematów? Tym i innym zagadnieniom przyjrzę się w dzisiejszym wpisie.Co to jest NoSQL? (nie NOSQL!) Przede wszystkim jest to odpowiedź na cor...
Bazy danych i XML 2755 dni, 1 godzinę, 4 minuty temu 180 źrodło rozwiń
How many programmers you know use ‘yield‘? Seriously, if you have an occasion, ask them – I’m afraid you will notice a strange thing – everybody heard about it but (almost) nobody (including me) uses it. Time to change it! Why? Because ‘yield‘ was introduced in C# 2.0 (yeeeah, it’s that old!) and can help you get rid of some of the ‘temp’ collections in your code and, what’s more important, it may prevent you from System.OutOfMemory exception.
Daj się poznać 2017 2760 dni, 16 godzin, 45 minut temu 206 źrodło rozwiń
Sztuka programowania 2763 dni, 10 godzin, 41 minut temu 361 źrodło rozwiń
Witajcie Tym wpisem zamierzam udowodnić że algorytmy genetyczne są nie tylko fajną dziedziną programowania, ale również mogą być proste. W dalszej części wpisu znajdziecie opis implementacji prostego algorytmu i link do wklejki z programem wykonanym w języku C#....
Daj się poznać 2017 2794 dni, 3 godziny, 21 minut temu 308 źrodło rozwiń
W tym artykule postaram się wam przybliżyć algorytmy do wykrywania krawędzi oparte o splot i oczywiście sam splot. Wykrywanie krawędzi jest jednym z elementów rozpoznawania obrazów. Informację o kształcie obiektu reprezentowane są poprzez krawędzie zapisane na obrazie, dlatego powstało wiele technik wykrywania krawędzi. ...
Daj się poznać 2017 2793 dni, 12 godzin, 45 minut temu 60 źrodło rozwiń
Until recently I was into ASP.NET MVC because of it’s possibility to extending, modifying and doing pretty much whatever you want with it. And while I’ve got rather proficient in plugging stuff in it’s pipeline and/or doing custom stuff like routing, binding or results, it never changed one fact about MVC – it’s big, really big. And the truth is, some times we don’t want so much. That’s why I wanted to give Nancy a go for some time, below you’ll find some of my first thoughts. And i must tell you now, it...
Daj się poznać 2017 2799 dni, 1 godzinę, 37 minut temu 111 źrodło rozwiń