Inżynieria oprogramowania

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

3
Dostaję zastrzyk zależności, ale czy ktoś może mi pomóc w zrozumieniu potrzeby posiadania kontenera IoC?
Przepraszam, jeśli wydaje się to kolejną powtórką pytania, ale za każdym razem, gdy znajduję artykuł na ten temat, głównie mówi on o tym, czym jest DI. Tak, dostaję DI, ale staram się zrozumieć potrzebę kontenera IoC, do którego wszyscy chyba się pakują. Czy celem kontenera IoC jest po prostu „automatyczne …


1
Struktura aplikacji Java: podział poziomy i pionowy
Trochę debaty na temat początkowej struktury projektu (przy użyciu Maven / Eclipse) dla dużej aplikacji Java. Opcja 1: entities (i.e. the whole database using Hibernate classes-first) services (i.e. sets of read/write operations on the entities) app (perhaps split up more further down the line) Opcja 2: area1-entities area1-services area1-app area2-entities …

1
Jak działają gniazda w połączeniach bezprzewodowych?
Pracowałem tylko na aplikacjach klienckich (w szczególności mobilnych) na Androidzie, gdzie cała sieć jest obsługiwana w warstwie HTTP przy użyciu komponentów dostarczonych przez framework, takich jak HttpUrlConnection. Ale systemy przesyłania wiadomości typu push, takie jak Websockets / XMPP itp., Utrzymują stałe połączenie z serwerem. Nawet GCM Google'a, który jest wbudowany …

2
Dlaczego miałbym używać ElasticSearch, jeśli już korzystam z bazy danych grafów?
Nie znajduję żadnego głębokiego wyjaśnienia w Internecie na temat porównania między ElasticSearch a bazami danych wykresów. Oba są zoptymalizowane do przeglądania danych. Wydaje się, że ElasticSearch jest zoptymalizowany pod kątem analizy. Jednak Neo4j jest również oparty na Lucene do zarządzania indeksami i niektórymi funkcjami pełnego tekstu. Dlaczego miałbym używać ElasticSearch, …

3
Dlaczego warto korzystać z fragmentów Androida?
Przeczytałem dokumentację i kilka innych wątków pytań na ten temat i tak naprawdę nie jestem przekonany; Nie widzę wyraźnie granic zastosowania tej techniki. Fragmenty są teraz postrzegane jako najlepsza praktyka ; każde działanie powinno zasadniczo wspierać jeden lub więcej fragmentów i nie może bezpośrednio wywoływać układu. Fragmenty są tworzone w …

4
Czy funkcje pierwszej klasy zastępują wzorzec strategii?
Wzornictwo strategia jest często traktowane jako substytut funkcji pierwszej klasy w językach, które ich nie posiadają. Powiedzmy na przykład, że chcesz przekazać funkcjonalność do obiektu. W Javie musisz przekazać obiektowi inny obiekt, który zawiera pożądane zachowanie. W języku takim jak Ruby wystarczy przekazać samą funkcjonalność w postaci funkcji anonimowej. Jednak …

4
Kto ma prawo do kodu, który pochodzi z wkładów w projekt open source?
Jeśli ktoś rozpocznie projekt open source (na przykład z licencją GPL), w którym ludzie będą wnosić wkłady, to kto będzie właścicielem tych wkładów na poziomie całego projektu? Czy nowy kod stanie się własnością oryginalnego autora, czy współautorzy również będą autorami? Kto ma prawo do trwającego projektu? Na przykład, kto ma …

5
Radzenie sobie z dużym żądaniem pociągnięcia
Obecnie pracuję nad projektem z zespołem korzystającym z przepływu pracy git. Jest to dość proste, master powinien być w stanie do wdrożenia, a do tworzenia funkcji i poprawek służą gałęzie. Ilekroć mamy ukończoną i przetestowaną funkcję lub poprawkę błędu, przenosimy ją do opanowania tak szybko, jak to możliwe. Chodzi o …
15 git  workflows 

4
Dodawanie pola do klasy w czasie wykonywania - wzorzec projektowy
Wyobraź sobie, że Twoi klienci chcą mieć możliwość dodania nowej właściwości (np. Koloru) do produktu w swoim sklepie internetowym w CMS. Zamiast mieć właściwości jako pola: class Car extends Product { protected String type; protected int seats; } Prawdopodobnie skończyłbyś robić coś takiego: class Product { protected String productName; protected …

3
Dlaczego interfejsy są bardziej pomocne niż nadklasy w uzyskiwaniu luźnego sprzężenia?
( Dla celów tego pytania, kiedy mówię „interfejs”, mam na myśli konstrukcję językowąinterface , a nie „interfejs” w innym znaczeniu tego słowa, tj. Publiczne metody, które klasa oferuje światu zewnętrznemu w celu komunikowania się i manipuluj nim. ) Luźne sprzężenie można uzyskać poprzez uzależnienie obiektu od abstrakcji zamiast rodzaju betonu. …

2
Numer wersji jako część nazwy pliku
Widzę, że niektóre programy zawierają numer wersji jako część nazwy pliku, a inne nie. Jestem bardziej przyzwyczajony do tego drugiego typu i myślę, że jest bardziej popularny, ale ten pierwszy typ widzę czasem w bibliotekach javascript. Na przykład nazwa pliku jQuery jest podobna do jquery-2.1.0.jszamiast jquery.js. Ilekroć aktualizuję te typy …

3
Jak obsługiwać różne wersje API
Piszę interfejs API Rest i zastanawiam się, jak najlepiej obsługiwać różne wersje. Nie mam na myśli tego, jak zdefiniować identyfikator URI jako V2 lub V3, ale raczej jak ustrukturyzować kod, biorąc pod uwagę, że musiałby on: Obsługa wielu wersji jednocześnie, np. Identyfikatory URI wersji V1, V2 i V3 muszą być …

4
Mapowanie między modelem widoku architektonicznego 4 + 1 a UML
Jestem trochę zdezorientowany, w jaki sposób model widoku architektonicznego 4 + 1 mapuje się na UML. Wikipedia podaje następujące mapowanie: Widok logiczny: schemat klasy, schemat komunikacji, schemat sekwencji. Widok rozwoju: schemat komponentów, schemat pakietów Widok procesu: Diagram aktywności Widok fizyczny: schemat rozmieszczenia Scenariusze: schemat przypadków użycia Papierowa rola konstrukcji diagramu …
15 architecture  uml  model  view 

7
Czy powinienem refaktoryzować duże funkcje, które w większości składają się z jednego wyrażenia regularnego? [Zamknięte]
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 5 lat temu . Właśnie napisałem funkcję, która obejmuje około 100 linii. Słysząc to, prawdopodobnie masz ochotę …

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.