Pytania otagowane jako design

Pytania dotyczące rozwiązywania problemów i planowania rozwiązania poprzez projektowanie oprogramowania.

2
Gdzie umieszczamy kod „pytając świat”, kiedy oddzielamy obliczenia od skutków ubocznych?
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 …

3
Czy istnieją strategie odkrywania usług REST za pomocą HATEOAS?
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 …
10 design  rest  hateoas 

1
Object Constraint Language (OCL) dla stosu w pakiecie java.util
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 …
10 design  languages  object  ocl 

3
Czy lista parametrów metody powinna zawierać obiekty czy identyfikatory obiektów?
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, …
10 design  methods 

3
Czy istnieje takie pojęcie jak „pseudo-implementacja” w rozwoju oprogramowania?
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ę …

5
Czy powinienem uwzględnić koszt wyjścia przy wyborze rozwiązania
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 …

5
Jak przetestować jednostkę, która jest refaktoryzowana do wzorca strategii?
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 …

6
Interpretacja zasady OSUSZANIA
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 …
10 java  design  dry 

4
Wzorzec projektowy do obsługi odpowiedzi
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 …

1
Jak refaktoryzować „klasę boga” Pythona?
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 …



7
Jak przejść od umiejętności pisania kodu do bycia dobrym programistą?
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 …

5
Config Class / Struct: Pattern czy Anti-Pattern? Alternatywy?
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 …

7
Jak poradzić sobie z problemem (kompilacji) dużej bazy kodu?
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 …

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.