Inżynieria oprogramowania

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

3
Dlaczego potrzebujesz „siebie”. w Pythonie, aby odwoływać się do zmiennych instancji?
Programuję w wielu językach, takich jak Java, Ruby, Haskell i Python. Muszę przełączać się między wieloma językami dziennie z powodu różnych projektów, nad którymi pracuję. Problem polega na tym, że często zapominam pisać selfjako pierwszy parametr w definicjach funkcji w Pythonie tak samo, jak w przypadku wywoływania metod na tym …

2
Symbol diagramu klasy UML dla funkcji najwyższego poziomu
Jak w notacji diagramów klas UML mam określić funkcję najwyższego poziomu, która nie ma żadnej klasy enkapsulacji ani innej struktury? np. mam funkcję służącą do pobierania danych z adresu URL. Ponieważ jest to funkcja (w sensie matematycznym) tylko jej parametrów i wspólnego stanu globalnego, funkcja ta nie jest umieszczana w …
13 uml 

3
Skład zamiast dziedziczenia, ale
Próbuję nauczyć się inżynierii oprogramowania i napotykam sprzeczne informacje, które mnie dezorientują. Uczyłem się OOP i czym są abstrakcyjne klasy / interfejsy i jak z nich korzystać, ale potem czytam, że należy „preferować kompozycję zamiast dziedziczenia”. Rozumiem, że skład ma miejsce, gdy jedna klasa tworzy / tworzy obiekt innej klasy …

2
Dlaczego języki programowania zaczęły używać = do przypisania?
W większości wczesnych książek <-o algorytmach odnosił się do zadania i =do porównania. Ale obecnie jedynymi językami, które nie są używane =do przypisywania, są Pascal ( :=) i języki zabawkowe, takie jak COOL . Co spowodowało, że współczesne języki programowania zmieniły się =w przypisanie znaczeń zamiast matematycznego znaczenia równości?


1
Wzory wyrażeń regularnych Java - kompilować stałe czasowe lub elementy instancji?
Obecnie mam kilka pojedynczych obiektów, w których dopasowuję wyrażenia regularne, a moje Patterns są zdefiniowane w następujący sposób: class Foobar { private final Pattern firstPattern = Pattern.compile("some regex"); private final Pattern secondPattern = Pattern.compile("some other regex"); // more Patterns, etc. private Foobar() {} public static Foobar create() { /* singleton …


4
Użyj warstwy usługi z MVC
Jeśli kontroler staje się zbyt gruby, a tworzenie instancji modelu zaczyna się sumować, można zastosować warstwę usługi. Jeśli po prostu zawiążę logikę w klasie usług, otrzymam kilka usług za pomocą jednej / dwóch metod. To przypomina zapach kodu. Jakieś najlepsze praktyki w tym zakresie? Czy usługa może tworzyć modele? Jeśli …
13 mvc  services 

5
Jak udokumentować projekt, który jest już opracowany?
Chciałbym wiedzieć, jakie opcje są dostępne do dokumentowania projektu, który został już opracowany, ponieważ programiści, nad którymi pracowali, nie napisali ani jednej strony dokumentacji. Projekt nie zawiera żadnych innych szczegółów poza wieloma stronami skryptów z funkcjami napisanymi i zmodyfikowanymi przez programistów, którzy pracowali nad tym projektem przez ostatnie 2 lata. …

2
Co to jest obiekt aktywacyjny w JavaScript?
W danym kontekście wykonania obiekt Zmienny jest obiektem Aktywacji tego kontekstu wykonania. Z moich badań online mogę znaleźć poprzednie zdanie przeformułowane na różne sposoby, ale nikt nie jest w stanie powiedzieć, co to jest. Co to jest obiekt aktywacyjny?

2
Czy deklarowanie pól w klasach jest rzeczywiście szkodliwe w PHP?
Rozważ następujący kod, w którym seter jest celowo uszkodzony z powodu przyziemnego błędu programistycznego, który popełniłem naprawdę kilka razy w przeszłości: <?php class TestClass { private $testField; function setField($newVal) { $testField = $newVal; // deliberately broken; should be `$this->testField = $newVal` } function getField() { return $this->testField; } } $testInstance …
13 php 

4
Czy ręczne wstrzykiwanie zależności jest lepszą alternatywą dla kompozycji i polimorfizmu?
Po pierwsze, jestem programistą na poziomie podstawowym; W rzeczywistości kończę stopień naukowy AS końcowym projektem zwieńczenia latem. W mojej nowej pracy, gdy nie ma dla mnie żadnego projektu (czekają, aby zapełnić zespół nowymi pracownikami), dostaję książki do czytania i nauki podczas oczekiwania - niektóre podręczniki, inne nie tak bardzo (jak …


4
Jakiego rodzaju kodowania mogę użyć, aby skrócić łańcuch?
Interesuje mnie kodowanie łańcucha, który mam i jestem ciekawy, czy istnieje rodzaj kodowania, który może być użyty, który będzie zawierał tylko znaki alfanumeryczne i najlepiej skróciłby liczbę znaków potrzebnych do przedstawienia łańcucha. Do tej pory zastanawiałem się nad użyciem do tego kodowania Base64, ale wydaje się, że mój łańcuch jest …

4
Jakie są zagrożenia / słabości bezpieczeństwa, o których powinien wiedzieć każdy programista C? [Zamknięte]
Zamknięte . To pytanie musi być bardziej skoncentrowane . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby skupiało się tylko na jednym problemie, edytując ten post . Zamknięte 4 lata temu . Istnieje wiele zagrożeń bezpieczeństwa związanych z bliskim kontaktem ze sprzętem, w przeciwieństwie do używania dobrze …

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.