Inżynieria oprogramowania

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

8
Czy każdy git commit powinien opuścić projekt w stanie roboczym?
Jestem ciekawy, jaka jest najlepsza praktyka. Czy git commits powinien być wymuszony w taki sposób, aby projekt był w stanie roboczym (buduje się poprawnie, wszystkie testy przechodzą itp.), Czy też popełnianie złamanego kodu jest prawidłowe? Na przykład, jeśli zniesiesz ten wymóg, możesz być bardziej elastyczny dzięki zatwierdzeniom (użyj ich jako …
36 git 

11
Gdzie przydatne są ósemki? [Zamknięte]
Właśnie uderzyłem głową o stół przez około 20 minut, patrząc na całkowicie dziwny błąd w PHP, a potem zdałem sobie sprawę, że jest ósemka. Oktal <% (* i #>). Krótko mówiąc, uzupełniałem literały zerami, aby kod był wyrównany, wiem, wielki błąd. Zapomniałem o ósemkach. Pytanie brzmi: czy ktoś używa liczb …
36 octal 


7
Dlaczego wszyscy umieszczają kontrolery w jednym folderze, a widoki w innym?
Przygotowuję się do wyjścia z aspu do frameworka mvc, asp.net mvc lub nancy. Gdziekolwiek pójdę, widzę foldery na kontrolery / moduły i foldery na widoki. Czy to tylko pavlovski odruch porządkowania według rodzaju, czy może działa głębsza mądrość? Mam mały projekt koncepcyjny, w którym przechowuję razem pliki, które prawdopodobnie otworzę …
36 mvc  asp.net-mvc 



3
Różnica między stertą a kolejką priorytetową
Zawsze myślałem, że stosy i kolejki priorytetowe były synonimami - streszczenie struktura danych, która wspiera insert, findMini deleteMinoperacje. Wygląda na to, że część literatury jest ze mną zgodna - na przykład struktury danych funkcjonalne Chrisa Okasakiego (rozdział 3). Z drugiej strony strona sterty Wikipedii definiuje ją jako strukturę danych opartą …

4
Co to jest nadużycie generyczne?
Przeglądając jakiś kod, zauważyłem możliwość jego zmiany w celu użycia generycznych. Kod (zaciemniony) wygląda następująco: public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets) { var someProperty = typeOfTarget.GetProperty(possibleTargets[0]); ... } Ten kod można zastąpić ogólnymi, takimi jak: public void DoAllTheThings<T>(object[] possibleTargets[0]) { var someProperty = type(T).getProperty(possibleTargets[0]); ... } Badając zalety i wady …
35 generics 



2
W jaki sposób Rust odbiega od funkcji współbieżności C ++?
pytania Próbuję zrozumieć, czy Rust zasadniczo i dostatecznie poprawia funkcje współbieżności C ++, aby zdecydować, czy powinienem poświęcić czas na naukę Rust. W szczególności, w jaki sposób idiomatyczna rdza poprawia lub w jakimkolwiek stopniu odbiega od udogodnień współbieżności idiomatic C ++? Czy poprawa (lub rozbieżność) jest w większości składniowa, czy …
35 c++  concurrency  rust  c++14 


8
Kiedy faktycznie używamy programowania obiektowego? [Zamknięte]
Piszę program w języku Python, który w zasadzie manipuluje ciągami znaków i zastanawiałem się, czy powinienem to zrobić przy użyciu zasad OOP, czy nie. Klient powiedział mi, że nie obchodzi go kod, po prostu chce, żeby to się stało . Wiem, że kod zorientowany obiektowo nie jest z definicji czyszczący, …

7
Argumenty przeciwko eliminacji błędów
W jednym z naszych projektów znalazłem taki kod: SomeClass QueryServer(string args) { try { return SomeClass.Parse(_server.Query(args)); } catch (Exception) { return null; } } O ile rozumiem, pomijanie takich błędów jest złą praktyką, ponieważ niszczy przydatne informacje z wyjątku oryginalnego serwera i sprawia, że ​​kod jest kontynuowany, kiedy powinien się …

5
Kiedy powinienem rozszerzyć klasę Java Swing?
Moje obecne rozumienie implementacji dziedziczenia jest takie, że należy rozszerzać klasę tylko wtedy, gdy istnieje relacja IS-A . Jeśli klasa nadrzędna może dodatkowo mieć bardziej szczegółowe typy podrzędne o różnych funkcjach, ale będzie miała wspólne elementy wyodrębnione w obiekcie nadrzędnym. Kwestionuję to zrozumienie z powodu tego, co zaleca nam mój …

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.