Zgodnie z zasadą rozdzielania zapytań , a także Myślenia w danych i DDD z prezentacjami Clojure, należy oddzielić skutki uboczne (modyfikujące świat) od obliczeń i decyzji, aby łatwiej było zrozumieć i przetestować obie części. Pozostawia to pytanie bez odpowiedzi: gdzie w stosunku do granicy powinniśmy postawić „zadawanie światu”? Z jednej …
Podczas budowania usługi REST z ograniczeniem HATEOAS bardzo łatwo jest ogłosić istnienie zasobów poprzez łączenie. Robisz GETdo katalogu głównego mojej witryny, a ja odpowiadam dokumentem głównym z listą wszystkich zasobów pierwszego poziomu: { users: { href: "/users" } questions { href: "/questions" } } Klienci, którzy rozumieją, jak odczytać te …
Zbliża się egzamin i patrzę na wcześniejsze artykuły, aby dowiedzieć się, czego się spodziewać. Trochę utknąłem w poniższym i naprawdę doceniłbym, gdyby ktoś mógł podać kilka przykładowych odpowiedzi. Napisz warunki wstępne i dodatkowe w OCL dla każdej z następujących operacji (zawartych w klasie Stack w pakiecie java.util): (1) Boolean empty …
Nasze zespoły prowadzą następującą dyskusję: Powiedzmy, że mamy dwie następujące metody: public Response Withdraw(int clubId, int terminalId,int cardId, string invoice, decimal amount); public Response Withdraw(Club club, Terminal terminal,Card card, string invoice, decimal amount); to, co jest przesyłane przez sieć, to tylko identyfikatory. jedna strona mówi, że pierwsza metoda jest poprawna, …
Szukam etykiety opisującej praktykę korzystania z metod obliczeniowych opartych na ludziach lub innych sposobów „udawania” algorytmu w celu szybkiego uzyskania produktu lub wersji demonstracyjnej bez konieczności poświęcania czasu na opracowanie rozwiązania technicznego / skalowalnego / rozwiązanie analityczne? Np .: użycie Amazon Turk do zliczenia liczby pustych stolików w restauracji. Chcę …
Obecnie wybieram między dwoma realnymi projektami / rozwiązaniami oprogramowania. Rozwiązanie 1 jest łatwe do wdrożenia, ale zablokuje niektóre dane w zastrzeżonym formacie i trudno będzie je później zmienić. Rozwiązanie 2 jest trudne do wdrożenia, ale później będzie o wiele łatwiejsze do zmiany. Czy powinienem zdecydować się na YAGNI, czy powinienem …
Jeśli mam w kodzie funkcję, która wygląda następująco: class Employee{ public string calculateTax(string name, int salary) { switch (name) { case "Chris": doSomething($salary); case "David": doSomethingDifferent($salary); case "Scott": doOtherThing($salary); } } Normalnie przefakturowałbym to, aby użyć Ploymorfizmu przy użyciu fabrycznego wzorca klasy i strategii: public string calculateTax(string name) { InameHandler …
W tej chwili mam problem z koncepcją DRY (Don't Repeat Yourself) w moim kodowaniu. Tworzę tę funkcję, w której obawiam się, że stanie się zbyt skomplikowana, ale staram się przestrzegać zasady OSUSZANIA. createTrajectoryFromPoint(A a,B b,C c,boolean doesSomething,boolean doesSomething2) Ta funkcja, o której mówię, przyjmuje 3 parametry wejściowe, a następnie funkcja …
Przez większość czasu, gdy piszę kod, który obsługuje odpowiedź na określone wywołanie funkcji, otrzymuję następującą strukturę kodu: przykład: jest to funkcja, która będzie obsługiwać uwierzytelnianie w systemie logowania class Authentication{ function login(){ //This function is called from my Controller $result=$this->authenticate($username,$password); if($result=='wrong password'){ //increase the login trials counter //send mail to …
Problem Pracuję nad projektem w języku Python, którego główną klasą jest nieco „ Boski obiekt ”. Jest tak cholernie wiele atrybutów i metod! Chcę refaktoryzować klasę. Jak dotąd… W pierwszym kroku chcę zrobić coś stosunkowo prostego; ale kiedy wypróbowałem najprostsze podejście, przełamało kilka testów i istniejących przykładów. Zasadniczo klasa ma …
Biorąc pod uwagę, że zmiany w sygnaturze API / metody publicznej powinny być minimalne, aby zapobiec łamaniu kodów klientów korzystających z tych metod, zastanawiałem się, czy prawo Demetera w mniejszym stopniu się do nich stosuje. Prosty przykład: class Account() { double balance; public void debit(Transaction t) { balance -= t.getAmount(); …
„Odkryłem” interfejsy i zacząłem je kochać. Piękno interfejsu polega na tym, że jest to umowa, a każdy obiekt spełniający tę umowę może być używany wszędzie tam, gdzie wymagany jest interfejs. Problem z interfejsem polega na tym, że nie może on mieć domyślnej implementacji, co utrudnia przyziemne właściwości i pokonuje DRY. …
Sfrustruje mnie brak konkretnych wyjaśnień, jak przejść od umiejętności pisania skryptów (bash, awk) i pisania prostych aplikacji (c, php, python) do projektowania i tworzenia większych, bardziej skomplikowanych programów. Wydaje się, że z jednej strony są książki z językami programowania, az drugiej strony książki z inżynierii oprogramowania / zarządzania projektami przeznaczone …
Jeśli dodasz nowe opcje konfiguracji do programu, może on często wywoływać mnóstwo efektów falowania, jeśli chodzi o uzyskanie opcji tam, gdzie trzeba działać. Istnieją trzy podstawowe sposoby radzenia sobie z tym, o których jestem świadomy: Przekaż wszystkie ustawienia konfiguracji do części programu, które potrzebują ich jawnie jako prymitywów. Jest to …
Chociaż potrafię kodować, nie mam jeszcze doświadczenia w pracy przy dużych projektach. Do tej pory robiłem albo kodowanie małych programów, które kompilowałem w ciągu kilku sekund (różne ćwiczenia c / c ++, takie jak algorytmy, zasady programowania, pomysły, paradygmaty, lub po prostu wypróbowywanie interfejsu API ...) lub praca nad kilkoma …
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.