Ponieważ Internet jest niemal wszechobecny, czy jako programiści możemy założyć, że wszyscy użytkownicy mają dostęp do Internetu? Teraz nie mam na myśli, że kod jest napisany w taki sposób, że jeśli nie ma połączenia, cały program ulega awarii z powodu braku kodu błędu. Mam na myśli to, czy programy można dziś opracowywać przy założeniu, że ich użytkownicy zawsze będą mieli dostęp do Internetu?
Możesz zapytać „Co zyskujemy, zakładając, że?” Powodem, dla którego pytam, jest to, że w uni korzystamy z wielu programów, które wymagają dostępu do Internetu ze względu na sposób sprawdzania licencji (sprawdza twój adres IP - jeśli nie jest to adres w kampusie, to jesteś nie wolno go używać). Pamiętaj, że sam program powinien działać dobrze bez dostępu do Internetu; jest to po prostu potrzebne do sprawdzania licencji.
EDYCJA: Mówię tutaj o aplikacjach komputerowych.
EDYCJA 2: Z niektórych odpowiedzi mam wrażenie, że jestem oskarżany o wykorzystywanie użytkowników w nieetyczny sposób. Ja nie popierając tego, co już opisano w tej kwestii - Pytam o to, ponieważ twórcy niektórych programów, których używamy w uni tego zrobić. Osobiście uważam, że robienie tego jest po prostu głupie i złe.
źródło
Odpowiedzi:
Zły pomysł z trzech powodów. Po pierwsze, mimo że obecnie każdy ma dostęp do Internetu, co w zasadzie jest prawdą, nie zawsze jest on dostępny przez cały czas. Moją podstawową maszyną jest laptop i jest podłączony przez większość czasu, ale nie na przykład, gdy jestem w autobusie.
Drugi i, w pewnym sensie, związany z pierwszym, to metoda sprawdzania. Co się stanie, jeśli student otrzyma uzasadnioną kopię programu, umieści ją na swoim laptopie, a następnie pójdzie na studia z przyjacielem, który mieszka poza kampusem? Właśnie wprowadziłeś do swojego testu licencji fałszywie pozytywny warunek.
Po trzecie, istnieje etyczny problem ze sprawdzaniem licencji. Jeśli dana osoba zdecyduje się umieścić program na swoim komputerze, nie masz prawa powodować, że jego komputer traktuje go jako nieważny. W każdym innym kontekście, który nazywa się hackowaniem i może wylądować w gorącej wodzie, a tylko dlatego, że właściciele praw autorskich zostali porwani przez właścicieli praw autorskich w celu specjalnego wyłączenia prawnego dla tego scenariusza, co nie jest właściwe .
Egzekwowanie prawa jest zadaniem organów ścigania, a osoby prywatne są bardzo zniechęcane do wzięcia egzekwowania prawa we własne ręce (czujność), ponieważ zwykle robią to wszystko źle. (Wystarczy spojrzeć na rootkit Sony!)
Najlepszym rozwiązaniem byłoby założenie, że użytkownik ma połączenie internetowe dostępne dla funkcji, które go faktycznie wymagają, ale nie wymaga go dla funkcji, które mogą się bez niego obejść, a na pewno nie wymaga go tylko do przekonania programu, że to nie jest nielegalna kopia!
źródło
Nie wszyscy użytkownicy mają dostęp do Internetu. Na przykład poza małymi i średnimi miastami (i ich przedmieściami) oraz miasteczkami uniwersyteckimi USA prawie nie mają infrastruktury szerokopasmowej. Użytkownicy z małych miasteczek i na wsi korzystają zwykle z satelity lub połączenia telefonicznego (a ich linie telefoniczne nie zawsze są najlepsze, więc połączenie telefoniczne jest często poniżej 50 k / s).
Użytkownicy z dobrym dostępem do Internetu w domu / biurze często działają w innych miejscach: parkach, samolotach, kawiarniach, salach konferencyjnych itp., Które zwykle nie mają niezawodnego dostępu do Internetu.
Wielu użytkowników inwestuje w zasilanie rezerwowe z jakiegoś powodu: aby nie mieli przestojów w czasie awarii. Jeśli okaleczysz swoją aplikację, gdy Internet przestanie działać, po prostu okradłeś ją z tej inwestycji.
Połączenia internetowe zawodzą, dostawcy usług internetowych (lub miejsca pracy lub uniwersytety) blokują ruch według własnego uznania, użytkownicy domowi źle konfigurują swoje NAT ... po prostu głupie jest tworzenie sztucznego (tzn. Nie technicznego skutku zbudowania rzeczy) punktu awarii w twoim oprogramowaniu.
Same powyższe powody są więcej niż wystarczające, aby nie używać modelu DRM „zadzwoń do domu”; ale nawet jeśli żadne z nich nie byłoby prawdą, nadal odradzam to, ponieważ, jak już wcześniej zauważył Mason, etycznie niewłaściwe jest wykorzystywanie użytkowników w ten sposób.
Nie możesz ujawniać informacji o swoich użytkownikach tylko dla własnego spokoju. Nie masz prawa monitorować, kiedy i skąd korzystają z twojego oprogramowania. Takie postępowanie narusza zaufanie użytkowników.
źródło
Nie!
Wszystkie programy powinny uznać dostęp do Internetu za najlepszy scenariusz z trybem awaryjnym, gdy komputer może nie być podłączony.
Przy tak dużej liczbie laptopów oraz z uwagi na fakt, że większość publicznych sieci bezprzewodowych nadal jest płatnych, większość użytkowników laptopów będzie regularnie doświadczać warunków, w których będą musieli korzystać z komputera i programów bez połączenia z Internetem .
Jak również opublikowano inne odpowiedzi, można bezpiecznie założyć, że komputer zostanie podłączony w pewnym momencie w przyszłości. Wiele aplikacji typu synchronizacja, które mają tryb offline, działa w ten sposób. Jednak ze względu na uprzejmość użytkowników nie należy obsługiwać w ten sposób, chyba że jest to usługa dla użytkownika . Nie sądzę, że sprawdzanie licencji należy do tej kategorii.
źródło
Nie
Wyłączając aplikacje internetowe, aplikacja komputerowa nie powinna w mojej opinii zakładać, że ma dostęp do Internetu.
źródło
Krótka wersja brzmi NIE, nie można zakładać, że wszyscy użytkownicy mają dostęp do Internetu. Jak wspomnieli inni, duża liczba osób ma ograniczony dostęp do Internetu w domu lub nie ma go wcale.
Twój system licencjonowania powinien być w stanie poradzić sobie z sytuacją, w której komputer, na którym uruchomione będzie oprogramowanie, nigdy nie będzie miał dostępu do Internetu. Nie jest niczym niezwykłym, że korporacje mają sieci odizolowane od Internetu (szczególnie w przypadku problemów związanych z bezpieczeństwem). Jest to szczególnie ważne, jeśli kiedykolwiek będziesz chciał móc sprzedawać swoje oprogramowanie agencji rządowej. Drugą stroną jest to, jak poradzisz sobie z aktualizacjami? Jeśli będziesz chciał sprzedawać korporacjom / rządom, będziesz musiał wspierać wdrażanie aktualizacji przez Enterprise.
źródło
Tak, w tym sensie, że większość osób pracujących z komputerami ma dostęp do połączenia internetowego (więc prawdopodobnie rozpowszechnianie poprawek błędów za pomocą menedżera pakietów lub FTP lub podobnego).
Nie w tym sensie, że większość ludzi niekoniecznie ma stały, niezawodny, wydajny dostęp do Internetu przez cały dzień (więc założenie, że każdy z twoich użytkowników może konsekwentnie obniżać prędkość 20 Mb / s, jest prawdopodobnie złym pomysłem. Ludzie również okresowo korzystają z autobusów i samoloty, w których prawie nie ma łączności).
źródło
Myślę, że rozsądnie jest założyć, że wszyscy użytkownicy będą mieli dostęp do Internetu przez większość czasu , a przynajmniej w czasie instalacji. Jeśli jednak zabiorę laptopa ze sobą w samolocie, do kabiny w lesie lub na łodzi na morzu, oczekiwałbym wszystkiego, co oczywiście nie wymaga dostępu do Internetu, aby dobrze działać.
źródło
Odpowiedź jest oczywiście zależna. Jeśli budujesz oprogramowanie dla fabryki, istnieje duża szansa, że nie będą oni mieli dostępu do Internetu. W przypadku aplikacji konsumenckich najprawdopodobniej będą.
źródło
Połączenie z Internetem może nie być pożądane, tak jak w przypadku użytkowników korzystających z mojego systemu zarządzania lombardem (aplikacja komputerowa oparta na RDBMS). Po prostu nie ufają, że Internet jest podłączony do tego samego komputera, na którym przechowywane są wszystkie dane osobowe klientów i transakcje lombardowe. Jeśli chcą uzyskać dostęp do sieci, używają osobnego komputera, na którym nie ma żadnych danych osobowych!
źródło
Pływający serwer licencyjny to podobna koncepcja. Użyłem kompilatora w systemie AIX IBM, który stale sprawdzał serwer licencyjny. To było wolne i w końcu przenieśliśmy kod do gcc.
Jest delikatny i denerwujący. Myślę, że ma to sens tylko w przypadku bardzo drogiego oprogramowania prawie monopolistycznych firm.
źródło