Inżynieria oprogramowania

10
Metody testowania bardzo dużej aplikacji

Mam bardzo dużą aplikację PHP. Zwykle pracuje nad nim 2-3 programistów i dochodzimy do punktu, w którym wprowadzamy zmiany i robimy błędy (funkcje kaszlu!). Oprogramowanie nie jest skomplikowane, powiedzmy, po prostu wiele się dzieje (35 ~ kontrolerów, o tych samych modelach itp.). Nawet uważając,...

10
TDD: Wyśmiewanie ciasno powiązanych obiektów

Czasami przedmioty muszą być ściśle połączone. Na przykład CsvFileklasa prawdopodobnie będzie musiała ściśle współpracować z CsvRecordklasą (lub ICsvRecordinterfejsem). Jednak z tego, czego nauczyłem się w przeszłości, jedną z głównych zasad rozwoju opartego na testach jest: „Nigdy nie testuj...

10
Uruchamianie oprogramowania jako usługi wykorzystującej niezmodyfikowany program GPL (v2 +) jako podstawową zależność: czy należy wydać kod źródłowy SaaS?

Projektuję oprogramowanie jako projekt usługi, do którego dostęp będzie możliwy tylko online. Mogę mieć twardą zależność od pliku wykonywalnego objętego licencją GNU GPL (wersja 2 lub nowsza). Rozumiem, że mój kod, jeśli miałbym go kiedykolwiek rozpowszechniać, musi być rozpowszechniany również na...

10
Jak unikać ogólnych nazw klas abstrakcyjnych?

Ogólnie dobrze jest unikać słów takich jak „uchwyt” lub „proces” jako część rutynowych nazw i nazw klas, chyba że mamy do czynienia z (np.) Uchwytami plików lub (np.) Procesami unixowymi. Jednak klasy abstrakcyjne często nie wiedzą, co zamierzają z czymś zrobić, poza, powiedzmy, przetworzeniem. W...

10
Czy istnieje znany algorytm planowania pojedynków turniejowych?

Zastanawiam się tylko, czy istnieje już algorytm planowania turniejów, którego mógłbym użyć, a nawet nieco dostosować. Oto moje wymagania: Każda zmienna liczba przeciwników należących do zmiennej liczby drużyn / klubów musi być sparowana z przeciwnikiem Dwóch przeciwników nie może pochodzić z...

10
Jaka jest zaleta przypisywania funkcji do var?

Biorąc pod uwagę ten przykład Javascript, który znalazłem var sum = function() { var i, sum = 0; for(i = 0; i < arguments.length; i += 1) { sum += arguments[i]; } return sum; }; Jaka jest zaleta przypisywania funkcji do