Inżynieria oprogramowania

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


3
Jak mogę uniemożliwić użytkownikowi edycję mojego kodu w przeglądarce?
Opis Projektuję aplikację Node.JS (bardziej jak pełną stronę internetową). Aplikacja wyśle ​​pięć plików JavaScript i będzie zawierać <script>tagi łączące je ze sobą. Pytanie Jak mogę uniemożliwić użytkownikom i atakującym przeglądanie i edytowanie mojego kodu ? Przykładem może być: Ctrl+ Shift+I W Devtools , goto Sources , wybierz plik do edycji …

5
Jak debugować format binarny?
Chciałbym móc debugować budowanie binarnego konstruktora. W tej chwili w zasadzie drukuję dane wejściowe do parsera binarnego, a następnie wchodzę głęboko w kod i drukuję mapowanie danych wejściowych na dane wyjściowe, a następnie biorę mapowanie danych wyjściowych (liczby całkowite) i używam tego do zlokalizowania odpowiedniej liczby całkowitej w pliku binarnym. …
11 debugging  binary 

5
Jak stosować wstrzykiwanie zależności i unikać czasowego łączenia?
Załóżmy, że mam ten, Servicektóry odbiera zależności za pośrednictwem konstruktora, ale przed użyciem można go także zainicjować za pomocą niestandardowych danych (kontekstu): public interface IService { void Initialize(Context context); void DoSomething(); void DoOtherThing(); } public class Service : IService { private readonly object dependency1; private readonly object dependency2; private readonly …

2
Czy system Entity-Component nie jest straszny dla odsprzęgania / ukrywania informacji?
Tytuł jest celowo hiperboliczny i może to być tylko mój brak doświadczenia ze schematem, ale oto moje rozumowanie: „Zwykłym” lub prawdopodobnie prostym sposobem implementacji jednostek jest implementowanie ich jako obiektów i wspólne zachowanie podklas. Prowadzi to do klasycznego problemu „jest EvilTreepodklasą Treelub Enemy?”. Jeśli pozwolimy na wielokrotne dziedziczenie, powstanie problem …

3
Jak zmierzyć złożoność w praktyce w dużym projekcie oprogramowania?
Na uniwersytecie, na naszych kursach z algorytmów, uczymy się, jak precyzyjnie obliczać złożoność różnych prostych algorytmów wykorzystywanych w praktyce, takich jak tabele skrótów lub szybkie sortowanie. Ale teraz w dużym projekcie oprogramowania, gdy chcemy przyspieszyć, wystarczy spojrzeć na poszczególne elementy - kilka zagnieżdżonych pętli, które można zastąpić szybszą tabelą skrótów, …

6
Czy utworzenie dokumentu projektu oprogramowania po opracowaniu może być uzasadnione?
Obecnie pracuję nad ukończeniem studiów na kierunku „Tworzenie oprogramowania”, w których muszę indywidualnie opracowywać złożone oprogramowanie w firmie zewnętrznej. Wszystko to należy wykonać w sposób ustrukturyzowany, tworząc wszystkie odpowiednie dokumenty. W tym projekcie postanowiłem pracować ze standardowymi dokumentami IEEE: dokument wymagań oprogramowania (SRS), dokumenty architektury oprogramowania (SAD) i dokument projektu …

2
Czy interfejs IComparable jest przestarzały / „szkodliwy”?
IComparable działa tylko w jedną stronę Powiedzmy, że masz Employeeklasę. W jednym widoku chcesz pokazać wszystkie Employeesposortowane według nazwy - w innym według adresu. Jak zamierzasz to osiągnąć? Nie z IComparable, przynajmniej nie w idiomatyczny sposób. IComparable ma logikę w niewłaściwym miejscu Interfejs jest używany przez wywołanie .Sort(). W widoku …
11 c#  sorting  comparison 

2
Czy i, j = 1 naprawdę wprowadza w błąd? [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 2 lata temu . Istnieje wspólny argument na temat inicjalizacji wielu zmiennych w jednym wkładce, to znaczy: …

2
Test jednostkowy, aby przetestować tworzenie obiektu domeny
Mam test jednostkowy, który wygląda następująco: [Test] public void Should_create_person() { Assert.DoesNotThrow(() => new Person(Guid.NewGuid(), new DateTime(1972, 01, 01)); } Zapewniam, że tutaj utworzono obiekt Person, tzn. Że sprawdzanie poprawności nie kończy się niepowodzeniem. Na przykład, jeśli Guid ma wartość zerową lub data urodzenia jest wcześniejsza niż 01.01.1900, wówczas sprawdzanie …

3
Jak zacząć używać Git do różnych baz kodu z różnych serwerów?
Kontekst: Niedawno odziedziczyłem zestaw projektów w mojej firmie i staram się rozwiązać kilka podstawowych problemów związanych z ich obsługą. Mianowicie, poprzedni programiści (którzy nie są już z firmą) nie używali żadnej formy kontroli źródła, tworzyli niewiele dokumentacji i tak naprawdę nie mieli dobrych procesów programistycznych. Więc teraz mam trzy serwery …

5
Czy w punktach historii należy brać pod uwagę indywidualną zdolność?
Rozumiem szacowanie historii w taki sposób, że należy oszacować rozmiar opowieści, tak jak w przypadku wyobrażonego przeciętnego autora - trochę jak koncepcja „rozsądnego obserwatora” w prawie. Oznacza to, że nie powinieneś szacować wielkości historii, zakładając, że musisz to zrobić . Na przykład: w poprzedniej pracy należałem do zespołu, w którym …
11 agile  estimation 

2
Czy testowanie oprogramowania jest inne, gdy mamy do czynienia z tworzeniem gier?
Czytałem ten artykuł na temat różnic między tworzeniem oprogramowania w ogóle a tworzeniem gier, a autorzy podnieśli kilka dobrych uwag na temat testowania oprogramowania, wskazując na przykład, że ... twórcy gier niechętnie korzystają z testów automatycznych z powodu szybkiego starzenia się tych testów w obliczu zmieniających się kreatywnych pragnień projektantów …

5
Jak zaprojektować wyjątki
Walczę z bardzo prostym pytaniem: Pracuję teraz nad aplikacją serwerową i muszę wymyślić hierarchię wyjątków (niektóre wyjątki już istnieją, ale potrzebna jest ogólna struktura). Jak w ogóle zacząć to robić? Myślę o zastosowaniu tej strategii: 1) Co się dzieje nie tak? Pytanie o coś jest niedozwolone. Coś jest pytane, jest …
11 design  c++  exceptions  stl 

1
Czy podczas tworzenia konta lepiej jest automatycznie wygenerować hasło i wysłać je do użytkownika, czy też pozwolić mu na utworzenie własnego hasła?
To pytanie pojawiło się dzisiaj podczas dyskusji z kolegą na temat strony „Utwórz konto” dla witryny, nad którą pracujemy. Mój kolega uważa, że ​​rejestracja powinna przebiegać tak szybko i bezproblemowo, jak to możliwe, dlatego powinniśmy po prostu poprosić użytkownika o jego e-mail i zająć się resztą. Zgadzam się z tym …

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.