Maciej "MJ" Jedrzejewski – Your AI & Software Consultant in SwitzerlandHomeAbout meMastering Strategic Domain-Driven Design After all the previous steps, we are ready to continue our journey and try to prepare the first draft for splitting the Fitness Studio domain into several subdomains. But there is still a long way to go. First, let’s try to define what a subdomain is. Every business operates in some business domain – we all know that. To keep it efficient, it is usually divided into different a...
Strona głównaUżytkownik
jedmac | użytkownik
Architektura niedziela, 1 października 2023 08:37:41 GMT 13 spam? źrodło rozwiń
Razem z Kamil Bączek ostatnie 6 miesięcy spędziliśmy na tworzeniu pewnego repozytorium na GH, w którym staramy się rozwiązać powszechny problem - spędzania wielu godzin na przeglądaniu niezliczonych repozytoriów w poszukiwaniu wskazówek dotyczących projektowania architektury w naszych aplikacjach...
Architektura poniedziałek, 11 września 2023 12:27:30 GMT 11 spam? źrodło rozwiń
Oh boy, here we go again. Every time we build software, we operate in an area called a domain. It is something that describes our business. It can be:E-commerce – this domain can include online shopping, product catalogue, order processing, payments and many other smaller partsTaxes – in this domain we can find areas like income tax, corporate tax, tax compliance or tax policy...
Architektura niedziela, 6 sierpnia 2023 09:47:57 GMT 15 spam? źrodło rozwiń
Years ago I wanted to start learning Domain-Driven Design. It was quite a popular topic, many of my colleagues were discussing it. The problem, as always, was where to start. I decided to ask one of my old mentors. He told me, “MJ, there is a great book about DDD called the Blue Book. Go and read it and everything will be clear. There is nothing better on the market”. “Well, it m...
Architektura 514 dni, 3 godziny, 57 minut temu 251 źrodło rozwiń
One of the most common problems in software development is the unconscious creation of a treasury of knowledge and decision-maker in the form of one person. This can be a developer, architect, manager, or any other role without whom we cannot move on:PRs are blocked because this guy has to approve itNo one can work in the concrete area because only John knows itNew deployment cannot be released because only Mark can approve itThe decision o...
In recent years, I have encountered many problems in IT companies caused by incorrect software architecture. What do I mean ? In most cases, this is one direction – either it is too trivial or incredibly complicated in relation to the problem it is supposed to solve. Both cases lead to performance problems and stop the organization from being agile.What do I mean by software architecture? Before I start talking about the problems caused by...
Architektura 709 dni, 3 godziny, 34 minuty temu 163 źrodło rozwiń
Recent years have been marked by microservices. Who among you hasn’t heard of them? They were everywhere – at conferences, groups, job listings, coffee talks, and blog posts. At some point it got to the point where if you weren’t working on a system composed of microservices, it was kind of a problem – you felt the world was getting away from you, and your colleagues were in another galaxy. Someone found a silver bullet for the design of IT systems. On the other...
Architektura 885 dni, 2 godziny, 5 minut temu 152 źrodło rozwiń
During the development team life cycle, we encounter many problems related to the lack of timely communication. This can lead to regular high costs associated with changes that come too late, or with the progressive demotivation of each team member. Examples? A very long time of processing pull requests. Suppose person A is working on a particular feature. After a week of working alone (IMO not a good habit) he creates a PR. Another team member starts the review...
Accurate estimates are a well-known problem in the world of IT. We always try to reach a level where all items that were estimated become equal to actual implementation. I know this is upsetting but there is no option to achieve it. Of course, sometimes you will perfectly fit it. Still, it is usually over – not bad for your business, but customers might spot that this project is a bit expensive – or under – bad for your business – estimated. Based on my experien...
Recently, I had the pleasure of speaking at 2 programming events – World Engineering Days and one of the biggest software conferences in Poland, 4Developers. During both speeches, I talked about many different things related to the modern way of software development – continuous deployments, short-living branches, canary releases, and more. All are linked to the short feedback cycle. One of the side topics was vertical slices. What is a vertical slice? Before we ...
Sztuka programowania 984 dni, 3 godziny, 56 minut temu 58 źrodło rozwiń
I am a big fan of automating everything possible – do not confuse it with everything, some things should still be done manually. One step that can help with this is the hero of today’s article – continuous deployments. I assume that most of you have already heard about this at one of the conferences, meetups or read in one of the many articles that can be found on the Internet. For those who have not heard, I have prepared a short, theoretical introduction. Suppo...
Sztuka programowania 1006 dni, 3 godziny, 31 minut temu 47 źrodło rozwiń
A fairly typical scenario – there is production software that was released some time ago. The entire development team works on a set of features that will be a part of the next release (no concept of continuous deployments is known). The deadline is coming. More and more work is added. Finally, the release date comes...
It has been a long time since microservices were introduced to the world. They had their ups – yeah, let’s use it everywhere – and downs – whaaat, modular monolith only. But that is not what this story will be about.
Architektura 1046 dni, 3 godziny, 48 minut temu 63 źrodło rozwiń
Imagine quite a common situation. You are a part of the development team. There is some kind of user story or a technical task that needs to be implemented. You create a branch for it. Your hard work has just started. After one week of development, you are finished with it. You have been synchronizing your branch with a main one (does not matter if this is development, stage, master or any other – a shared one) multiple times during your work or you did it just i...
Sztuka programowania 1055 dni, 3 godziny, 29 minut temu 48 ź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 2797 dni, 15 godzin, 27 minut temu 180 źrodło rozwiń
~ MJ Jako, że jestem w trakcie certyfikacji MCSD – został mi ostatni egzamin – jestem na bieżąco ze wszelkimi informacjami tejże dotyczącymi. I tak, okazuje się, że ścieżka MCSD: Web Applications zostanie zlikwidowana wraz z końcem marca – dokładnie 31.03.2017 r. Co to w praktyce oznacza? Każdy, kto posiada certyfikat i jego status jest aktywny dnia 26.09.2016 r. lub zda egzamin po tej dacie, zachowa go. A co, jeżeli ktoś nie odnowił lub nie zrobił go przed 31.03.2017 r.? Nie ma o co się martwić. Nowa...
~ MJIQueryable W przypadku IQueryable, wszystkie wyniki najpierw odfiltrowujemy po stronie bazy danych, a następnie przekazujemy do aplikacji.IEnumerable W przypadku IEnumerable, wszystkie wyniki z bazy danych najpierw ładujemy do pamięci, a następnie odfiltrowujemy po stronie aplikacji. W przypadku zapytań do bazy danych, dużo lepszym pomysłem będzie stosowanie IQueryable, ponieważ można skorzystać z dobrodziejstw SQL, co znacznie przyspieszy szybkość działania zapytania oraz zmniejszy ruch wewną...
Sztuka programowania 2853 dni, 16 godzin, 27 minut temu 247 źrodło rozwiń
Reading time ~5 minutes In my ongoing series on calculating similarities one angle always seemed worth trying, and was pointed out many times on Reddit - use C++ and matrix manipulations. Similarity calculation fits very nicely into matrix representation, and there are algorithms targeting sparse matrix manipulation. So why did I delay it for so long? Because I had other angles I wanted to try and, from the looks of it required significant changes in the existing code base. But since last op...
Sztuka programowania 2899 dni, 18 godzin, 28 minut temu 150 źrodło rozwiń
.NET daje sporo możliwości porównywania tekstów. Co będzie szybsze: Contains czy StartsWith ? Jak to zmierzyć i do czegu służy BenchmarkDotNet ?
~ MJ Stało się, 2016 rok przeszedł do historii. Jest to idealny moment na wszelkie podsumowania. Jak to wyglądało z mojej strony?