Inżynieria oprogramowania

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


5
Algorytm określający najszybszą trasę?
Powiedzmy, że jedziemy od 1 do 5. Najkrótsza trasa to 1-4-3-5 (łącznie: 60 km). W tym celu możemy użyć algorytmu Dijkstry . Problem w tym, że najkrótsza trasa nie zawsze jest najszybsza z powodu korków lub innych czynników. Na przykład: Wiadomo, że 1-2 mają częste korki, dlatego należy tego unikać. …
17 graph  dijkstra 

6
Czy kaczka wpisuje podzbiór polimorfizmu
Od polimorfizmu na WIkipedii W informatyce polimorfizm to funkcja języka programowania, która umożliwia obsługę wartości różnych typów danych przy użyciu jednolitego interfejsu. Z pisania kaczek na Wikipedii W programowaniu komputerowym z obiektowymi językami programowania typowanie dynamiczne jest stylem dynamicznego pisania, w którym aktualny zestaw metod i właściwości obiektu określa prawidłową …


4
W którym momencie powinieneś przejść na wersję build?
Jedną z praktyk określonych w Continuous Delivery Jez Humble jest to, że powinieneś zbudować jeden pakiet, a następnie wypuścić go w każdym środowisku, w którym wdrażasz, aby wdrożenie i artefakty były wielokrotnie testowane przed przejściem do produkcji. W pełni popieram ten pomysł. Z drugiej strony kompilacje w trybie debugowania, które …

2
Super typ wyjątku abstrakcyjnego
Jeśli rzucanie System.Exceptionjest uważane za tak złe, dlaczego nie zostało Exceptionwykonaneabstract ? W ten sposób nie będzie możliwe wywołanie: throw new Exception("Error occurred."); Wymusiłoby to użycie wyjątków pochodnych, aby podać więcej szczegółów na temat błędu, który wystąpił. Na przykład, gdy chcę podać niestandardową hierarchię wyjątków dla biblioteki, zwykle deklaruję abstrakcyjną …

5
Jak osiągnąć i utrzymać przepływ podczas programowania w parach?
Flow to koncepcja wprowadzona przez Mihaly Csikszentmihalyi; w skrócie oznacza wejście w „strefę”. Czujesz się zanurzony w swoim zadaniu, skoncentrowany; zadanie może być trudne, ale jednocześnie trudne. Kiedy ludzie osiągają przepływ, ich produktywność wzrasta. Programowanie wymaga dużej koncentracji umysłowej, ponieważ często musimy żonglować kilkoma rzeczami w naszych umysłach. Wielu lubi …

2
Czy DDD-Lite jest językiem wzorcowym do wstrzykiwania zależności?
Natknąłem się na przemówienie Grega Younga 7 powodów, dla których projekty DDD zawiodły, kiedy wspomina coś, co nazywa DDD-Lite o 7:20. Podsumowując, w zasadzie mówi, że niektórzy używają DDD jako języków wzorcowych (bytów, repozytoriów, obiektów wartości, usług itp.) Bez robienia czegokolwiek innego związanego z DDD. Postuluje, że 60% lub więcej …

5
Używanie Vima do kodowania aplikacji na dużą skalę
Zaczynam się uczyć Vima i podążam za wskazówkami zawartymi w stackexchange. Zaczynam go używać w niektórych projektach zabawek i jestem z tym spoko. Ale zacząłem się zastanawiać, jak możesz być produktywny bez ciągłego otwierania innych plików, aby wiedzieć, jak się nazywa ta klasa, jakie makro zawiera inne pliki itp. Itp. …

8
Jak zrobić TDD na urządzeniach wbudowanych?
Nie jestem nowy w programowaniu i nawet pracowałem z jakimś niskim poziomem C i ASM na AVR, ale tak naprawdę nie mogę się skupić na projekcie C osadzonym na większą skalę. Zdegenerowana przez filozofię Ruby TDD / BDD, nie jestem w stanie zrozumieć, jak ludzie piszą i testują kod w …

3
Czy źle jest dołączyć do projektów open source jako amator?
Przez około sześć miesięcy myślałem, że powinienem dołączyć do projektu iPhone'a lub iPada o otwartym kodzie źródłowym, aby doskonalić swoje umiejętności w Objective-C, ale za każdym razem, gdy to robię, widzę tysiące linii kodu w dużych projektach, które ja w końcu przekonuję się, że nigdy nie zrozumiem. Zawsze myślę, że …


4
Dlaczego słabo pisane języki wciąż są aktywnie rozwijane?
Zastanawiam się, dlaczego słabo pisane języki wciąż są aktywnie rozwijane. Na przykład, jaką korzyść można czerpać z umiejętności pisania $someVar = 1; (...) // Some piece of code $someVar = 'SomeText'; zamiast używać znacznie innej, mocno wpisanej wersji int someInt = 1; (...) string SomeString = 'SomeText'; To prawda, że …


7
Dlaczego powinienem znać programowanie równoległe?
Jednoczesne programowanie jest dla mnie dość trudne: nawet spojrzenie na podstawowy slajd wydaje mi się trudne. To wydaje się takie abstrakcyjne. Jakie są korzyści z dobrze znanej koncepcji programowania współbieżnego? Czy pomoże mi to w regularnym, sekwencyjnym programowaniu? Wiem, że zrozumienie zasad działania naszych programów jest satysfakcjonujące, ale co jeszcze?

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.