Many people often ask what does it look like to work as a software engineer and what can you expect after being in the industry for a few years. I’m not going to focus on the actual job or the tools required to get it done, instead I’ll present my subjective insight into the career in the broad world of the software development.
Strona głównaUżytkownik
mgrzadziel | użytkownik
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...
Są takie słowa kluczowe w języku C#, bez których można się obejść. Tylko po co się ograniczać, jeśli ich zrozumienie może zaoszczędzić nam czas, liczbę linii kodu do napisania… i wzbudzić zazdrość wśród Javowców :) Zapraszam na trzy słowa o delegate.
Sztuka programowania 3184 dni, 1 godzinę, 49 minut temu 402 źrodło rozwiń
Druga część tworzenia wrappera C++owej biblioteki dla C# przy użyciu C++/CLI. W tym odcinku pin_ptr oraz przekazywanie tablicy między C# i C++ bez kopiowania za pomocą samych wskaźników.
Daj się poznać 2016 3184 dni, 19 godzin, 59 minut temu 96 źrodło rozwiń
Konkurs Daj Się Poznać właśnie wystartował, więc skoro postanowiłem wziąć w nim udział, to należy Ci się obszerna informacja cóż takiego mam zamiar przygotować i o czym będę pisał przez następne 10 tygodni, a może i dłużej. Na pierwszy ogień idą algorytmy genetyczne!
Daj się poznać 2016 3181 dni, 11 godzin, 24 minuty temu 313 źrodło rozwiń
My Wordpress blog is hosted on Windows Azure, and I am using the only MySQL provider that is available on Azure: ClearDB. Yesterday I couldn’t log in to the admin panel. I had no idea what was going on, because blog was working. I was googling for cause/solution, checking Azure logs, monitoring on Azure Portal, and accidentally I noticed that I exceeded ClearDB quota (20 MB). I did not receive any notifications from ClearDB though. What is important: if you exceed this limit...
Recently I read two great books about JavaScript: JavaScript: The Good Parts and Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript. Both are not for beginners, but rather programmers who know some Object Oriented language (e.g., C#, Java or C++)....
Jak wiemy Microsoft powołał projekt udostępnienia kodu źródłowego .NET-a. O czym można poczytać na tym blogu .NET. Są tam opisane szczegóły dotyczące motywów działania, jak i planów na przyszłość, które są obiecujące. Zachęcam do przeglądania tego udostępnionego kodu i nauki programowania poprzez podpatrywanie rozwiązań stosowanych przez kolegów z zespołu tworzącego .NET. Osobiście od jakiegoś czasu używam poniższych stron do badan...
Założenie: Chcemy mieć możliwie wysoką zgodność z SOLID + Depedency Injection Problem: Piszemy implementację, która zawiera jakieś zasoby i musi je zwalniać (czyli implementacja IDisposable) Omawiane zasoby są bardzo obciążające i nie chcemy je jak najszybciej zwalniać Nie chcemy mieć interfejsu dziedziczącego po IDisposable, bo najczęściej jest to Leaky Abstraction
Sztuka programowania 3674 dni, 22 godziny, 2 minuty temu 293 źrodło rozwiń
Najpierw zobaczymy, jak mogła wyglądać inicjalizacja słownika przed wersją 6.0... Składnia trochę ciężka w czytaniu. W C# 6.0 możliwe będzie... Moim zdaniem dużo lepiej to wygląda. Drobna zmiana, a zwiększa czytelność kodu. Kolejna natomiast zmiana nie podoba mi się i na szczęście została wycofana. Chciano wprowadzić nowy sposób uzyskiwania dostępu do pól. Klasycznie można odczytać wartość za pomocą...
Nowa wersja języka wprowadzi również ulepszenia w obsłudze wyjątków. Często tworzymy jeden wyjątek typu OperationFailedException, a w nim enum, który określa dlaczego operacja nie powiodła się tzn.: publicclass OperationFailedException : Exception { public OperationFailedException(int statusCode) { StatusCode = statusCode; } publicint StatusCode { get; set; } } Co jeśli chcemy napisać obsługę wyjątków, ale wyłącznie tych ze statusem 5? Dzisiaj możemy łapać wszystkie wyjątki i sprawdzać ...
Zacznijmy dziś od operatora nameof. Zwraca on po prostu nazwę przekazanej metody:staticvoid Main(string[] args) { string writeLine= nameof(Console.WriteLine); string testFunction = nameof(TestFunction); Console.WriteLine(writeLine); Console.WriteLine(testFunction); } privatestaticstring TestFunction(int a,double b) { returnnull; } Chyba nie ma tutaj nic nadzwyczajnego. Po prostu zwracana jest nazwa w formie string: Po co nam to? Na przykład, aby zaimplementować OnPropertyChanged:publicc...
23/10/20141 Commentdevtalk, jakub gutkowski, javascript, news, podcastprocentpro Od kiedy zacząłem świadomie organizować swój czas, zajęcia i – przede wszystkim – myśli (o czym można poczytać pod tagiem GTD), żaden mój pomysł się nie “marnuje”. Nic magicznie nie “znika”. Wszystko co wymyślę – ląduje w OneNote. Moja głowa okazuje się dość sprawnie działającym, póki co, narzędziem, bo listę “todo kiedyś” mam wypchaną pomysłami. A zaleta trzymania wszystkiego w ON jest taka, że co jakiś czas do pomysłów ...
Słowo dynamic jest często nadużywane prowadząc do trudno czytelnego kodu. Innym problemem jest wydajność – programiści często nie wiedzą jaki overhead za sobą ponosi każde użycie dynamic. Zacznijmy eksperymentowanie z IL:staticvoid Main(string[] args) { dynamic text ="Hello world"; } Wygenerowany IL:// Method begins at RVA 0x2050 // Code size 8 (0x8).maxstack 1 .entrypoint .locals init ( [0] object text ) IL0000: nop IL0001: ldstr "Hello world" IL0006: stloc.0 IL0007: ret Nic nadzwyczajn...
Each time we are creating application with some kind of menu it is nice to have the basic functionality to highlight selected menu item. There are some solutions you can find in the Internet, however each time I've tried to use one it hasn't been working perfect. So let's create our own in three steps!
W C# istnieje mało znana składnia do inicjalizacji zagnieżdzonych obiektów (nested object initializer syntax). Na czym polega cała zabawa? Spójrzmy na kod, za pomocą którego inicjalizujemy zagnieżdżony obiekt: Rectangle rectangle = new Rectangle { P1 = { X = 0, Y = 1 }, P2 = { X = 2, Y = 3 } };