Inżynieria oprogramowania

Pytania i odpowiedzi dla profesjonalistów, nauczycieli akademickich i studentów pracujących w cyklu życia systemów

5
Czy widok nie powinien sprawdzać poprawności?
Czytałem „ W MVC model powinien obsługiwać sprawdzanie poprawności? ”, Ponieważ byłem ciekawy, gdzie powinna znaleźć się logika sprawdzania poprawności w witrynie MVC. Jeden wiersz w górnej odpowiedzi brzmi następująco: „kontrolery powinny obsługiwać sprawdzanie poprawności, modele powinny obsługiwać weryfikację”. Podobało mi się to, ale zastanawiałem się, dlaczego nie sprawdzalibyśmy danych …
10 architecture  mvc 

2
Ile powinien wiedzieć widok o modelu?
Buduję aplikację w Pythonie z otoki Pythona dla WPF i ze wsparciem DAG. Obecnie jestem w punkcie, w którym muszę zdecydować o spójnym sposobie interakcji między danymi a widokiem. O ile wiem, istnieją obecnie dwa oczywiste rozwiązania. Pierwszy jest podobny do struktury aplikacji Android. Masz kontroler, który ustawia / wypełnia …
10 model  view 

4
Wersje semantyczne w Agile
Powiedzmy, że mam 14-dniowe iteracje sprintu, w których mam kilka historii nowych funkcji, kilka ulepszeń i kilka błędów do naprawienia. Te zmiany wdrażam również, gdy są gotowe, nie czekam na koniec sprintu. Mój problem polega na tym - jak śledzić semantyczną wersję produktów opracowanych i utrzymywanych w ten sposób? Jeśli …

3
Czym dokładnie jest inżynieria oprogramowania oparta na modelu (MDSE)?
Przyszedłem do akronimu MDSE dzisiaj na infoq , a informacje mogłem znaleźć, co dość niejasne, a opis był pełen modnych słów: MDSE polega na umożliwieniu inżynierom oprogramowania pracy na poziomie abstrakcji, w którym wymagania, architektura i informacje projektowe są maksymalnie uporządkowane (pod względem „entropii” informacji) i zachowane. (Nazwij to „produktem …

4
Zmniejszenie złożoności klasy
Patrzyłem na niektóre odpowiedzi i szukałem w Google, ale nie mogłem znaleźć nic pomocnego (tzn. Nie miałoby to niewygodnych skutków ubocznych). Moim abstrakcyjnym problemem jest to, że mam obiekt i muszę wykonać na nim długą sekwencję operacji; Myślę o tym jak o rodzaju linii montażowej, jak budowanie samochodu. Wierzę, że …

1
Jaka jest motywacja adnotacji @ImplementedBy w Guice?
Niedawno przeczytałem o @ImplementedByadnotacjach dostępnych w Google Guice . Pozwala programiście określić powiązanie między interfejsem a jego implementacją do wykorzystania w przyszłości we wstrzykiwaniu zależności. Jest to przykład wiązania just-in-time . Jestem przyzwyczajony do definiowania jawnych powiązań w moich modułach, używając następującej składni: bind(SomeInterface.class).to(SomeInterfaceImplementation.class); Zgodnie z dokumentacją jest to równoznaczne …

3
Członek: Używaj unikalnych identyfikatorów vs obiektu domeny
Po kilku przydatnych odpowiedziach na pytanie, czy powinienem użyć obiektu domeny lub unikalnego identyfikatora jako parametru metody / funkcji tutaj Identyfikator vs. obiekt domeny jako parametru metody , mam podobne pytanie dotyczące: członkowie (w poprzednich dyskusjach nie udało się zakryj to). Jakie są zalety i wady używania unikalnych identyfikatorów jako …

1
System powiadomień z sieci społecznościowej
tło Pracuję nad aplikacją dla klienta, która zawiera niektóre funkcje sieci społecznościowych. Początkowo opracowywałem mobilny front-end, ale okoliczności sprawiły, że jestem odpowiedzialny za rozwój back-endu. Jako ogólny kontekst, nasz system pozwala użytkownikom śledzić innych użytkowników i otrzymywać powiadomienia o tych, których obserwują, jak można oczekiwać od sieci społecznościowej. Zastrzeżenie polega …

1
Czy kontynuacje pierwszej klasy są przydatne w nowoczesnych obiektowych językach programowania?
Kontynuacje są niezwykle przydatne w funkcjonalnych językach programowania (np. ContMonada w Haskell), ponieważ pozwalają na prosty i regularny zapis kodu w stylu rozkazującym. Są one również przydatne w niektórych starszych językach imperatywnych, ponieważ można ich użyć do implementacji brakujących funkcji językowych (np. Wyjątków, coroutines, zielonych wątków). Ale dla współczesnego języka …

2
Utrzymanie stanu bez przydziału
Uczę się programowania funkcjonalnego i mam problem ze zrozumieniem, w jaki sposób niektóre konkretne scenariusze są wdrażane bez użycia przypisania. Poniższy prosty problem w zasadzie podsumowuje moje zamieszanie. Napisz program, który odbiera zdarzenia dotyczące zmian w danej strukturze danych i emituje zdarzenia, gdy ta struktura danych osiągnie określony stan. Mam …

3
Ogranicz rozmiar klastra za pomocą modułu o zamkniętym źródle w innym programie open source
Pracuję w akademickim instytucie badawczym silnie uzależnionym od obliczeń o wysokiej wydajności. W ciągu 10 lat opracowaliśmy własny kod Fortran, który jest bardzo dobrze oceniany i może działać na bardzo dużych klastrach. Aby większa społeczność badawcza mogła czerpać korzyści z kodu, rozważamy uczynienie go otwartym. Ponieważ jednak nasze fundusze są …

1
Kiedy powinienem podklasować wyjątek w Pythonie?
W moim kodzie jest około siedmiu miejsc, w których zgłaszam wyjątek. Wszystkie te wyjątki są traktowane tak samo: wydrukuj błąd do pliku dziennika, przywróć domyślny stan oprogramowania i zakończ. Podczas przeglądu kodu mój starszy inżynier, którego bardzo cenię, powiedział, że powinienem podklasować wszystkie te wyjątki. Jego argumentem jest to, że …

2
Czy obiekty żądania / odpowiedzi HTTP powinny być niezmienne?
Myślę, że można bezpiecznie powiedzieć, że większość aplikacji internetowych opiera się na paradygmacie żądanie / odpowiedź. PHP nigdy nie miało formalnej abstrakcji tych obiektów. Jedna grupa próbuje to zmienić: https://github.com/php-fig/fig-standards/blob/master/proposed/http-message.md W pewnym sensie udało im się jednak śledzić kwestię niezmienności. Z jednej strony obiekt zapytania / odpowiedzi zazwyczaj wymaga bardzo …

4
Dlaczego generatory i funkcje Pythona współdzielą słowo kluczowe „def”?
Rozważ następujące: def some_function(): return 1 def some_generator(): yield 1 W powyższym kodzie some_functionjest funkcja, podczas gdy some_generatorjest generatorem. Wyglądają dość podobnie. Problem, który mam podczas odczytywania kodu, polega na tym, że muszę skanować każdą linię w „funkcji” w poszukiwaniu yieldsłowa kluczowego, zanim będę mógł ustalić, czy jest to faktycznie …

3
Czym jest wyłączny łuk w bazie danych i dlaczego jest zły?
Czytałem najczęściej popełniane błędy w projektowaniu baz danych popełniane przez deweloperów pytania i odpowiedzi dotyczące przepływu stosu. Przy pierwszej odpowiedzi padło zdanie na temat łuku wyłącznego: Łuk wyłączny jest częstym błędem, gdy tabela jest tworzona z dwoma lub więcej kluczami obcymi, przy czym jeden i tylko jeden z nich może …

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.