Eu sou um bobo da corte, então a idéia de um ovo de páscoa ainda me atrai. Eu os adicionei no meu código antes, mas meu grupo de amigos tem uma piada sobre o uso de CTRL-FU para acionar o ovo.
Agora também estou um pouco paranóico com relação ao desempenho, então gosto de remover o excesso sempre que possível. Isso contradiz fortemente os ovos da páscoa, pois eles são 100% supérfluos.
Que argumentos existem contra os ovos da páscoa? Além disso, existem argumentos para apoiar os ovos de páscoa?
Respostas:
Como sempre, a resposta é "depende".
Os ovos da páscoa são uma maneira de incentivar a exploração do programa "mundo". Em um jogo, é bastante óbvio - você sobe ao topo da montanha mais alta e o encontra (por exemplo), mas para outros aplicativos, você precisa usar opções ocultas como seu ovo de Páscoa. No entanto, eles são vistos como frívolos por algumas pessoas; portanto, se você está escrevendo um aplicativo comercial extremamente sério, não quer incomodar seus usuários, apresentando-lhes uma tela de hamsters cantores (ou o que quer que seja) quando encontrar a combinação de teclas mágica .
Ter um ovo de Páscoa em um aplicativo não deve ter um impacto negativo no desempenho. Portanto, a menos que você esteja analisando a entrada do teclado para a operação normal do seu aplicativo com Ctrl+ FUcomo gatilho, é uma má idéia. Contanto que o código seja executado apenas se encontrado, não haverá penalidade no tempo de execução. A única penalidade é o aumento no tamanho do programa - o que pode ou não ser um problema. Se o tamanho do programa for um problema, deixe-o definitivamente de fora.
No entanto, com o código extra, há um problema de suporte. Você ainda precisa oferecer suporte ao código e garantir que ele funcione e não cause problemas quando executado. A última coisa que você deseja é que seu aplicativo falhe exatamente como o usuário encontra o Ovo de Páscoa!
fonte
Eu diria que depende muito do tipo de software que você está desenvolvendo.
Os ovos de Páscoa da Imho são mais propensos a serem aceitos (ou até apreciados) nos jogos do que nos softwares comerciais. Até a Microsoft colocou alguns Ovos de Páscoa em seus produtos, mas praticamente o interrompeu completamente agora. A razão pela qual a Microsoft parou de colocar os Ovos de Páscoa está intimamente ligada aos possíveis motivos contra os Ovos de Páscoa: preocupações de segurança. Conforme descrito no artigo relevante da Wikipedia, Ovos de páscoa são geralmente (pelo menos para o usuário / cliente) partes não documentadas do código, o que pode levá-lo a acreditar que o produto estava mais aberto a ataques ou de outras maneiras não confiável. Além disso, nem todo código do Ovo de Páscoa é testado e auditado no mesmo grau que o código "de missão crítica". Isso pode levar a falhas não descobertas ou lacunas na base de código, que podem ser a origem de um ataque posterior ou exploração de malware.
No entanto, nem todos os ovos de Páscoa são "ruins" e exigem adulteração do código real do produto. Existem várias maneiras de apresentar Easter Eggs, especialmente em jogos nos quais o código é um pouco separado do conteúdo (mecanismo de jogo / gráficos / script vs. arquivos de script ou nível reais). Essas formas variam de texturas / objetos especiais e comentários em áudio do protagonista (por exemplo, como usado no DN3D: Doom , Terminator , Indiana Jones , Star Trek ) a níveis secretos ( "não há nível de vaca" ) a diálogos mostrando quando um determinado objeto / local na interface do usuário é clicado e muito mais. Obviamente, nem todos eles são adequados para todos os tipos de produtos.
Uma boa maneira de colocar um ovo de páscoa em seu produto é incluir-se de alguma forma (e não apenas na seção de créditos). A Blizzard fez isso muito bem com o StarCraft 2 . Um retrato de unidade é na verdade o rosto de um dos desenvolvedores. Algo não tão óbvio como esse geralmente é apropriado para muitos tipos diferentes de software, porque não depende do conhecimento da mídia ou de um certo tipo de humor. Por exemplo, talvez você possa se incluir como personagem no contexto do produto. Dependendo do produto, isso pode nem exigir uma chance para o código ou apenas uma muito simples.
Ovos de Páscoa são imho nice, mas não é obrigatório. A implementação de um ovo de Páscoa nunca deve prejudicar o produto real e sua apresentação deve ser apropriada para o público-alvo recuado do produto final. Um ovo de Páscoa em um aplicativo "sério" ou um produto direcionado a não adultos nunca deve incluir humor adulto ou conteúdo sexual, por mais engraçado ou inofensivo que pareça ser. Isso pode não apenas levar a consequências legais, mas também afetar o alcance de marketing do software (classificações USK / PEGI / ESRB , por exemplo).
fonte
Os ovos de Páscoa eram comuns mesmo nos principais lançamentos de software comercial nos anos 80 e 90. Na maioria das vezes eles eram fofos e relativamente poucas pessoas se incomodavam com eles. Eu acho que eles são menos comuns hoje por três razões:
Como todas as piadas práticas, elas são engraçadas até alguém chamar a atenção. Se seu ovo de páscoa tem um bug que causa perda de dados ou um problema de desempenho, você pode acabar explicando a vários advogados que na verdade não estava distribuindo "malware".
O humor é muito, muito, difícil de fazer o certo, e se você errar, ofenderá os clientes pagantes que deixarão de pagar pelo software e que escreverão muitas cartas desagradáveis à imprensa sobre a empresa imatura e terrível em que você trabalha para. O exemplo de um ovo de páscoa acionado pelo Ctrl-FU é um exemplo perfeito. Isso provavelmente é histericamente engraçado para seus amigos de 17 anos, mas é a 0ª regra do marketing nunca dizer a seus clientes "FU", mesmo que seja de brincadeira. Observe que os ovos de páscoa em grandes softwares comerciais NUNCA tiravam sarro do usuário, apenas dos concorrentes.
Nas palavras imortais de Peter Tork, dos Monkees, no filme Head : "Ninguém empresta dinheiro a um homem com senso de humor". Se você está comprando uma parte crítica da infraestrutura de software, o senso de humor do autor não é tranquilizador. Além disso, por que eles estavam gastando tempo escrevendo ovos de páscoa quando podiam estar consertando seus inúmeros bugs de segurança?
Anos atrás, Larry Osterman tinha um blog bastante famoso discutindo por que o grupo de SOs da Microsoft não permite mais ovos de páscoa .
fonte
Ovos de Páscoa são pequenos segredos deixados pelos construtores. Isso prejudica os usuários finais? Não.
Muitos softwares conhecidos e populares incluíram ovos de páscoa escondidos . Os ovos de Páscoa também foram usados para mostrar aos desenvolvedores sentimentos sobre um assunto delicado de uma maneira bastante elegante.
Quanto à otimização do código, desde que os ovos da páscoa não sejam muito intensos (hello flight simulator ), não deve prejudicar o desempenho de maneira significativa.
fonte
Embora eu goste do Easter Eggs no software, é importante lembrar que a linha entre um ovo deixado em um produto por diversão e um backdoor malicioso pode ser muito pequena do ponto de vista legal. Por exemplo, é necessário mostrar danos? É preciso provar a intenção de causar dano?
Considerando que o entendimento dos tribunais sobre computadores e software é bastante infeliz (como evidenciado por algumas patentes de software), debater esse caso comprará a vários advogados uma bela casa de férias em Aspen. Quando se considera os vários ambientes legais (como o DMCA) em que o software é publicado e distribuído em todo o mundo, ele também pode comprar casas de férias nos Alpes.
Como engenheiros contratados, garantimos que não prejudicamos nossa empresa. O litígio pode se tornar prejudicial, e o litígio é provável se entregarmos software sob contrato a outros clientes, especialmente governos ou grandes empresas. Assim, eu pessoalmente escolheria errar do lado seguro.
Lembre-se, os engenheiros existem para usar a lógica para fins bons, enquanto os advogados existem para distorcer a lógica pelo mal. É por isso que eles são pagos muito mais do que nós.
fonte
Muitos declararam que os Ovos de Páscoa são mais adequados para jogos, mas acho que eles são úteis em aplicativos de negócios. Muitas pessoas apenas criam uma série de receitas para usar um aplicativo de negócios que nunca olham para outras áreas do aplicativo. Quero dizer, existem seções inteiras de um aplicativo que eles nunca veem se não fizer parte do treinamento e isso pode ter sido útil para eles. Atualmente, trabalhei em um aplicativo com 75 relatórios e os usuários estavam solicitando informações e eles nem sequer executaram um único relatório. Eles precisam de algum incentivo para compensar sua falta de curiosidade (em sua defesa, alguns usuários têm medo de quebrar alguma coisa.).
fonte
Eu uso ovos de Páscoa para me ajudar na depuração e codificação. Portanto, os ovos de Páscoa que eu coloquei servem a um propósito e provavelmente não são considerados ovos de Páscoa.
fonte