Quali argomenti ci sono contro le uova di Pasqua? Ci sono argomenti per supportare anche le uova di Pasqua? [chiuso]

28

Sono un po 'un buffone, quindi l'idea di un uovo di Pasqua mi piace ancora. Li ho aggiunti nel mio codice ma il mio gruppo di amici ha iniziato a usare CTRL-FU per attivare l'uovo.

Ora sono anche un po 'paranoico riguardo alle prestazioni, quindi mi piace rimuovere l'eccesso ogni volta che è possibile. Ciò contraddice pesantemente le uova di Pasqua in quanto sono superflui al 100%.

Quali argomenti ci sono contro le uova di Pasqua? Inoltre, ci sono argomenti per supportare anche le uova di Pasqua?

    
posta Glenn Nelson 23.01.2011 - 19:00
fonte

7 risposte

11

Come sempre la risposta è "dipende".

Le uova di Pasqua sono un modo per incoraggiare l'esplorazione del "mondo" del programma. In un gioco è piuttosto ovvio: sali sulla cima della montagna più alta e la trovi (per esempio), ma per altre applicazioni devi usare le opzioni nascoste come il tuo Easter Egg. Tuttavia, sono considerati frivoli da alcune persone, quindi se stai scrivendo un'applicazione di business ultra seria non vuoi turbare i tuoi utenti presentandoli con uno schermo di criceti canori (o che mai) quando trovano la combinazione di chiavi magiche .

Avere un uovo di Pasqua in un'applicazione non dovrebbe avere un impatto negativo sulle prestazioni. Quindi, a meno che non stiate analizzando l'input da tastiera per il normale funzionamento della vostra applicazione avendo Ctrl + F U come trigger è una cattiva idea. Finché il codice viene eseguito solo se trovato quindi non c'è penalità di runtime. L'unica penalità è l'aumento delle dimensioni del programma, che può essere o non essere un problema. Se la dimensione del programma è un problema, allora lasciatelo fuori.

Tuttavia, avendo il codice aggiuntivo c'è un problema di supporto. Devi ancora supportare il codice e assicurarti che funzioni e non causi problemi quando viene eseguito. L'ultima cosa che vuoi è che la tua applicazione si blocchi mentre l'utente trova l'Easter Egg!

    
risposta data 23.01.2011 - 19:16
fonte
7

Direi che molto dipende dal tipo di software che stai sviluppando.

Le uova di Pasqua Imho hanno più probabilità di essere accettate (o addirittura apprezzate) nei giochi che nei software aziendali. Anche Microsoft ha inserito alcune uova di Pasqua nei loro prodotti, ma ora lo ha praticamente fermato. Il motivo per cui Microsoft ha smesso di mettere la Pasqua Le uova sono strettamente collegate alle possibili ragioni contro le uova di Pasqua: problemi di sicurezza. Come descritto nel pertinente articolo di Wikipedia , le uova di Pasqua sono di solito (almeno per l'utente / cliente ) parti non documentate del codice che potrebbero indurlo a credere che il prodotto fosse più aperto agli attacchi o in altro modo non attendibile. Inoltre, non tutti i codici di Easter Egg sono testati e controllati nello stesso grado del codice "mission critical". Ciò potrebbe portare a imperfezioni nascoste o buchi di loop nella base di codice che potrebbero essere l'origine di un successivo attacco o di un exploit di malware.

Tuttavia, non tutte le uova di Pasqua sono "cattive" e richiedono la manomissione del codice effettivo del prodotto. Esistono molti modi per presentare le uova di Pasqua, specialmente nei giochi in cui il codice è in qualche modo separato dal contenuto (gioco / grafica / motore di scripting rispetto a script o file di livello effettivi). Questi modi vanno da trame / oggetti speciali e commenti audio del protagonista (ad esempio, come usato in DN3D: Doom , Terminator , Indiana Jones , Star Trek ) a livelli segreti ("there is cow level ") alle finestre di dialogo che mostrano quando si fa clic su un determinato oggetto / posizione nell'interfaccia utente e molto altro ancora. Ovviamente, non tutti sono adatti per ogni tipo di prodotto.

Un bel modo di mettere un uovo di Pasqua nel tuo prodotto è includerti in qualche modo (e non solo nella sezione dei crediti). Blizzard lo ha fatto molto bene con StarCraft 2 . Un ritratto di unità è in realtà il volto di uno degli sviluppatori. Qualcosa di non così ovvio di solito è appropriato per molti tipi diversi di software perché non si basa sulla conoscenza dei media o su un certo tipo di umorismo. Ad esempio, potresti includere te stesso come personaggio nel contesto del prodotto. A seconda del prodotto, questo potrebbe non richiedere nemmeno una possibilità per il codice o solo molto semplice.

Le uova di Pasqua sono belle ma non richieste. L'implementazione di un Easter Egg non dovrebbe mai sminuire il prodotto reale e la sua presentazione dovrebbe essere appropriata per il pubblico target rientrato del prodotto finale. Un uovo di Pasqua in un'applicazione "seria" o un prodotto rivolto ai non adulti non dovrebbe mai includere umorismo adulto o contenuto sessuale, indipendentemente da quanto divertente o innocuo possa sembrare. Ciò potrebbe non solo portare a conseguenze legali, ma anche influenzare la gamma di marketing del software ( USK / PEGI / ESRB valutazioni, ad esempio ).

    
risposta data 23.01.2011 - 20:03
fonte
5

Le uova di Pasqua erano comuni anche nelle principali versioni di software commerciali negli anni '80 e '90. Per la maggior parte erano carini e relativamente poche persone ne erano infastiditi. Penso che siano meno comuni oggi per tre motivi:

  1. Come tutte le barzellette pratiche, sono divertenti fino a quando qualcuno non ottiene un occhio fuori. Se il tuo easter egg ha un bug che causa la perdita di dati o un problema di prestazioni, potresti finire per dover spiegare a un gruppo di avvocati che in realtà non stavi distribuendo "malware".

  2. L'umorismo è molto, molto, difficile da fare bene, e se lo fai male offenderesti i clienti paganti che poi smetteranno di pagare per il tuo software e chi scriverà molte brutte lettere alla stampa su cosa sia compagnia terribile e immatura per cui lavori. L'esempio di un easter egg attivato da Ctrl-FU è un esempio perfetto. Questo è probabilmente istericamente divertente per i tuoi amici di 17 anni, ma è la regola numero uno del marketing a non dire mai ai tuoi clienti "FU", anche scherzando. Si noti che le uova di Pasqua nei grandi software commerciali non hanno mai fatto ridere l'utente, solo i concorrenti.

  3. Nelle parole immortali di Peter Tork of the Monkees nel film Head : " Nessuno presta denaro a un uomo con un senso dell'umorismo. " Se stai acquistando un'infrastruttura software fondamentale, il senso dell'umorismo nell'autore non è rassicurante. Oltre a questo, perché passavano il tempo a scrivere uova di Pasqua quando avrebbero potuto sistemare i loro numerosi bug di sicurezza?

Larry Osterman ha avuto un blog post abbastanza famoso anni fa discutendo perché il gruppo OS in Microsoft non consente più le uova di Pasqua .

    
risposta data 23.01.2011 - 20:14
fonte
4

Le uova di Pasqua sono piccoli segreti lasciati dai costruttori. Fa male agli utenti finali? No.

Molti ben noti e popolari pezzi di software hanno incluso uova di Pasqua nascoste . Le uova di Pasqua sono anche state usate per mostrare un sentimenti degli sviluppatori su un particolare argomento delicato in un modo piuttosto elegante.

Per quanto riguarda l'ottimizzazione del codice, a condizione che le uova di Pasqua non siano troppo intense (ciao simulatore di volo ) non dovrebbe ferire le prestazioni in modo significativo.

    
risposta data 23.01.2011 - 19:46
fonte
2

Anche se mi piacciono le uova di Pasqua nel software, è importante ricordare che la linea tra un uovo lasciato in un prodotto per divertimento e una backdoor dannosa può essere molto sottile dal punto di vista legale. Ad esempio, è necessario mostrare danni? Occorre dimostrare l'intenzione di fare del male?

Considerando che la comprensione da parte dei tribunali di computer e software è alquanto misera (come evidenziato da alcuni brevetti software), discutere di un caso del genere comprerà parecchi avvocati come una bella casa per le vacanze ad Aspen. Quando si considerano i vari ambienti legali (come il DMCA) in cui il software è pubblicato e distribuito in tutto il mondo, possono anche comprarli case per ferie nelle Alpi.

Come ingegneri assoldati, garantiamo di non danneggiare la nostra azienda. Il contenzioso potrebbe diventare un danno e il contenzioso è probabile se consegniamo software a contratto ad altri clienti, in particolare governi o grandi imprese. Quindi, personalmente sceglierei di sbagliare sul lato sicuro.

Ricorda, gli ingegneri esistono per usare la logica per fini buoni, mentre gli avvocati esistono per distorcere la logica per il male. Ecco perché vengono pagati molto più di noi.

    
risposta data 23.01.2011 - 21:49
fonte
0

Molti hanno dichiarato che le uova di Pasqua sono più adatte ai giochi, ma penso che abbiano un uso nelle applicazioni aziendali. Troppe persone creano una serie di ricette per l'utilizzo di un'app aziendale che non guardano mai in altre aree dell'applicazione. Voglio dire, ci sono sezioni intere di un'applicazione che non guardano mai se non fosse parte del loro addestramento e avrebbe potuto essere di qualche utilità per loro. Attualmente ho lavorato a un'applicazione con 75 report e gli utenti chiedevano informazioni e non hanno mai nemmeno pubblicato un singolo report. Hanno bisogno di qualche incentivo per compensare la loro mancanza di curiosità (nella loro difesa, alcuni utenti hanno paura di rompere qualcosa.)

    
risposta data 24.01.2011 - 02:43
fonte
-2

Uso le uova di Pasqua per aiutarmi a eseguire il debug e la codifica. Quindi le uova di Pasqua che ho messo servono a uno scopo e probabilmente non sono considerate uova di Pasqua.

    
risposta data 23.01.2011 - 19:23
fonte

Leggi altre domande sui tag