Na każdym etapie swojej kariery programista patrzy na interfejsy zupełnie inaczej. Programista rozpoczynający przygodę z programowaniem nawet jeśli zrozumie technikę działania interfejsów, to prawdopodobnie w perspektywie całej architektury aplikacji nie będzie do końca przekonany o sensie ich używania. Starszy programista z kolei dostrzeże wiele ich zalet, a wręcz konieczność ich stosowania..
Sztuka programowania 2320 dni, 9 godzin, 19 minut temu 242 źrodło rozwiń
W tym wpisie, kolejnym z serii dotyczącej kreacyjnych wzorców projektowych, omówię wzorzec projektowy Prototype – Prototyp. Prototyp, zgodnie z intuicją, ma za zadanie dostarczyć jakiś pierwotny obiekt, który potem wykorzystamy do konkretnych celów. Tym celem będzie tworzenie obiektów interesujących klienta.
Architektura 2368 dni, 10 godzin, 2 minuty temu 99 źrodło rozwiń
Posted on : By Grzegorz KotfisCode Druga „recepta na” będzie związana z warunkami if i skracaniem ich zapisu a zarazem poprawy ich czytelności. Na początek przykład nad którym popracujemy:public class MyBusinessClass { AuthorizationService authorizationService = new AuthorizationService(); public void AddOrderToInvoice(Order order, Invoice invoice, UserInfo user) { if (authorizationService.HasAuthorization(order, user, AuthorizationLevel.Read) &...
Sztuka programowania 2369 dni, 9 godzin, 1 minutę temu 157 źrodło rozwiń
Wprowadzenie Dzisiaj przedstawię Wam temat wzorców projektowych, a głównie pierwszy wzorzec projektowy, który wybrałem jakim jest Metoda fabryczna – Factory Method. Powiem, czemu je stosować, jakie istnieją rodzaje wzorców projektowych, jakie istnieją poszczególne wzorce projektowe, a na samym końcu wpisu zamieszczę przykładową implementację danego wzorca w języku C#. Wzorzec projektowy jest pewnym schematem, ogólnym rozwiązaniem pewnego problemu, na podstawie którego powstaje potem konkretna implementa...
Architektura 2370 dni, 9 godzin, 49 minut temu 131 źrodło rozwiń
The idea behind this blog post is pretty old but I haven’t had enough motivation to write this down till now. Recently, I’ve came across a couple of new articles about AutoMapper and I’ve been struck when I saw how people utilize AutoMapper in their projects. I’ve encountered cases when AutoMapper transforms simple thing like mapping values from object to other into a really complex problem, which results with highly complicated code only for the price of not writing mappings explicitly. Finally, I’ve fo...
Sztuka programowania 2510 dni, 7 godzin, 45 minut temu 253 źrodło rozwiń
Co oznacza, że kod jest STUPID? Jak zapobiegać oraz czego unikać aby tworzony kod nie został nazwany STUPID. Trochę o powszechnych, a zarazem dobrych praktykach tworzenia kodu.
Sztuka programowania 2516 dni, 9 godzin, 50 minut temu 342 źrodło rozwiń
I’ve recently written an article about managing TODOs in the codebase with TODOExplorer. I’ve also proposed an idea of introducing code snippet for TODOs which helps to keep all TODOs in predefined format as well as provides more information about delayed task (author, receiver, date, issue tracker id). This article was a result of a few discussions with my programmer-colleagues and I hoped that that idea of TODOs snippet was worth sharing (I’ve been using it in my project for a while). After publishing ...
Sztuka programowania 2565 dni, 10 godzin, 33 minuty temu 100 źrodło rozwiń
Powiedzmy, że mamy projekt, w którym wcześniej nie znano Resharpera. Otwierając taki kod „wszystko świeci” na różne kolory sugerując, że mamy w kodzie wiele problemów. Moje doświadczenie programistyczne mówi mi, że warto wysprzątać te miejsca, ponieważ na wstępnie z automatu poprawi się nam wiele bugów i znacznie zwiększy czytelność. I tutaj staje się przed problemem ...
"The code that a computer can understand can be written by anyone. A good programmer writes code that people can understand."
Sztuka programowania 2739 dni, 21 godzin, 55 minut temu 169 źrodło rozwiń
Cleaner constructors with throw expressions in C# 7Posted by Lazy
Sztuka programowania 2820 dni, 9 godzin, 57 minut temu 104 źrodło rozwiń
I’m building my Get Noticed project from the scratch. And since 3 months is actually a very short span of time, I need compromise between doing some things fast (boring ones) and doing other things in a way that will allow me to write about it and not be ashamed to show some code afterwards. That means I’ll need to incur a technical debt in few areas of project. And I must watch it closely to not allow it to grow without control or interests will probably kill me.
Daj się poznać 2017 2858 dni, 20 godzin, 9 minut temu 50 źrodło rozwiń
Siadam do kodu i piszę… i piszę… i piszę… a potem save, commit, push. Done? No, nie bardzo. Jeśli pracujesz w TDD, to dobrze wiesz co to jest: red, green, refactor. REFACTOR!, REFAKTORYZACJA! Czyli moment kiedy po prawie skończonej pracy porządkujemy kod. To sprowadza się do posprzątania śmieci, usunięcia zbędnych zmiennych, metod i ...
Sztuka programowania 2872 dni, 4 godziny, 33 minuty temu 194 źrodło rozwiń
Formatowanie kodu to jedna z podstawowych czynności jaką możemy zrobić w ramach refaktoryzacji. Jest proste i bezbolesne (pod warunkiem, że w Twoim języku programowania nie programuje się białymi znakami*). Daje szybki efekt w postaci czytelniejszego kodu a to jest bardzo ważne, zresztą pisałem już o tym tutaj. Visual Studio posiada ...
Sztuka programowania 2876 dni, 5 minut temu 214 źrodło rozwiń
In the first part How to split monolith solution - part 1: common myths I wrote about common myths. In this post I will try to find "lines" to cut, using the Visual Studio and the ReSharper. Let's go!
Architektura 3095 dni, 22 godziny, 41 minut temu 46 źrodło rozwiń
Do you have a big and heavy solution? Do you want to split it? Are you afraid? I will try to help.
Architektura 3097 dni, 1 godzinę, 6 minut temu 64 źrodło rozwiń
The most important thing I learn in 2015 is that clean code is everything. You can have bad performance or logical errors or even security issues. But without clean code you cannot fix anything above, because you don't understand the code. The regular expressions were always dramatic for fast reading. Unless there was a variable which describes it well, I need a lot of time to understand what exactly is going on. Just let look on the JavaScript example...
W kilku poprzednich postach pisałem o tym jak powinna wyglądać czysta i przejrzysta architektura aplikacji. Kluczową rzeczą w takiej architekturze jest jednokierunkowy przepływ wywołań od kontrolera do prezentera. Kłopot z taką architekturą pojawia się, gdy mamy narzucaną architekturę w której naszym punktem wejścia do obsługi zdarzenia jest metoda, która musi zwrócić wynik poprzez return...
Architektura 3356 dni, 9 godzin, 52 minuty temu 365 źrodło rozwiń
In this short article I would like to say a few words about the phenomenon of code biodegradation and present you some tips on how to deal with it, so that your everyday work doesn’t become a real ordeal over time.
Skomplikowane aplikacje mogą wymagać skomplikowanego kodu. Jeżeli jego złożoność wynika ze złożoności modelowanego problemu to wszystko jest ok. Gorzej, jeżeli złożoność kodu wynika ze… złożoności kodu. W takim przypadku mówimy o złożoności przypadkowej.
Architektura 3776 dni, 10 godzin, 53 minuty temu 311 źrodło rozwiń
Najprościej definiując problem: Czy mamy tylko jeden return z metody, czy też mamy ich kilka w różnych miejscach. Mówię też o metodach, które nie zwracają wartości. Metodę void też można skończyć wcześniej...
Sztuka programowania 3924 dni, 3 godziny, 52 minuty temu 229 źrodło rozwiń