Inżynieria oprogramowania

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


10
Maszyny stanowe a wątki
Alan Cox powiedział kiedyś : „Komputer jest maszyną stanową. Wątki są dla osób, które nie mogą programować maszyn stanowych”. Ponieważ bezpośrednie pytanie do Alana nie jest dla mnie pokorne, wolę zapytać tutaj: w jaki sposób można osiągnąć funkcjonalność wielowątkowości w języku wysokiego poziomu, takim jak Java, używając tylko jednego wątku …



6
Jaki jest prawdziwy narzut TDD, gdy przyzwyczai się do niego cały zespół?
Jaki procent czasu jest oszczędzany i kosztowany przy TDD. Zakładam ten procent zmian kosztów i nagród w cyklu życia projektu. Wyobrażam sobie, że początkowa faza ma dużo większy koszt, ale wiąże się z niewielkimi nagrodami. Dalej (podczas przefaktoryzowania ) zyskujesz dzięki swoim testom. Słyszałem, że od 30-50% czasu spędzasz na …
24 productivity  tdd 

10
Jaki jest właściwy sposób tworzenia dokumentów wymagań?
Obecnie mój przełożony tworzy dla mnie dokumentację wymagań / specyfikacje za pomocą oprogramowania do śledzenia błędów. Wydaje mi się to okropnym pomysłem, wszystkie wymagania dotyczą tych małych biletów i muszę kliknąć ten głupi formularz internetowy, aby uzyskać dostęp do wymagań. Co to jest rozsądne rozwiązanie dla wymagań / specyfikacji oprogramowania? …

2
Czy testy integracyjne wykorzystują symulacje?
Obecnie jestem na zajęciach z zakresu testowania oprogramowania, gdzie w ramach naszego projektu semestralnego musimy przeprowadzić na nim wiele rodzajów testów, takich jak testy jednostkowe i testy integracyjne. Do testowania integracji profesor powiedział, że do naszych testów integracji używa fałszywych bibliotek i fałszywych bibliotek (takich jak EasyMock i Mockito). Jestem …

3
Gdzie autoryzacja pasuje do architektury warstwowej?
Zazwyczaj decyzje dotyczące autoryzacji umieszczam w moich kontrolerach po stronie serwera. To były ostatnio punkty końcowe RESTful, ale myślę, że to samo dotyczy architektur typu MVC. Dla argumentu załóżmy, że jest to autoryzacja oparta na rolach. Metoda chroniona zostanie opatrzona adnotacjami lub sprawdzi i zwróci 403 w razie potrzeby. Teraz, …

2
Dlaczego budowniczy powinien być klasą wewnętrzną zamiast własnego pliku klasy?
Wiele Builder Patternprzykładów tworzy Builderwewnętrzną klasę obiektu, który buduje. Ma to jakiś sens, ponieważ wskazuje, co Builderbuduje. Jednak w języku typowanym statycznie wiemy, co się Builderkompiluje. Z drugiej strony, jeśli Builderjest to klasa wewnętrzna, powinieneś wiedzieć, jaką klasę Builderbuduje, nie zaglądając do wnętrza Builder. Ponadto posiadanie konstruktora jako klasy wewnętrznej …

6
Przy jakim rozmiarze danych przejście z SQL na NoSQL jest korzystne?
Jako programista relacyjnych baz danych (przez większość czasu) czytam artykuły o tym, jak relacyjne bazy danych nie skalują się, i rozwiązania NoSQL, takie jak MongoDB. Ponieważ większość baz danych, które do tej pory opracowałem, była mała do średniej, nigdy nie miałem problemu, który nie został rozwiązany przez indeksowanie, optymalizację zapytań …

8
Dlaczego używanie kluczy łańcuchowych jest ogólnie uważane za zły pomysł?
Martwi mnie to od dłuższego czasu. W większości przypadków, gdy chodzi o przechowywanie danych w strukturach takich jak tabele, programiści, książki i artykuły, nalega, aby indeksowanie elementów w tych strukturach według wartości ciągu było uważane za złą praktykę. Jednak jak dotąd nie znalazłem żadnego takiego źródła, które wyjaśniałoby również DLACZEGO …

5
Alternatywy dla wzorca repozytorium do enkapsulacji logiki ORM?
Właśnie musiałem zmienić ORM i było to dość trudne zadanie, ponieważ logika zapytań przeciekała wszędzie. Gdybym kiedykolwiek musiał opracować nową aplikację, osobiście wolę enkapsulować całą logikę zapytań (używając ORM), aby zabezpieczyć ją przed zmianami. Wzorzec repozytorium jest dość kłopotliwy dla kodu i utrzymania, więc zastanawiałem się, czy istnieją jakieś inne …




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.