Inżynieria oprogramowania

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

4
Czy funkcje, które przyjmują funkcje jako parametry, również powinny przyjmować parametry do tych funkcji jako parametry?
Często zdarza mi się pisać funkcje, które wyglądają tak, ponieważ pozwalają mi łatwo kpić z dostępu do danych i nadal dostarczają podpis, który akceptuje parametry określające, do których danych mam dostęp. public static string GetFormattedRate( Func<string, RateType>> getRate, string rateKey) { var rate = getRate(rateKey); var formattedRate = rate.DollarsPerMonth.ToString("C0"); return …

3
Zarządzanie wewnętrznymi pakietami NuGet z dostępem do kodu źródłowego
Mamy wiele bibliotek wewnętrznych, które chcielibyśmy udostępniać między projektami wewnątrz firmy. Oto niektóre z wymagań: źródła biblioteki są przechowywane w repozytoriach oddzielonych od projektów końcowych projekty końcowe obejmują biblioteki za pośrednictwem NuGet musi istnieć możliwość łatwego sprawdzenia kodu źródłowego dowolnej biblioteki podczas pracy nad projektem końcowym Konfigurowanie naszego prywatnego repozytorium …

3
Czy powinienem używać git stash, aby zapisywać bieżące zmiany mojego projektu i przekazywać go do github, aby uzyskać dostęp do innych komputerów?
Bardzo często pracuję nad niektórymi cechami mojego projektu, że muszę zrobić sobie przerwę, zanim będzie wystarczająca do zatwierdzenia. Jednak używam codziennie dwóch różnych komputerów do kodowania (mój laptop i pulpit mojego laboratorium badawczego). Np .: pracuję nad funkcją w domu, a potem zatrzymuję się i idę do laboratorium. Nie chcę …
20 git  github  gitflow 

5
Jakie są zalety modelowania systemów oprogramowania w porównaniu z robieniem wszystkiego w kodzie?
Większość, jeśli nie wszyscy informatycy, których znam, uważają, że przed kodowaniem korzystne jest modelowanie oprogramowania za pomocą UML lub innych typów diagramów. (Moje pytanie nie dotyczy konkretnie UML, może to być dowolny graficzny lub tekstowy opis projektu oprogramowania). Nie jestem tego taki pewien. Głównym powodem jest: Kod nie kłamie. Jest …


6
Jak usunąć funkcję lub funkcję podczas korzystania z TDD
W tekstach o TDD często czytam o „usunięciu duplikacji” lub „poprawie czytelności” podczas etapu refaktoryzacji. Ale co sprawia, że ​​usuwam nieużywaną funkcję? Powiedzmy na przykład, że istnieje klasa Cz metodami a()i b(). Teraz myślę, że byłoby miło mieć metodę, w f()którą się zaangażuje C. W rzeczywistości f()zastępuje wszystkie wywołania do, …

3
Duplikujesz stałe między testami a kodem produkcyjnym?
Czy powielanie danych między testami a prawdziwym kodem jest dobre czy złe? Załóżmy na przykład, że mam klasę Python, FooSaverktóra zapisuje pliki o określonych nazwach w danym katalogu: class FooSaver(object): def __init__(self, out_dir): self.out_dir = out_dir def _save_foo_named(self, type_, name): to_save = None if type_ == FOOTYPE_A: to_save = make_footype_a() …


4
„Zapamiętywanie” wartości w programowaniu funkcjonalnym
Postanowiłem podjąć się nauki programowania funkcjonalnego. Do tej pory to był świetny wybuch, a ja „widziałem światło”. Niestety, tak naprawdę nie znam funkcjonalnego programisty, z którego mógłbym odrzucić pytania. Przedstawiamy Stack Exchange. Biorę udział w kursie tworzenia aplikacji internetowych, ale mój instruktor nie zna programowania funkcjonalnego. Nie przeszkadza mi, że …


4
Używanie płaskich plików vs bazy danych / API jako transportu między frontendem a backendem
Mam aplikację, która wywołała dość gorącą dyskusję między kilkoma programistami. Zasadniczo jest podzielony na warstwę internetową i warstwę zaplecza. Warstwa internetowa zbiera informacje za pomocą prostego formularza internetowego, przechowuje te dane jako dokument JSON (dosłownie plik .json) w folderze obserwacyjnym używanym przez zaplecze. Zaplecze sonduje ten folder co kilka sekund, …


1
Jaka jest różnica między <? rozszerza Foo> i <Foo>
Wydaje mi się, że mam nieporozumienie na temat różnicy między &lt;Foo&gt;i &lt;? extends Foo&gt;. Z mojego zrozumienia, gdybyśmy mieli ArrayList&lt;Foo&gt; foos = new ArrayList&lt;&gt;(); Oznacza to, że Foodo tej listy tablic można dodać obiekty typu . Ponieważ podklasy Foosą również typu Foo, można je również dodawać bezbłędnie, jak pokazano za …
20 java  generics 

5
Czy przypadki szczególne z awariami naruszają zasadę substytucji Liskowa?
Załóżmy, że mam interfejs FooInterfacez następującą sygnaturą: interface FooInterface { public function doSomething(SomethingInterface something); } I konkretna klasa, ConcreteFooktóra implementuje ten interfejs: class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } Chciałbym ConcreteFoo::doSomething()zrobić coś wyjątkowego, jeśli przejdzie on przez specjalny typ SomethingInterfaceobiektu (powiedzmy, że się nazywa SpecialSomething). …


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.