Większość wzorców projektowania taktycznego DDD należy do paradygmatu zorientowanego obiektowo, a model anemiczny opisuje sytuację, w której cała logika biznesowa jest umieszczana w usługach, a nie w obiektach, co czyni je rodzajem DTO. Innymi słowy model anemiczny jest synonimem stylu proceduralnego, który nie jest zalecany w przypadku modelu złożonego. Nie …
Wszyscy wiedzą, że nowi programiści piszą długie funkcje. W miarę postępów coraz lepiej radzisz sobie z dzieleniem kodu na mniejsze części, a doświadczenie uczy Cię, jak to robić. Wpisz SQL. Tak, SQLowe myślenie o kodzie różni się od proceduralnego myślenia o kodzie, ale ta zasada wydaje się równie odpowiednia. Powiedzmy, …
Znalazłem drzewo dziedziczenia w naszej (raczej dużej) bazie kodu, które wygląda mniej więcej tak: public class NamedEntity { public int Id { get; set; } public string Name { get; set; } } public class OrderDateInfo : NamedEntity { } Z tego, co mogłem zebrać, jest to przede wszystkim używane …
Załóżmy na przykład, że mam klasę Member, która ma lastChangePasswordTime: class Member{ . . . constructor(){ this.lastChangePasswordTime=null, } } którego lastChangePasswordTime może być nieobecny, ponieważ niektórzy członkowie mogą nigdy nie zmieniać swoich haseł. Ale zgodnie z Jeśli wartości zerowe są złe, co należy zastosować, gdy wartość może być znacząco nieobecna? …
Pracuję z interfejsem API REST, który znajduje się na serwerze, który obsługuje dane dla wielu urządzeń IoT. Moim zadaniem jest wysłanie zapytania do serwera za pomocą interfejsu API w celu zebrania określonych informacji o wydajności tych urządzeń. W jednym przypadku uzyskuję listę dostępnych urządzeń i odpowiadających im identyfikatorów, a następnie …
Podczas pisania biblioteki dla dużego projektu, nad którym pracuję w pracy, pojawił się problem, który wymagał wysłania tokena na adres e-mail, a następnie przesłania go z powrotem do kodu, z którego można go następnie wykorzystać. Mój kolega mówi, że po prostu czytam ze STDIN (używając Pythona:), code = input("Enter code: …
Wspólny wzorzec lokalizowania błędu wynika z tego skryptu: Obserwuj dziwność, na przykład brak wyjścia lub zawieszający się program. Znajdź odpowiedni komunikat w wynikach dziennika lub programu, na przykład „Nie można znaleźć Foo”. (Poniższe informacje mają znaczenie tylko wtedy, gdy jest to ścieżka podana w celu zlokalizowania błędu. Jeśli ślad stosu …
Więc programuję od kilku lat, a ostatnio zacząłem używać ReSharpera więcej. Jedną z rzeczy, które ReSharper zawsze mi sugeruje, jest „odwrócenie” instrukcji „if” w celu zmniejszenia zagnieżdżania ”. Powiedzmy, że mam ten kod: foreach (someObject in someObjectList) { if(someObject != null) { someOtherObject = someObject.SomeProperty; } } A ReSharper zasugeruje, …
for (Canvas canvas : list) { } NetBeans sugeruje użycie „operacji funkcjonalnych”: list.stream().forEach((canvas) -> { }); Ale dlaczego jest to preferowane ? Jeśli tak, to trudniej jest je przeczytać i zrozumieć. Dzwonisz stream(), a następnie forEach()używasz wyrażenia lambda z parametrem canvas. Nie rozumiem, jak to jest ładniejsze niż forpętla w …
Nie jestem pewien, co zrobić z następującymi elementami: Pobieramy dane z zewnętrznego narzędzia w ramach naszego własnego narzędzia. Te dane są napisane w języku niderlandzkim. Piszemy nasz kod Java w języku angielskim. Czy powinniśmy przetłumaczyć ten holenderski na angielski, czy zachować go w języku holenderskim? Na przykład mamy 2 działy: …
Według Czy niewłaściwe jest używanie parametru boolowskiego do określania zachowania? , Wiem, jak ważne jest unikanie używania parametrów boolowskich do określania zachowania, np .: orginalna wersja public void setState(boolean flag){ if(flag){ a(); }else{ b(); } c(); } Nowa wersja: public void setStateTrue(){ a(); c(); } public void setStateFalse(){ b(); c(); …
Tak więc, starając się napisać program do koniugacji czasowników (algorytmicznie, nie poprzez zbiór danych) dla języka francuskiego, natknąłem się na niewielki problem. Algorytm koniugacji czasowników jest właściwie dość prosty w przypadku 17 lub więcej przypadków czasowników i działa według określonego wzorca dla każdego przypadku; dlatego sufiksy koniugacji dla tych 17 …
Erlang i Ruby mają funkcje spłaszczania tablic. Wydaje się, że jest to takie proste i przydatne narzędzie, które można dodać do języka. Można to zrobić: >>> mess = [[1, [2]], 3, [[[4, 5]], 6]] >>> mess.flatten() [1, 2, 3, 4, 5, 6] Lub nawet: >>> import itertools >>> mess = …
Większość języków programowania (zarówno języki dynamiczne, jak i statyczne) mają specjalne słowa kluczowe i / lub składnię, która wygląda znacznie inaczej niż deklarowanie zmiennych dla deklaracji funkcji. Widzę funkcje tak samo, jak deklarowanie innego nazwanego bytu: Na przykład w Pythonie: x = 2 y = addOne(x) def addOne(number): return number …
Wyciągnąłem stąd termin nazywanie smerfa (numer 21). Aby zaoszczędzić każdemu, kto nie zna problemu, nazewnictwo Smurf polega na prefiksowaniu szeregu powiązanych klas, zmiennych itp. Wspólnym przedrostkiem, aby uzyskać „a SmurfAccountViewprzechodzi SmurfAccountDTOna SmurfAccountController” itd. Rozwiązaniem, o którym ogólnie słyszałem, jest utworzenie przestrzeni nazw smurf i upuszczenie przedrostków smurf. To ogólnie mi …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.