Inżynieria oprogramowania

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


10
Korzystanie z bibliotek firm trzecich - zawsze używasz opakowania?
Większość projektów, w które jestem zaangażowany, wykorzystuje kilka komponentów typu open source. Zgodnie z ogólną zasadą, czy dobrym pomysłem jest zawsze unikanie wiązania wszystkich składników kodu do bibliotek stron trzecich, a zamiast tego przechodzenie przez enkapsulujące opakowanie, aby uniknąć bólu związanego ze zmianami? Na przykład większość naszych projektów PHP bezpośrednio …

6
Kiedy jechać płynnie w C #?
Pod wieloma względami bardzo podoba mi się pomysł płynnych interfejsów, ale ze wszystkimi nowoczesnymi funkcjami C # (inicjalizatory, lambdy, nazwane parametry) zastanawiam się, czy warto? posługiwać się?". Czy ktoś mógłby dać mi, jeśli nie zaakceptowaną praktykę, przynajmniej własne doświadczenie lub matrycę decyzyjną na temat tego, kiedy zastosować wzór Płynny? Wniosek: …
78 c#  .net 

30
Czy musisz być dobry z matematyki, aby być dobrym programistą? [Zamknięte]
Wydaje się, że konwencjonalna mądrość sugeruje, że dobrzy programiści są również dobrzy w matematyce. Albo że oba są w jakiś sposób wewnętrznie powiązane. Wiele książek o programowaniu, które przeczytałem, zawiera wiele przykładów, które są rozwiązaniami problemów matematycznych lub są w jakiś sposób powiązane z matematyką, tak jakby te przykłady miały …
78 math 


11
Dlaczego obiekty Java nie są usuwane natychmiast po ich odwołaniu?
W Javie, gdy tylko obiekt nie ma już żadnych odniesień, kwalifikuje się do usunięcia, ale JVM decyduje, kiedy obiekt zostanie faktycznie usunięty. Aby użyć terminologii Objective-C, wszystkie odwołania do Java są z natury „silne”. Jednak w Celu C, jeśli obiekt nie ma już żadnych silnych odniesień, obiekt jest natychmiast usuwany. …


6
Czy wszystkie magiczne liczby są takie same?
W ostatnim projekcie musiałem przekonwertować bajty na kilobajty kibibajta . Kod był dość prosty: var kBval = byteVal / 1024; Po napisaniu tego resztę funkcji działałem i przeszedłem. Ale później zacząłem się zastanawiać, czy właśnie umieściłem magiczną liczbę w moim kodzie. Część mnie mówi, że było dobrze, ponieważ liczba jest …

7
Najpierw kod a baza danych
Kiedy projektuję i tworzę oprogramowanie, nad którym pracuję, zwykle najpierw projektuję i tworzę tabele SQL zaplecza, a następnie przechodzę do właściwego programowania. Projekt, nad którym obecnie pracuję, wprawił mnie w zakłopotanie. Wynika to prawdopodobnie z braku dobrych, solidnych wymagań, ale tym razem niewiele mogę zrobić. Jest to sytuacja typu „po …

7
Co wiąże wcześnie i późno?
Ciągle słyszę o wczesnym i późnym wiązaniu, ale nie rozumiem, czym one są. Znalazłem następujące wyjaśnienie, którego nie rozumiem: Wczesne wiązanie odnosi się do przypisywania wartości do zmiennych w czasie projektowania, natomiast późne wiązanie odnosi się do przypisywania wartości do zmiennych w czasie wykonywania. Czy ktoś mógłby zdefiniować dwa rodzaje …

10
Dlaczego tablice C nie śledzą ich długości?
Jakie było uzasadnienie braku wyraźnego przechowywania długości tablicy z tablicą w C? Moim zdaniem istnieje wiele powodów, aby to zrobić, ale niewiele z tego powodu (C89). Na przykład: Dostępna długość bufora może zapobiec jego przepełnieniu. Styl Java arr.lengthjest zarówno przejrzysty, jak i pozwala programistom uniknąć konieczności utrzymywania wielu ints na …
77 c 

11
Czy modyfikowanie kodu wyłącznie do celów testowych jest złą praktyką?
Prowadzę debatę z kolegą programistą na temat tego, czy dobrą lub złą praktyką jest modyfikowanie działającego kodu tylko w celu umożliwienia jego przetestowania (na przykład poprzez testy jednostkowe). Moim zdaniem jest w porządku, oczywiście w granicach utrzymywania dobrych praktyk obiektowych i inżynierii oprogramowania (nie „upubliczniania wszystkiego” itp.). Zdaniem mojego kolegi …

11
Dlaczego oprogramowanie jest specyficzne dla systemu operacyjnego?
Próbuję ustalić szczegóły techniczne, dlaczego oprogramowanie wyprodukowane przy użyciu języków programowania dla niektórych systemów operacyjnych działa tylko z nimi. Rozumiem, że pliki binarne są specyficzne dla niektórych procesorów ze względu na język maszynowy, który rozumieją i różne zestawy instrukcji dla różnych procesorów. Ale skąd bierze się specyfika systemu operacyjnego? Zakładałem, …

11
Czytelne wyrażenia regularne bez utraty mocy?
Wielu programistów zna radość wymyślania szybkiego wyrażenia regularnego, obecnie często przy pomocy jakiegoś serwisu internetowego lub bardziej tradycyjnie w trybie interaktywnym, lub może pisząc mały skrypt, który ma opracowane wyrażenie regularne, oraz zbiór przypadków testowych . W obu przypadkach proces jest iteracyjny i dość szybki: hakuj tajemniczo wyglądający ciąg, aż …


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.