Inżynieria oprogramowania

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

3
Najlepsze praktyki dotyczące rejestrowania i śledzenia w .NET
Dużo czytałem o śledzeniu i logowaniu, próbując znaleźć złotą zasadę najlepszych praktyk w tej sprawie, ale nie ma żadnej. Ludzie mówią, że dobrzy programiści produkują dobre śledzenie, ale ujmując to w ten sposób, musi to wynikać z doświadczenia. Czytałem również podobne pytania tutaj i przez Internet i nie są one …
53 .net  logging 

11
Zdobądź 100 najwyższych liczb z nieskończonej listy
Jedno z moich znajomych zostało zadane w tym wywiadzie - „Ciągły napływ liczb przychodzi z nieskończonej listy liczb, z których trzeba utrzymywać strukturę danych, aby zwracać 100 najwyższych liczb w danym momencie. Załóżmy, że wszystkie liczby są tylko liczbami całkowitymi”. Jest to proste, musisz utrzymywać posortowaną listę w kolejności malejącej …
53 numbers  big-o  puzzles 


10
Jak przetestować testy?
Testujemy nasz kod, aby był bardziej poprawny (a właściwie mniej prawdopodobny ). Jednak testy są również kodem - mogą również zawierać błędy. A jeśli twoje testy są błędne, prawie nie poprawiają kodu. Mogę wymyślić trzy możliwe typy błędów w testach: Błędy logiczne, gdy programista źle zrozumiał dane zadanie, a testy …

14
Czy TDD naprawdę działa w przypadku złożonych projektów?
Zadaję to pytanie dotyczące problemów, których doświadczyłem podczas projektów TDD. Podczas tworzenia testów jednostkowych zauważyłem następujące wyzwania. Generowanie i utrzymywanie fałszywych danych Utrzymywanie dużych fałszywych danych jest trudne i nierealne. Jeszcze trudniej jest, gdy struktura bazy danych ulega zmianom. Testowanie GUI Nawet przy MVVM i możliwości testowania GUI, do odtworzenia …
53 tdd 

27
Co jest najbardziej skandalicznym marnotrawstwem pieniędzy, jakie widziałeś i co z tym zrobiłeś? [Zamknięte]
Często jako programiści widzimy, jak duże organizacje marnują ogromne sumy pieniędzy na rozdęte i nieefektywne rozwiązania problemów. Bardzo mnie to boli, ponieważ lubię organizacje, które korzystają z najlepszych rozwiązań rasowych. Jednak moje umiejętności programistyczne są ograniczone, jeśli chodzi o wpływanie na kluczowych decydentów i często moje spojrzenie na tę sprawę …

4
Co się stanie, jeśli funkcja scalona w programowanie zostanie przełożona przez kierownictwo?
Niedawno mieliśmy problem polegający na tym, że funkcja naszej aplikacji internetowej (automatyczna rejestracja) została przełożona przez kierownictwo, ponieważ uważali, że początek był zbyt „zimny”, ale chcieli, aby wszystkie inne funkcje, nad którymi pracowaliśmy, były dostępne. Problem polega na tym, że ta funkcjonalność została włączona do rozwoju, gdy została ukończona wraz …

1
Konwencje nazewnictwa protokołu Swift [zamknięte]
Pochodząc głównie z języka c #, przyzwyczaiłem się używać terminu „interfejs” do opisywania obiektu bez implementacji, która określa zachowanie. W języku c # konwencja polega na dodawaniu nazw interfejsów do „I”, jak w IEnumerableitd. Oczywiście koncepcja ma różne nazwy w różnych językach. W Swift ta sama koncepcja nazywa się „protokołem”. …




4
Jaka jest dokładna pomysłowość uniksowej rury
Słyszałem historię, jak Douglas Mcllroy wpadł na pomysł i jak Ken Thompson wdrożył go w ciągu jednej nocy. O ile rozumiem, potok jest wywołaniem systemowym, które dzieli część pamięci między dwoma procesami, w których jeden proces pisze, a drugi czyta. Jako ktoś, kto nie jest zaznajomiony z elementami wewnętrznymi i …

9
Zgłaszaj wyjątek lub pozwól kodowi zawieść
Zastanawiam się, czy są jakieś plusy i minusy przeciwko temu stylowi: private void LoadMaterial(string name) { if (_Materials.ContainsKey(name)) { throw new ArgumentException("The material named " + name + " has already been loaded."); } _Materials.Add( name, Resources.Load(string.Format("Materials/{0}", name)) as Material ); } Ta metoda powinna być dla każdego nameuruchomiona tylko …
52 exceptions 

11
Jak uniknąć kaskadowego refaktoryzacji?
Mam projekt. W tym projekcie chciałem przefaktoryzować go, aby dodać funkcję, i przebudowałem projekt, aby dodać funkcję. Problem polega na tym, że kiedy skończyłem, okazało się, że muszę wprowadzić niewielką zmianę interfejsu, aby to uwzględnić. Więc dokonałem zmiany. I wtedy klasa konsumująca nie może zostać zaimplementowana z obecnym interfejsem pod …

5
Dlaczego inteligentne wskaźniki liczące referencje są tak popularne?
Jak widzę, inteligentne wskaźniki są szeroko stosowane w wielu rzeczywistych projektach C ++. Chociaż niektóre inteligentne wskaźniki są oczywiście korzystne dla obsługi RAII i przeniesienia własności, istnieje również tendencja do domyślnego korzystania ze wskaźników wspólnych jako sposobu „wyrzucania elementów bezużytecznych” , aby programiści nie musieli tak dużo myśleć o alokacji …

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.