Jestem trochę błazenem, więc pomysł na pisankę wciąż mi się podoba. Dodałem je wcześniej do mojego kodu, ale moja grupa przyjaciół ma żart z używania CTRL-FU do uruchomienia jajka.
Teraz jestem trochę paranoikiem co do wydajności, więc lubię usuwać nadmiar, gdy tylko jest to możliwe. Jest to bardzo sprzeczne z pisankami, ponieważ są one w 100% zbędne.
Jakie są argumenty przeciwko pisankom? Czy są też jakieś argumenty przemawiające za poparciem pisanek?
Odpowiedzi:
Jak zawsze odpowiedź brzmi „to zależy”.
Pisanki są jednym ze sposobów zachęcania do odkrywania programu „świat”. W grze jest to raczej oczywiste - wspinasz się na szczyt najwyższej góry i znajdujesz ją (na przykład), ale w innych aplikacjach musisz używać ukrytych opcji jako jajka wielkanocnego. Jednak są one uważane przez niektórych za niepoważne, więc jeśli piszesz bardzo poważną aplikację biznesową, nie chcesz denerwować użytkowników, prezentując im ekran śpiewających chomików (lub kiedykolwiek), gdy znajdą magiczną kombinację klawiszy .
Posiadanie pisanki w aplikacji nie powinno mieć negatywnego wpływu na wydajność. Więc jeśli nie analizujesz danych wejściowych z klawiatury dla normalnego działania aplikacji, posiadanie Ctrl+ FUjako wyzwalacza jest złym pomysłem. Tak długo, jak kod jest wykonywany tylko wtedy, gdy zostanie znaleziony, nie ma kary wykonawczej. Jedyną karą jest wzrost wielkości programu - co może, ale nie musi stanowić problemu. Jeśli rozmiar programu stanowi problem, zdecydowanie go pomiń.
Jednak posiadanie dodatkowego kodu wiąże się z problemem pomocy technicznej. Nadal musisz obsługiwać kod i upewnić się, że działa i nie powoduje problemów po uruchomieniu. Ostatnią rzeczą, jakiej chcesz, jest awaria aplikacji, gdy użytkownik znajdzie Pisankę!
źródło
Powiedziałbym, że wysoce zależy od rodzaju oprogramowania, które tworzysz.
Jaja wielkanocne Imho częściej są akceptowane (a nawet doceniane) w grach niż w oprogramowaniu biznesowym. Nawet Microsoft umieścił kilka pisanek w swoich produktach, ale teraz prawie całkowicie to powstrzymał. Powód, dla którego Microsoft przestał wkładać pisanki, jest ściśle związany z możliwymi przyczynami przeciwko pisankom: obawami dotyczącymi bezpieczeństwa. Jak opisano w odpowiednim artykule w Wikipedii, Pisanki są zwykle (przynajmniej dla użytkownika / klienta) nieudokumentowanymi częściami kodu, co może prowadzić do przekonania, że produkt był bardziej otwarty na ataki lub w inny sposób niegodny zaufania. Co więcej, nie cały kod pisanki jest testowany i kontrolowany w takim samym stopniu, jak kod „krytyczny dla misji”. Może to prowadzić do nieodkrytych wad lub luk w bazie kodu, które mogą być źródłem późniejszego ataku lub exploita złośliwego oprogramowania.
Jednak nie wszystkie pisanki są „złe” i wymagają manipulowania rzeczywistym kodem produktu. Istnieje wiele sposobów prezentowania pisanek, szczególnie w grach, w których kod jest nieco oddzielony od treści (gra / grafika / silnik skryptowy vs. rzeczywiste pliki skryptów lub poziomów). Te sposoby obejmują od specjalnych tekstur / obiektów i komentarzy dźwiękowych głównego bohatera (np. Stosowanych w DN3D: Doom , Terminator , Indiana Jones , Star Trek ) po tajne poziomy ( „nie ma poziomu krowy” ) po okna dialogowe pokazujące, kiedy określony obiekt kliknięto / location w interfejsie użytkownika i wiele więcej. Oczywiście nie każdy z nich jest odpowiedni dla każdego rodzaju produktu.
Dobrym sposobem na umieszczenie jajka wielkanocnego w swoim produkcie jest włączenie się w jakiś sposób (i nie tylko w dziale kredytów). Blizzard zrobił to bardzo dobrze z StarCraft 2 . Jeden portret jednostki jest tak naprawdę twarzą jednego z programistów. Coś nie tak oczywistego jest zwykle odpowiednie dla wielu różnych rodzajów oprogramowania, ponieważ nie opiera się na wiedzy medialnej ani pewnego rodzaju humorze. Na przykład, być może możesz uwzględnić siebie jako postać w kontekście produktu. W zależności od produktu może to nawet nie wymagać szansy na kod lub tylko bardzo prosty.
Pisanki są ładne, ale nie wymagane. Wdrożenie jajka wielkanocnego nigdy nie powinno umniejszać rzeczywistego produktu, a jego prezentacja powinna być odpowiednia dla docelowej grupy docelowej końcowego produktu. Pisanka w „poważnej” aplikacji lub produkt skierowany do osób dorosłych nie powinien zawierać humoru ani treści seksualnych dla dorosłych, bez względu na to, jak zabawny lub nieszkodliwy wydaje się być. Może to nie tylko prowadzić do konsekwencji prawnych, ale także wpłynąć na zakres marketingowy oprogramowania ( na przykład oceny USK / PEGI / ESRB ).
źródło
Pisanki były powszechne nawet w głównych wersjach oprogramowania komercyjnego w latach 80. i 90. W przeważającej części były urocze i niepokoiło ich stosunkowo niewiele osób. Myślę, że są dziś mniej popularne z trzech powodów:
Jak wszystkie praktyczne żarty, są zabawne, dopóki ktoś nie rzuca się w oczy. Jeśli w Twoim jaju wielkanocnym występuje błąd, który powoduje utratę danych lub problem z wydajnością, możesz w końcu wyjaśnić grupie prawników, że tak naprawdę nie rozpowszechniasz „złośliwego oprogramowania”.
Humor jest bardzo, bardzo trudny do zrobienia dobrze, a jeśli zrobisz to źle, obrazisz klientów, którzy przestaną płacić za twoje oprogramowanie i napiszą wiele nieprzyjemnych listów do prasy o tym, jak straszną, niedojrzałą firmą pracujesz dla. Przykład jajka wielkanocnego uruchomionego przez Ctrl-FU jest doskonałym przykładem. Jest to prawdopodobnie histerycznie zabawne dla twoich 17-letnich przyjaciół, ale jest to 0 reguła marketingu, aby nigdy nie mówić swoim klientom „FU”, nawet żartując. Zauważ, że pisanki w dużym komercyjnym oprogramowaniu NIGDY nie wyśmiewały użytkownika, tylko konkurentów.
W nieśmiertelnych słowach Petera Torka z Monkees w filmie Głowa : „Nikt nie pożycza pieniędzy człowiekowi z poczuciem humoru”. Jeśli kupujesz kluczowy element infrastruktury oprogramowania, poczucie humoru autora nie jest uspokajające. Poza tym, dlaczego spędzali czas na pisaniu pisanek, skoro mogli naprawić liczne błędy bezpieczeństwa?
Larry Osterman miał dość znany post na blogu wiele lat temu, omawiając, dlaczego grupa OS w Microsoft nie zezwala już na pisanki .
źródło
Pisanki to małe tajemnice pozostawione przez budowniczych. Czy boli użytkowników końcowych? Nie.
Wiele znanych i popularnych programów zawiera ukryte pisanki . Pisanki zostały również wykorzystane do pokazania uczniom uczuć na konkretny drażliwy temat w dość elegancki sposób.
Jeśli chodzi o optymalizację kodu, dopóki pisanki nie są zbyt intensywne (cześć symulator lotu ), nie powinno to znacząco wpływać na wydajność.
źródło
Chociaż lubię pisanki w oprogramowaniu, ważne jest, aby pamiętać, że granica między jajkiem pozostawionym w produkcie dla zabawy a złośliwym backdoorem może być bardzo cienka z prawnego punktu widzenia. Na przykład, czy konieczne jest wykazanie szkody? Czy trzeba udowodnić chęć wyrządzenia krzywdy?
Biorąc pod uwagę, że rozumienie przez sądy komputerów i oprogramowania jest dość nieszczęśliwe (o czym świadczą niektóre patenty na oprogramowanie), debata o takiej sprawie kupi kilku prawnikom ładny dom wakacyjny w Aspen. Jeśli weźmie się pod uwagę różne środowiska prawne (takie jak DMCA), w których oprogramowanie jest publikowane i dystrybuowane na całym świecie, może również kupić im domy wakacyjne w Alpach.
Jako zatrudnieni inżynierowie gwarantujemy, że nasza firma nie zaszkodzi. Spory sądowe mogą zaszkodzić, a spory sądowe są prawdopodobne, jeśli dostarczymy oprogramowanie na podstawie umowy innym klientom, zwłaszcza rządom lub dużym przedsiębiorstwom. Dlatego osobiście wybrałbym błąd po bezpiecznej stronie.
Pamiętajcie, inżynierowie istnieją po to, by wykorzystywać logikę do dobrych celów, podczas gdy prawnicy istnieją po to, by przekręcać logikę za zło. Dlatego zarabiają o wiele więcej niż my.
źródło
Wiele osób twierdzi, że pisanki są bardziej odpowiednie do gier, ale myślę, że mają zastosowanie w aplikacjach biznesowych. Zbyt wiele osób po prostu tworzy serię przepisów na korzystanie z aplikacji biznesowej, których nigdy nie patrzą na inne obszary aplikacji. Mam na myśli całe sekcje aplikacji, których nigdy nie oglądają, gdyby nie były częścią ich szkolenia i mogły być dla nich przydatne. Obecnie pracowałem nad aplikacją z 75 raportami, a użytkownicy pytali o informacje i nigdy nie uruchomili ani jednego raportu. Potrzebują zachęty, aby nadrobić brak ciekawości (w obronie niektórzy użytkownicy boją się coś zepsuć).
źródło
Używam pisanek, aby pomóc mi w debugowaniu i kodowaniu. Dlatego pisanki, które włożyłem, służą celowi i prawdopodobnie nie są uważane za pisanki.
źródło