Inżynieria oprogramowania

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

2
Dlaczego sprawdzono kontra niesprawdzone wyjątki zwane „kontrowersją” w samouczku Oracle Java?
Jestem nowy w Javie i czytałem dokumentację dotyczącą wyjątków. , a zwłaszcza Niezaznaczone wyjątki - strona Kontrowersje . Dolna linia mówi: Jeśli można zasadnie oczekiwać, że klient wyzdrowieje z wyjątku, uczyń go sprawdzonym wyjątkiem. Jeśli klient nie może nic zrobić w celu odzyskania od wyjątku, uczyń z niego niesprawdzony wyjątek. …

1
Częściowe dopasowanie nazw w milionach rekordów
Opracowaliśmy aplikację internetową do dopasowywania nazw. Działa poprzez dzielenie nazw na części, a wartość Soundex każdej części jest przechowywana w bazie danych. Wskaźnik odległości Levenshteina służy do zastosowania procentowego dopasowania dźwięku, a także pisowni w odniesieniu do danego imienia. W czasie wykonywania ładujemy wszystkie rekordy do pamięci i stosujemy odległość …

3
Kiedy haki są właściwym wyborem?
Pracowałem nad dużą aplikacją Rails, w której korzystanie z funkcji zwrotnych ActiveRecord było powszechne i wstrząsające. Zapisanie rekordu często miało nieoczekiwane skutki uboczne i uzasadnienie systemu było wyzwaniem. Jednocześnie widziałem, jak haczyki przynoszą dobre efekty w ramach dziedziczenia (np. Klasa nadrzędna używa metody szablonowej, aby umożliwić podklasom dodawanie wyspecjalizowanych zachowań …
10 hooks 

4
Kiedy w Javie będzie używana instrukcja null?
W podręczniku, w którym szukałem klasy, stwierdzono, że instrukcja może być pusta (instrukcja zerowa). Instrukcja null jest zdefiniowana jako tylko średnik. Nie robi absolutnie nic w czasie wykonywania. Instrukcja zerowa jest rzadko używana. Jako średnio doświadczony programista uważam za interesujące, że, jak mówią, rzadko używane, oznacza to, że gdzieś jest …
10 java 

4
Java: Jak zaimplementować konstruktor kroków, dla którego kolejność seterów nie ma znaczenia?
Edycja: Chciałbym zaznaczyć, że to pytanie opisuje problem teoretyczny i jestem świadomy, że mogę użyć argumentów konstruktora dla parametrów obowiązkowych lub zgłosić wyjątek czasu wykonywania, jeśli interfejs API jest używany nieprawidłowo. Jednak szukam rozwiązania, które nie wymaga argumentów konstruktora ani sprawdzania czasu wykonywania. Wyobraź sobie, że masz taki Carinterfejs: public …

3
Co to znaczy wstrzykiwać dane (vs zachowanie) do konstruktora klasy i dlaczego jest to uważane za złą praktykę?
Czytam książkę „Learning TypeScript” Remo Jansena. W jednej sekcji autor opisuje, jak stworzyć bardzo prosty framework MVC typu proof-of-concept, w tym jak stworzyć Modelklasę i mówi: Do modelu należy podać adres URL usługi internetowej, z której korzysta. Użyjemy dekoratora klasy o nazwie ModelSettings, aby ustawić adres URL usługi, która ma …

2
Czy źle jest tworzyć klasy, których jedynym celem jest niejawna konwersja na inną klasę?
Wyobraźmy sobie sytuację, w której korzystamy z biblioteki, która pozwala tworzyć Circleobiekty, w których można określić promień i środek okręgu, aby je zdefiniować. Jednak z jakiegoś powodu wymaga również wymaganego flavourparametru. Powiedzmy teraz, że naprawdę muszę korzystać Circlez własnej aplikacji, ale na potrzeby mojej aplikacji mogę ustawić smak za Flavours.Cardboardkażdym …

2
W jaki sposób Mono Project mógł ponownie licencjonować swoje biblioteki LGPL w ramach MIT?
Projekt Mono miał kiedyś biblioteki LGPL. W rzeczywistości mbundlenadal mówi, kiedy go uruchomisz Pamiętaj, że statyczne łączenie środowiska wykonawczego LGPL Mono ma więcej ograniczeń licencyjnych niż dynamiczne łączenie. Szczegółowe informacje na temat licencjonowania można znaleźć na stronie http://www.mono-project.com/Licensing . Od marca 2016 r. Ponownie licencjonowali je w ramach MIT. Biorąc …

3
Czy istnieje związek między czasem spotkania a oszczędnością czasu na rozwój?
Pracuję nad projektem i organizujemy regularne (zwykle cotygodniowe), nieformalne spotkania, na których omawiamy status projektu i graficzny interfejs użytkownika. Jestem tam jedynym programistą, pozostałe 4-5 osób nie ma wykształcenia informatycznego. Spotkanie trwało znacznie dłużej niż zwykle, ale w pewnym momencie jeden z moich kolegów zapytał o niektóre obszary programu i …

3
Dlaczego przyrostowe kompilacje „make” nie używają algorytmów mieszających?
Jestem początkującym makei zastanawiam się, kiedy użyć make clean. Jeden kolega powiedział mi, że przyrostowe kompilacje makeoparte są na znacznikach czasowych plików. Tak więc, jeśli pobierzesz starą wersję pliku w VCS, będzie on miał „stary” znacznik czasu i będzie oznaczony jako „nie ma potrzeby ponownej kompilacji tego pliku”. Wtedy ten …
10 builds  make 

2
Czy istnieje elegancki sposób sprawdzania unikalnych ograniczeń atrybutów obiektów domeny bez przenoszenia logiki biznesowej do warstwy usług?
Dostosowuję projektowanie oparte na domenie od około 8 lat i nawet po tylu latach wciąż mnie wkurza. To sprawdza unikalny rekord w przechowywaniu danych w stosunku do obiektu domeny. We wrześniu 2013 r. Martin Fowler wspomniał o zasadzie TellDon'tAsk , która, jeśli to możliwe, powinna być stosowana do wszystkich obiektów …




3
Upewnij się, że niebezpieczny kod nie zostanie przypadkowo użyty
Funkcja f()wykorzystuje eval()(lub coś równie niebezpiecznego) z danymi, które utworzyłem i zapisałem local_filena komputerze z uruchomionym programem: import local_file def f(str_to_eval): # code.... # .... eval(str_to_eval) # .... # .... return None a = f(local_file.some_str) f() jest bezpieczny do uruchomienia, ponieważ ciągi, które mu dostarczam, są moje. Jeśli jednak kiedykolwiek …

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.