Moim zdaniem weryfikacja rozwiązań niektórych zadań czasem kuleje. Nie ma możliwości wtedy nawet sprawdzenia co poszło nie tak i przy jakich danych wejściowych, a sam opis zadania pozostawia wielokrotnie mnóstwo wątpliwości. Być może to właśnie ma być największa frajda - takie domyślanie się...
Jednakże istnieją w sieci portale, gdzie jest również mnóstwo zadań algorytmicznych z różnych dziedzin, bardziej intuicyjny interfejs, wbudowane kompilatory, możliwość skompilowania kodu przed "wrzuceniem" oraz możliwość podejrzenia dokładnych danych wejściowych i wyników każdego przypadku testowego. Czy jest szansa rozbudować kiedyś polski SPOJ o takie funkcjonalności?
Nie mówię po polsku, ale tutaj jest moje zdanie przetłumaczone z Google Translate tutaj:
Odrzucając moje modertor kapelusz tutaj prawdziwego postu: Nie zgadzam się z tym, że jest to "zgadywania". Ta witryna rzeczywiście bardziej realistycznie odpowiada co dzieje się w "realu". Kiedy jestem podane zadania w pracy, muszę zadać pytania i określić wymagania zanim zacznę pisać kod. Po skończę pisanie mój kod muszę przetestować go w różnych sytuacjach, aby sprawdzić, czy to działa. Gdybym zwolnić go publicznie i nie działa na niektórych wejścia, które użytkownik wprowadza do niego, to stawia całą działalność w niebezpieczeństwie.
Wyobraź sobie teraz, że klikając "Zatwierdź" jest równoznaczne z uwalniając swój kod publicznie. Czy to ma teraz większy sens?
Ta strona nie jest "kodowania" strona. To jest problem rozwiązać strona. Dlatego jest tak wiele języków dostępne. Kod jest tylko narzędziem do wdrożenia rozwiązanie problemu.
Moderator Hat Back On: Jeśli otrzymujesz złą odpowiedź na tej stronie jest bardziej prawdopodobne, ponieważ masz obchodzić ograniczenia wynikające z wejścia nieprawidłowo i nie uważa możliwych przypadków testowych niż fakt, że sędzia nie jest prawidłowe. Jeśli sędzia nie jest prawidłowe, nie będzie wiele, wiele komentarzy wspomnieć, że i ludzie nie będą na nim coraz akceptowane. Jeśli ludzie są coraz akceptowane na nim, to problem jest z roztworu. Proponuję delegowania o pomoc na forum w dziale Problemset, ktoś będzie prawdopodobnie pomóc.
W rzeczywistym świecie nie musimy zazwyczaj zgadywać co dokładnie nie działa, bo są od tego debugger'y. A zbierając wymagania od klienta można poznać o wiele więcej niż 1 - 4 przypadków testowych jak to zazwyczaj jest podane w opisie zadania.
Prawdą jest fakt, że na innych portalach są wspomniane funkcjonalności, które by się na spoju przydały. Niestety, nie liczyłbym że coś takiego pojawi się w najbliższym czasie, bo są inne problemy, które czekają na rozwiązanie. Nie zgodzę się natomiast że weryfikacja kuleje.
Minimum 95% lub więcej zadań na polskim spoju jest sprecyzowana w taki sposób, że nie ma wątpliwości co do wejścia i wyjścia. W zadaniu. Te 5% to stare zadania lub te z kategorii trudne, które mają polegać na zgadywaniu. Brakuje może takich informacji w regulaminie, ale tak jest na większości konkursów algorytmicznych, więc: - Zazwyczaj jest podany zakres danych wejściowych. Użytkownik nie musi weryfikować w zadaniu poprawności tych zakresów. - Wejście i wyjście pod zadaniem jest po to, żeby przestawić w jakim formacie są te dane. Testy poprawnościowe i wydajnościowe celowo nie są udostępnione. - Użytkownik powinien założyć, że jeśli w treści zadania nie ma informacji co powinien wyświetlić w przypadku nieprawidłowych danych wejściowych to takiego przypadku nie będzie. - Pozostały zbiór danych wejściowych powinien być obsłużony przez kod użytkownika w pełnym zakresie. Użytkownik może napisać swoje testy aby sprawdzić poprawność algorytmu.
możliwość podejrzenia dokładnych danych wejściowych i wyników każdego przypadku testowego
Już jest to możliwe, jeśli autor zadania sobie tego życzy.
W rzeczywistym świecie nie musimy zazwyczaj zgadywać co dokładnie nie działa, bo są od tego debugger'y. A zbierając wymagania od klienta można poznać o wiele więcej niż 1 - 4 przypadków testowych jak to zazwyczaj jest podane w opisie zadania.
Tak? I jak piszesz jakąś funkcję w swojej aplikacji to dzwonisz do klienta, czy piszesz testy jednostkowe?
Gdzie? Nie przychodzi mi na myśl żaden ze znanych mi. Może nie znam jakiegoś, mógłbyś łaskawie podać link?
Nie bardzo rozumiem i widzę potrzebę takiej funkcjonalności. Jeżeli chcesz uczyć się / używasz jakiegoś języka programowania, to przecież chyba to nie problem zainstalować u siebie kompilator, ide, debuger, profiler do tego języka i robić to wszystko u siebie na kompie?
Moim zdaniem, takie funkcjonalności są mało przydatne i dopiero pierwszy raz spotykam się z takim postulatem.
Tu zawsze piszę: "Każdy może zostać, po spełnieniu prostych warunków, problemsetterem i wstawiać na SPOJ'a swoje "lepsze" zadania. Więc zamiast narzekać, zapraszam do współpracy i do pisania lepszych zadań"