Inżynieria oprogramowania

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

5
Jeśli wzorzec repozytorium jest nadmierny dla współczesnych ORM (EF, nHibernate), co jest lepszą abstrakcją?
Niedawno przeczytałem wiele argumentów przeciwko używaniu wzorca repozytorium z potężnymi mechanizmami ORM, takimi jak Entity Framework, ponieważ zawiera on funkcje podobne do repozytorium, a także funkcjonalność jednostki pracy. Kolejnym argumentem przeciwko używaniu wzorca do sytuacji takiej jak testowanie jednostkowe jest to, że wzorzec repozytorium jest nieszczelną abstrakcją, ponieważ bardziej ogólne …

4
Dlaczego nie ma spójnej definicji podstawowych pojęć dotyczących OOP?
Jestem bardzo nowy w programowaniu i trochę zdezorientowany czytaniem \ słyszenia różnych konwencji z różnych źródeł: Czy programowanie obiektowe ma 4 lub 5 pojęć? Jako nowicjusz rozumiem, że są to 5 pojęć: Abstrakcja Dziedzictwo Kapsułkowanie Wielopostaciowość Modułowość Dlaczego więc nie znajduję bardziej „ścisłej” definicji i wydaje się, że istnieje kilka …

2
Czy lepiej jest rozpocząć żądanie ściągnięcia lub wykonać lokalne zatwierdzenie scalania na master?
Używam GitHub od dłuższego czasu i zwykle przesuwałem swoje gałęzie funkcji, a następnie uruchamiałem żądanie ściągnięcia, które sam scaliłem. Odkryłem, że pomogło mi to śledzić, gdzie scaliłem oddziały. Ale ostatnio czytam coraz więcej o tym, jak działa Git i zdałem sobie sprawę, że mogę używać poleceń scalania, aby odwoływać się …




3
Czy w Scrumie programiści powinni rozmawiać bezpośrednio z klientami (omijając PO)?
W jaki sposób właściciel produktu w scrum powinien poradzić sobie z bardzo szczegółowymi pytaniami zespołu dotyczącymi wdrażanych przez niego funkcji, na które nie może natychmiast odpowiedzieć sam? Kiedy ewidentnie szybszym rozwiązaniem dla programisty jest bezpośrednia rozmowa z klientem? Zastanawiam się, czy bezpośrednia komunikacja między zespołem a klientem podważa rolę właściciela …

6
Jak możemy dołączać funkcje gotowe do wydania w naszych wydaniach produkcyjnych co drugi tydzień?
Jestem programistą w dość dużym, zwinnym zespole (mamy ośmiu programistów aktywnie wprowadzających zmiany w jednym repozytorium kodu). Co dwa tygodnie wprowadzamy nową wersję naszego oprogramowania do produkcji. Oto nasz obecny obieg pracy: Rozpoczynając nowe zadanie, programiści tworzą „gałąź funkcji” z głównej gałęzi programowania (korzystamy z git ) i pracujemy nad …

2
Gotowość a ukończenie Wykorzystanie pamięci asynchronicznej we / wy?
Oglądałem tę rozmowę o wdrażaniu Async IO w Rust, a Carl wymienia dwa potencjalne modele. Gotowość i realizacja. Model gotowości: informujesz jądro, że chcesz czytać z gniazda rób inne rzeczy przez jakiś czas… jądro informuje, kiedy gniazdo jest gotowe czytasz (wypełniasz bufor) rób co potrzebujesz zwolnij bufor (dzieje się automatycznie …
12 async  io 

1
Java 8: Dobra praktyka przekazywania strumieni w interfejsach API dla opóźnionych operacji?
W bibliotekach ciężkich przed biblioteką Java 8, takich jak Guava, dane wyjściowe używają wspólnych interfejsów Java Collection Framework, więc łatwo jest przekazać je zewnętrznym / wewnętrznym interfejsom API i nadal wykorzystywać leniwe obliczenia, jeśli metoda biblioteczna to robi (np. Leniwa filter()i transform()). Jednak w strumieniach Java 8 wezwanie do uzyskania …
12 java  lambda 

2
Co to znaczy, że algorytm jest zbieżny?
Cały czas spotykam się z tym terminem, czytając o uczeniu się przez wzmacnianie, na przykład w tym zdaniu: Jeśli problem jest starannie modelowany, niektóre algorytmy uczenia się zbrojenia mogą zbiegać się do globalnego optimum http://reinforcementlearning.ai-depot.com/ lub tu: W przypadku dowolnej ustalonej polityki Pi udowodniono, że algorytm TD opisany powyżej jest …

1
Szybkie indeksowanie kombinacji k
Powracam do starego problemu, nad którym pracowałem jakiś czas temu. Typowy scenariusz to „3 bity są ustawione w 8-bitowej liczbie całkowitej”, tj. 00000111. Wszystkie unikalne kombinacje z 3 bitami zestawu można łatwo wygenerować (w kolejności) za pomocą zagnieżdżonych pętli. Interesuje mnie kombinacja indeksu mapowania <->, tzn. „00001011” byłby drugą kombinacją …

3
Użycie „tego” w Golang
Golang musi znaleźć przewodnik po stylu znajdujący się tutaj , w części Nazwy odbiorców napisane: Nazwa odbiorcy metody powinna odzwierciedlać jej tożsamość; często wystarcza jedno- lub dwuliterowy skrót tego typu (np. „c” lub „cl” dla „Klient”). Nie używaj nazw ogólnych, takich jak „ja”, „to” lub „ja”, identyfikatory typowe dla języków …

2
Autoryzacja użytkownika za pomocą mikrousług
Czy mikrousługi powinny być odpowiedzialne za obsługę własnej autoryzacji, czy uważasz, że lepiej jest mieć oddzielną usługę autoryzacji, która jest wspólna dla wszystkich lub podzbioru (w tej samej domenie biznesowej) mikrousług? Dla mnie to drugie ma większy sens, ponieważ ułatwia stosowanie zmian, egzekwowanie zasad; jest SUCHY itp. Jednak może łatwo …

2
Narysuj wykres połączeń
Utrzymuję starą bazę kodu napisaną w języku python. W szczególności istnieje złożony fragment kodu, który z modułu wywołuje inne funkcje z innych modułów, które wywołują inne funkcje i tak dalej. To nie jest OOP, tylko funkcje i moduły. Próbowałem śledzić, gdzie zaczyna się i kończy przepływ za każdym razem, gdy …

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.