Inżynieria oprogramowania

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



1
Jaki jest termin anonimowej funkcji JavaScript, która jest wywoływana natychmiast?
Piszę przewodnik po języku JavaScript dla mojego zespołu, abyśmy mogli łatwiej organizować i przekazywać nasze dokumenty. Ale uderzyłem w niewielki guz, do którego odnosi się moje pytanie ... Jak mam nazwać anonimową funkcję JavaScript, która jest wywoływana natychmiast. Wiem, że mógłbym po prostu nazwać to „funkcją anonimową”, ale chciałbym podkreślić …

7
Czy program C ++ powinien wychwytywać wszystkie wyjątki i zapobiegać przedostawaniu się wyjątków poza main ()?
Kiedyś mi doradzono, że program C ++ powinien ostatecznie wyłapać wszystkie wyjątki. Podane wówczas uzasadnienie było zasadniczo takie, że programy, które zezwalają na wyjątki, pojawiają się poza main()wejściem w dziwny stan zombie. Powiedziano mi to kilka lat temu i z perspektywy czasu uważam, że zaobserwowane zjawisko było spowodowane długim generowaniem …
29 c++  exceptions 


2
Dlaczego literały łańcuchowe C są tylko do odczytu?
Jakie zalety literałów łańcuchowych jako tylko do odczytu uzasadniają (-ies / -ied): To kolejny sposób na zastrzelenie się w stopę char *foo = "bar"; foo[0] = 'd'; /* SEGFAULT */ Niemożność eleganckiego zainicjowania tablicy słów do odczytu i zapisu w jednym wierszu: char *foo[] = { "bar", "baz", "running out …
29 c  memory  strings 

11
Ile wzorów i poziomów abstrakcji jest niezbędnych? [Zamknięte]
Jak mogę stwierdzić, że moje oprogramowanie ma zbyt dużo abstrakcji i zbyt wiele wzorców projektowych, lub odwrotnie, skąd mam wiedzieć, czy powinno być ich więcej? Programiści, z którymi pracuję, programują inaczej w tych kwestiach. Niektóre wykonują abstrakcję każdej małej funkcji, w miarę możliwości używają wzorców projektowych i unikają nadmiarowości za …

8
Czy dopuszczalne jest kopiowanie i wklejanie długiego, ale prostego kodu zamiast owijania go w klasę lub funkcję?
Załóżmy, że mam segment kodu do połączenia z Internetem i pokazania wyników takiego połączenia: HttpRequest* httpRequest=new HttpRequest(); httpRequest->setUrl("(some domain .com)"); httpRequest->setRequestType(HttpRequest::Type::POST); httpRequest->setRequestData("(something like name=?&age=30&...)"); httpRequest->setResponseCallback([=](HttpClient* client, HttpResponse* response){ string responseString=response->getResponseDataString(); if(response->getErrorCode()!=200){ if(response->getErrorCode()==404){ Alert* alert=new Alert(); alert->setFontSize(30); alert->setFontColor(255,255,255); alert->setPosition(Screen.MIDDLE); alert->show("Connection Error","Not Found"); }else if((some other different cases)){ (some other alert) }else …

4
Czy nowy nieważny operator C # 6.0 jest sprzeczny z prawem Demetera?
Prawo Demeter stwierdza co następuje: Każda jednostka powinna mieć ograniczoną wiedzę na temat innych jednostek: tylko jednostki „ściśle” związane z bieżącą jednostką. Każda jednostka powinna rozmawiać tylko z przyjaciółmi; nie rozmawiaj z nieznajomymi. Rozmawiaj tylko z najbliższymi przyjaciółmi. W C # 6.0 wprowadzono nowy operator o nazwie operator null-warunkowy . …

3
Kontrola wersji dla Przepisz
Opracowaliśmy produkt (prototyp) P_OLD w języku X i teraz przepisujemy go od zera jako P_NEW w języku Y. Ponieważ P_NEW i P_OLD są tym samym produktem: Czy P_NEW powinien być po prostu starą wersją P_OLD, czy powinien być własnym repozytorium? Jak zwykle radzić sobie z tak dużymi zmianami z perspektywy …



10
Czy użycie zmiennych wskaźnikowych nie jest narzutem pamięci?
W językach takich jak C i C ++, używając wskaźników do zmiennych, potrzebujemy jeszcze jednej lokalizacji pamięci do przechowywania tego adresu. Czy to nie jest narzut pamięci? Jak to jest kompensowane? Czy wskaźniki są używane w aplikacjach o krytycznym czasie niskiej pamięci?
29 c++  c  pointers 

6
Jaki jest kompromis dla wnioskowania o typie?
Wygląda na to, że wszystkie nowe języki programowania lub przynajmniej te, które stały się popularne, korzystają z wnioskowania o typach. Nawet Javascript dostał typy i wnioskowanie o typach przez różne implementacje (Acscript, maszynopis itp.). Wygląda mi to świetnie, ale zastanawiam się, czy są jakieś kompromisy lub dlaczego powiedzmy, że Java …

6
Czy można zaimplementować programowanie „obiektowe” bez słowa kluczowego class?
Powiedzmy, że chcemy przedstawić abstrakcję „konta” w banku. Oto jedno podejście, używając functionobiektu w Pythonie: def account(): """Return a dispatch dictionary representing a bank account. >>> a = account() >>> a['deposit'](100) 100 >>> a['withdraw'](90) 10 >>> a['withdraw'](90) 'Insufficient funds' >>> a['balance'] 10 """ def withdraw(amount): if amount > dispatch['balance']: return …

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.