Inżynieria oprogramowania

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

11
Co mogę zrobić, jeśli osoba przeprowadzająca wywiad nie zna odpowiedzi na swoje pytanie? [Zamknięte]
Wczoraj miałem straszne doświadczenie w wywiadzie. Ankieter zapytał mnie o czystą funkcję wirtualną. Powiedziałem: Może lub nie może mieć definicji w klasie bazowej, ale klasy pochodne powinny zapewniać definicję, chyba że chcą także być klasą abstrakcyjną. Ale ankieter ciągle pytał: „Czy czysty wirtualny może mieć definicję !!! ???” ... Powiedziałem …
48 c++  interview 

6
Czy sama zapamiętana funkcja czysta jest uważana za czystą?
Powiedzmy, że fn(x)jest to czysta funkcja, która robi coś kosztownego, na przykład zwraca listę głównych czynników x. Powiedzmy, że tworzymy zapamiętaną wersję tej samej funkcji memoizedFn(x). Zawsze zwraca ten sam wynik dla danych wejściowych, ale zachowuje prywatny bufor poprzednich wyników w celu poprawy wydajności. Formalnie rzecz biorąc, jest memoizedFn(x)uważany za …

8
Dlaczego kodowanie nazw argumentów w nazwach funkcji nie jest częstsze? [Zamknięte]
W Clean Code autor podaje przykład assertExpectedEqualsActual(expected, actual) vs assertEquals(expected, actual) z tym pierwszym twierdzono, że jest bardziej przejrzysty, ponieważ eliminuje potrzebę pamiętania, gdzie idą argumenty i potencjalne niewłaściwe użycie z tego wynikające. Jednak nigdy nie widziałem przykładu poprzedniego schematu nazewnictwa w żadnym kodzie i cały czas go widzę. Dlaczego …
47 clean-code 

9
Dlaczego pętla while (true) w konstruktorze jest rzeczywiście zła?
Mimo ogólnego pytania, moim zakresem jest język C #, ponieważ jestem świadom, że języki takie jak C ++ mają różną semantykę w zakresie wykonywania konstruktorów, zarządzania pamięcią, nieokreślonego zachowania itp. Ktoś zadał mi interesujące pytanie, na które nie było łatwo odpowiedzieć. Dlaczego (a może w ogóle?) Uważa się za zły …
47 c#  architecture 

9
Czy ustalenie dat dostawy elementów jest „zwinnym” sposobem pracy?
Mówi się nam, że będziemy pracować sprawnie nad nowym projektem przez kierownictwo wyższego szczebla. Stworzyli oni stand-upy, planowanie sprintu, retrospektywy itp. Jednak teraz opracowali plan wyszczególniający całą pracę, którą chcą, abyśmy wykonali z datami dla każdego elementu i ponownie pokazali daty z tym, co zostanie pokazane w każdym z nich …

12
Unikanie voodoo `goto`?
Mam switchstrukturę, która ma kilka spraw do załatwienia. switchPracuje przy enumco stwarza problem powielonych kodu poprzez wspólne wartości: // All possible combinations of One - Eight. public enum ExampleEnum { One, Two, TwoOne, Three, ThreeOne, ThreeTwo, ThreeOneTwo, Four, FourOne, FourTwo, FourThree, FourOneTwo, FourOneThree, FourTwoThree, FourOneTwoThree // ETC. } Obecnie switchstruktura …

4
Kod stanu HTTP dla „Still Processing”
Buduję RESTful API, który obsługuje kolejkowanie długotrwałych zadań do ewentualnej obsługi. Typowy przepływ pracy dla tego interfejsu API to: Użytkownik wypełnia formularz Klient publikuje dane w interfejsie API API zwraca 202 Zaakceptowano Klient przekierowuje użytkownika na unikalny adres URL tego żądania ( /results/{request_id}) ~ ostatecznie ~ Klient ponownie odwiedza adres …
47 rest  http 

7
Jaka jest rzeczywista wartość spójnego stylu kodu
Należę do zespołu konsultantów wdrażającego nowe rozwiązanie dla klienta. Jestem odpowiedzialny za większość recenzji kodu w bazie kodu po stronie klienta (React i javascript). Zauważyłem, że niektórzy członkowie zespołu używają unikalnych wzorców kodowania do tego stopnia, że ​​mogłem losowo wybrać plik i powiedzieć, kto był autorem tylko z tego stylu. …

7
Jak przekonująco argumentować przeciwko duplikowaniu kolumn bazy danych?
Zacząłem pracować w nowej organizacji, a jednym z wzorców, które widziałem w bazie danych, są powielanie pól, aby ułatwić pisanie zapytań analitykom biznesowym. Używamy Django i jego ORM. W jednym przypadku przechowujemy obiekt MedicalRecordNumber z unikalnym ciągiem identyfikującym pacjenta w określonym kontekście. Mamy obiekty rejestracyjne, które śledzą pacjentów i mają …


4
Dlaczego metoda nie powinna generować wielu typów sprawdzonych wyjątków?
Używamy SonarQube do analizy naszego kodu Java i ma on następującą regułę (ustawioną na krytyczną): Metody publiczne powinny zgłaszać maksymalnie jeden sprawdzony wyjątek Użycie sprawdzonych wyjątków zmusza osoby wywołujące metody do radzenia sobie z błędami, propagując je lub obsługując. To sprawia, że ​​te wyjątki są w pełni częścią interfejsu API …

4
Jak dokładnie powstaje abstrakcyjne drzewo składniowe?
Myślę, że rozumiem cel AST i zbudowałem już kilka struktur drzewiastych, ale nigdy AST. Jestem w większości zdezorientowany, ponieważ węzły są tekstem, a nie liczbą, więc nie mogę wymyślić dobrego sposobu na wprowadzenie tokena / łańcucha, gdy parsuję jakiś kod. Na przykład, kiedy patrzyłem na diagramy AST, zmienna i jej …

3
Dlaczego C # zezwala na właściwości w interfejsach?
W języku C # następujący kod jest poprawny interface I{ int property{get;set;} } To nie ma dla mnie żadnego sensu. Wydaje się to łamać jedną z najważniejszych zasad interfejsów: brak stanu (innymi słowy brak pól). Czy właściwość nie tworzy niejawnego pola prywatnego? Czy to nie byłoby naprawdę złe dla interfejsów?

8
Po co projektować nowoczesny język bez mechanizmu obsługi wyjątków?
Wiele współczesnych języków zapewnia bogate funkcje obsługi wyjątków , ale język programowania Swift firmy Apple nie zapewnia mechanizmu obsługi wyjątków . Pogrążony w wyjątkach, tak jak ja, mam problem z otuleniem się, co to znaczy. Swift ma asercje i oczywiście zwraca wartości; ale mam problem z wyobrażeniem sobie, w jaki …

9
Ogólnie rzecz biorąc, czy lepiej jest wykonać wszystkie części funkcjonalne, czy najpierw uruchomić interfejs użytkownika - czy też połączenie obu?
Ogólnie rzecz biorąc, czy lepiej jest wykonać wszystkie części funkcjonalne, czy najpierw uruchomić interfejs użytkownika - czy też połączenie obu? Zakładając, że pracujesz nad czymś dużym, czy ogólnie przyjętą praktyką jest sprawienie, aby wszystkie funkcjonalne obiekty BLOB do gromadzenia danych działały przed dowolnym interfejsem użytkownika, aby wszystkie interfejsy działały pojedynczo …

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.