Inżynieria oprogramowania

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

5
Po co pisać testy kodu, który będę refaktoryzować?
Refaktoryzuję ogromną klasę kodu starszego typu. Refaktoryzacja (jak sądzę) zaleca: pisz testy dla starszych klas refaktorem do cholery z klasy Problem: po ponownym złożeniu klasy moje testy w kroku 1 będą musiały zostać zmienione. Na przykład to, co kiedyś było starszą metodą, teraz może być osobną klasą. To, co było …

5
Niektórzy członkowie zespołu nie biorą czynnego udziału w planowaniu sprintu
Niektórzy członkowie zespołu tylko czekają, aż opowieści, nad którymi najprawdopodobniej będą pracować, zostaną omówione i dopiero wtedy wezmą udział. W przeciwnym razie po prostu bawią się telefonem i nie słuchają. W pewien sposób rozumiem to stanowisko. Po co wysłuchać dyskusji na temat funkcji, w której prawdopodobnie nie pomożesz rozwijać się …
15 agile  scrum 

4
Który wybrać: atrybut XML lub węzeł podrzędny?
Chcemy wyeksportować niektóre dane z naszej bazy danych jako XML. Na przykład, Personmoże mieć age, namea niektóre inne właściwości. Mamy dwie możliwości zdefiniowania formatu XML. Wybór nr 1: <Persons> <Person> <Age>16</Age> <Name>Richard</Name> </Person> <Person> <Age>34</Age> <Name>Eric</Name> </Person> ... </Persons> Wybór nr 2: <Persons> <Person Age="16" Name="Richard"/> <Person Age="34" Name="Eric"/> ... …
15 xml 

5
Jakie zmiany mogę wprowadzić w swoim IDE, aby zminimalizować efekt mojej dysleksji?
Programuję i jestem dysleksją. Moja wizja jest doskonała. Słabo przetwarzam symbole i jestem wizualnym myślicielem. Kiedy piszę kod, jestem wolniejszy niż normalni ludzie, ponieważ nieprzewidywalnie nie zdaję sobie sprawy z błędów, które popełniam. Uczę się Pythona, a środowiska programistyczne tylko tekstowe powodują wiele stresu wizualnego; Używam Wingware, który jest nieco …

2
Co jest lepsze: wiązka pobierających lub 1 metoda z parametrem ciągu wyboru?
Nasza dziedzina wiedzy obejmuje osoby chodzące boso po płycie rejestrującej ciśnienie. Dokonujemy rozpoznawania obrazu, co powoduje powstanie obiektów klasy „Foot”, jeśli ludzka stopa zostanie rozpoznana w danych czujnika. Istnieje kilka obliczeń, które należy wykonać na danych stopy. Teraz, który interfejs API byłby lepszy: class Foot : public RecognizedObject { MaxPressureFrame …

7
Czy to usprawiedliwia stwierdzenia goto?
Natknąłem się na to pytanie przed chwilą i ściągam z tego trochę materiału: czy istnieje nazwa konstruktu „break n”? Wydaje się to być niepotrzebnie złożonym sposobem na instruowanie programu, aby wyszedł z podwójnie zagnieżdżonej pętli for: for (i = 0; i < 10; i++) { bool broken = false; for …

4
Projektowanie programu fenotropowego
Niedawno natknąłem się na pomysł Jarona Laniera o nazwie „programowanie fenotropowe”. Chodzi o to, aby używać interfejsów „powierzchniowych” zamiast interfejsów jednopunktowych w programach komputerowych wykorzystujących statystyki do wykrywania drobnych błędów, które zwykle powodowałyby katastrofalny „klasyczny” program. Dwuliniowy opis znajduje się tutaj: Według Jarona „prawdziwa różnica między obecną ideą oprogramowania, która …
15 design  program 

4
Jak rozpoznać niestabilne obliczenia zmiennoprzecinkowe?
W numeryce bardzo ważna jest umiejętność identyfikowania niestabilnych schematów i poprawy ich stabilności. Jak rozpoznać niestabilne obliczenia zmiennoprzecinkowe? Pracuję nad bardzo złożoną symulacją, w której współdziała wiele schematów numerycznych i szukam metody pozwalającej zidentyfikować jej słabe części. Pracuję nad modelem fizycznym obejmującym równania różniczkowe. Ogólny proces z lotu ptaka przedstawia: …

7
Co to jest idiomatyczne użycie dowolnych bloków w C?
Blok to lista instrukcji do wykonania. Przykłady bloków pojawiających się w C znajdują się po instrukcji while i w instrukcjach if while( boolean expression) statement OR block if (boolean expression) statement OR block C pozwala również na zagnieżdżanie bloku w bloku. Mogę użyć tego do ponownego użycia nazw zmiennych, przypuśćmy, …
15 c  syntax 

5
Czy mogę używać wstrzykiwania zależności bez przerywania enkapsulacji?
Oto moje rozwiązanie i projekty: BookStore (rozwiązanie) BookStore.Coupler (projekt) Bootstrapper.cs BookStore.Domain (projekt) CreateBookCommandValidator.cs CompositeValidator.cs IValidate.cs IValidator.cs ICommandHandler.cs BookStore.Infrastructure (projekt) CreateBookCommandHandler.cs ValidationCommandHandlerDecorator.cs BookStore.Web (projekt) Global.asax BookStore.BatchProcesses (projekt) Program.cs Bootstrapper.cs : public static class Bootstrapper.cs { // I'm using SimpleInjector as my DI Container public static void Initialize(Container container) { container.RegisterManyForOpenGeneric(typeof(ICommandHandler<>), typeof(CreateBookCommandHandler).Assembly); …

1
W jaki sposób uczenie maszynowe jest uwzględniane w projektowaniu wyszukiwarek?
Obecnie buduję małą wewnętrzną wyszukiwarkę opartą na Apache Lucene. Jego cel jest prosty - na podstawie niektórych słów kluczowych sugeruje artykuły napisane wewnętrznie w naszej firmie. Używam dość standardowej punktacji TF-IDF jako podstawowej miary i zbudowałem na niej własny mechanizm oceniania. Wszystkie te wydają się działać doskonale, z wyjątkiem niektórych …



1
Jak mogę sprawdzić, czy nadużywam wielowątkowości?
Obecnie mam wrażenie, że nadmiernie używam wielowątkowości. Mam 3 rodzaje danych, A, B i C. Każdy z nich Amożna przekonwertować na wiele Bs, a każdy Bmożna przekonwertować na wiele Cs. Interesuje mnie tylko leczenie Cs. Mógłbym napisać to dość łatwo za pomocą kilku funkcji konwersji. Ale złapałem się jej wykonania …

2
Jaki jest przykład kontynuacji niezaimplementowanej jako procedura?
Interesująca dyskusja na temat rozróżnienia między wywołaniami zwrotnymi a kontynuacjami w SO spowodowała, że ​​pytanie to się pojawiło. Z definicji kontynuacja jest abstrakcyjną reprezentacją logiki potrzebnej do ukończenia obliczeń. W większości języków manifestuje się to jako procedura jednopargumentowa, do której przekazujesz dowolną wartość wymagającą dalszego przetwarzania. W czysto funkcjonalnym języku …

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.