Inżynieria oprogramowania

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

8
Jaki jest najlepszy sposób podziału pracy między programistami
Mój zespół i ja przebudowujemy witrynę, którą opracowaliśmy około 10 lat temu, i chcemy to zrobić w Agile. Więc po spędzeniu dużo czasu na czytaniu (prawdopodobnie za mało) mam problem z pytaniem, jak podzielić pracę między programistami. Będę bardziej konkretny i powiem, że strona jest podzielona na osobne moduły, które …

10
Interfejsy w klasie abstrakcyjnej
Mój współpracownik i ja mamy różne opinie na temat relacji między klasami podstawowymi a interfejsami. Jestem przekonany, że klasa nie powinna implementować interfejsu, chyba że z tej klasy można korzystać, gdy wymagana jest implementacja interfejsu. Innymi słowy, lubię widzieć taki kod: interface IFooWorker { void Work(); } abstract class BaseWorker …

3
Co oznacza „S” w OOPS?
Szukałem pełnej formy „ OOPS ” w Google , ale niestety istnieje wiele niejednoznacznych odpowiedzi. Niektórzy mówią, że to „ Systemy ”, a niektórzy twierdzą, że to „ Struktura ”, a niektórzy nawet wspominają o tym jako „ Streszczenie ”. Czy ktoś może mnie oświecić, aby znaleźć pełną formę OOPS, …


4
Czy Microservices powinny ze sobą rozmawiać?
Projektuję aplikację przy użyciu Mikro-usług i nie jestem pewien, jaki jest najlepszy mechanizm gromadzenia danych z wielu usług. Wierzę, że są dwie opcje: Zintegruj mechanizm komunikacji „między usługami”, który umożliwia usługom bezpośrednią rozmowę. Interfejs API Gateway wywoływałby pojedynczą usługę, która następnie wywołuje inne usługi w celu gromadzenia danych, zanim zwróci …

5
Dlaczego studiowanie interpretera seplenienia w seplenienie jest tak ważne?
Widziałem wiele programów CS i sugestii dotyczących uczenia się dla nowych programistów, którzy wzywają początkującego programistę do studiowania interpretera lisp, który jest specjalnie napisany w lisp. Wszystkie te witryny mówią coś podobnego do „to intelektualna rewelacja”, „jest to oświecenie, które powinien mieć każdy poważny programista” lub „pokazuje relacje sprzętowe / …

4
Dlaczego niektóre metody sortowania sortują według 1, 10, 2, 3…?
Zauważyłem, że wiele metod sortowania numerycznego wydaje się sortować według 1, 10, 2, 3 ... zamiast oczekiwanych 1, 2, 3, 10 ... Mam problem z wymyśleniem scenariusza, w którym potrzebuję pierwszej metody, a jako użytkownik czuję się sfrustrowany za każdym razem, gdy widzę ją w praktyce. Czy istnieją uzasadnione przypadki …
30 sorting 

5
Kiedy i dlaczego używać klas zagnieżdżonych?
Korzystając z programowania obiektowego mamy moc tworzenia klasy wewnątrz klasy (klasa zagnieżdżona), ale nigdy nie tworzyłem zagnieżdżonej klasy w ciągu 4 lat doświadczenia w programowaniu. Do czego służą klasy zagnieżdżone? Wiem, że klasa może być oznaczona jako prywatna, jeśli jest zagnieżdżona i że możemy uzyskać dostęp do wszystkich prywatnych członków …

7
Jak leczyć nieobsługiwane wyjątki? (Zakończ aplikację a utrzymaj ją przy życiu)
Jaka jest najlepsza praktyka, gdy w aplikacji komputerowej występują nieobsługiwane wyjątki? Myślałem o wyświetleniu użytkownikowi wiadomości, aby mógł skontaktować się z pomocą techniczną. Poleciłbym użytkownikowi ponowne uruchomienie aplikacji, ale nie wymuszanie jej. Podobne do omawianych tutaj: ux.stackexchange.com - Jaki jest najlepszy sposób radzenia sobie z nieoczekiwanymi błędami aplikacji? Projekt jest …


3
Dlaczego w Kotlin nie ma statycznego słowa kluczowego?
Kotlin jest znany przede wszystkim jako drop-in zamiennik Javy, ale pozbywa się dobrze znanego konstruktu Java: staticsłowa kluczowego. Zamiast tego ta funkcjonalność na poziomie klasy jest oferowana głównie przez obiekty towarzyszące. Co jest złego w metodach statycznych i polach, dla których obiekty towarzyszące stanowią lepszą alternatywę dla? Jestem zdezorientowany uzasadnieniem …

3
Co dzieje się z testami metod, gdy metoda ta staje się prywatna po przeprojektowaniu w TDD?
Załóżmy, że zaczynam rozwijać grę RPG z postaciami atakującymi inne postacie i tym podobne rzeczy. Stosując TDD, wykonuję kilka przypadków testowych w celu przetestowania logiki wewnątrz Character.receiveAttack(Int)metody. Coś takiego: @Test fun healthIsReducedWhenCharacterIsAttacked() { val c = Character(100) //arg is the health c.receiveAttack(50) //arg is the suffered attack damage assertThat(c.health, is(50)); …

6
Czy Scrum tworzy dodatkowe koszty dla projektów, w których wymagania się nie zmieniają?
Czytam Scrum - kieszonkowy przewodnik Gunthera Verheyena i mówi: Raport Chaosu z 2011 r. Sporządzony przez Standish Group stanowi punkt zwrotny. Przeprowadzono szeroko zakrojone badania porównując tradycyjne projekty z projektami wykorzystującymi metody Agile. Raport pokazuje, że zwinne podejście do tworzenia oprogramowania zapewnia znacznie wyższą wydajność, nawet wbrew starym oczekiwaniom, że …

4
W jaki sposób firma taka jak Amazon unika wąskich gardeł w dostępie do warstwy bazy danych?
Jeśli wyobrażasz sobie firmę taką jak Amazon (lub jakakolwiek inna duża aplikacja internetowa), która prowadzi sklep internetowy na masową skalę i ma tylko ograniczoną liczbę przedmiotów fizycznych w swoich magazynach, w jaki sposób mogą to zoptymalizować, aby nie było pojedyncze wąskie gardło? Oczywiście muszą mieć wiele baz danych z replikacją …


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.