Soy un poco bufón, así que la idea de un huevo de pascua todavía me atrae. Los he agregado en mi código antes, pero mi grupo de amigos tiene una broma de usar CTRL-FU para activar el huevo.
Ahora también estoy un poco paranoico sobre el rendimiento, así que me gusta eliminar el exceso siempre que sea posible. Esto contradice fuertemente con los huevos de pascua, ya que son códigos 100% superfluos.
¿Qué argumentos hay en contra de los huevos de pascua? Además, ¿hay argumentos para apoyar incluso los huevos de pascua?
Respuestas:
Como siempre, la respuesta es "depende".
Los huevos de Pascua son una forma de alentar la exploración del programa "mundo". En un juego es bastante obvio: subes a la cima de la montaña más alta y la encuentras (por ejemplo), pero para otras aplicaciones tienes que usar opciones ocultas como tu huevo de Pascua. Sin embargo, algunas personas los consideran frívolos, por lo que si está escribiendo una aplicación comercial extremadamente seria, no querrá molestar a sus usuarios presentándoles una pantalla de hámsters cantando (o lo que sea) cuando encuentren la combinación mágica de teclas .
Tener un huevo de Pascua en una aplicación no debería tener un impacto negativo en el rendimiento. Por lo tanto, a menos que esté analizando la entrada del teclado para el funcionamiento normal de su aplicación, tener Ctrl+ FUcomo desencadenador es una mala idea. Mientras el código solo se ejecute si se encuentra, no hay penalización de tiempo de ejecución. La única sanción es el aumento del tamaño del programa, que puede o no ser un problema. Si el tamaño del programa es un problema, definitivamente no lo incluyas.
Sin embargo, tener el código adicional es un problema de soporte. Aún debe admitir el código y asegurarse de que funciona y no causa problemas cuando se ejecuta. ¡Lo último que desea es que su aplicación se bloquee justo cuando el usuario encuentra el huevo de Pascua!
fuente
Yo diría que eso depende mucho del tipo de software que estés desarrollando.
Los huevos de Pascua son más propensos a ser aceptados (o incluso apreciados) en los juegos que en el software empresarial. Incluso Microsoft había puesto algunos huevos de Pascua en sus productos, pero ahora lo detuvo por completo. La razón por la cual Microsoft dejó de poner Easter Eggs está estrechamente relacionada con las posibles razones contra Easter Eggs: preocupaciones de seguridad. Como se describe en el artículo relevante de Wikipedia, Los Huevos de Pascua generalmente son (al menos para el usuario / cliente) partes indocumentadas del código, lo que puede llevarlo a creer que el producto estaba más abierto a ataques o de otras maneras no es confiable. Además, no todo el código del huevo de Pascua se prueba y audita en el mismo grado que el código de "misión crítica". Eso puede conducir a fallas no descubiertas o agujeros de bucle en la base del código que pueden ser el origen de un ataque posterior o explotación de malware.
Sin embargo, no todos los Huevos de Pascua son "malos" y requieren alterar el código real del producto. Hay muchas maneras de presentar los Huevos de Pascua, especialmente en juegos en los que el código está algo separado del contenido (juego / gráficos / motor de secuencias de comandos versus secuencias de comandos reales o archivos de nivel). Estas formas van desde texturas / objetos especiales y comentarios de audio del protagonista (por ejemplo, como se usa en DN3D: Doom , Terminator , Indiana Jones , Star Trek ) a niveles secretos ( "no hay nivel de vaca" ) a diálogos que muestran cuándo un determinado objeto / ubicación en la interfaz de usuario se hace clic, y mucho más. Por supuesto, no cada uno de estos es adecuado para cada tipo de producto.
Una buena manera de poner un huevo de Pascua en su producto es incluirse de alguna manera (y no solo en la sección de créditos). Blizzard hizo esto muy bien con StarCraft 2 . El retrato de una unidad es en realidad la cara de uno de los desarrolladores. Algo no tan obvio como eso suele ser apropiado para muchos tipos diferentes de software porque no depende del conocimiento de los medios o de un cierto tipo de humor. Por ejemplo, quizás podría incluirse como un personaje en el contexto del producto. Dependiendo del producto, esto puede no requerir una oportunidad para el código o solo una muy simple.
Los huevos de Pascua son buenos, pero no son obligatorios. La implementación de un huevo de Pascua nunca debe restar valor al producto real y su presentación debe ser apropiada para el público objetivo indentado del producto final. Un huevo de Pascua en una aplicación "seria" o un producto dirigido a personas no adultas nunca debe incluir humor para adultos o contenido sexual, sin importar cuán divertido o inofensivo parezca ser. Esto no solo podría tener consecuencias legales, sino que también afectaría el rango de comercialización del software ( calificaciones de USK / PEGI / ESRB , por ejemplo).
fuente
Los huevos de Pascua eran comunes incluso en las principales versiones comerciales de software en los años 80 y 90. En su mayor parte eran lindos y relativamente pocas personas se molestaban por ellos. Creo que hoy son menos comunes por tres razones:
Como todos los chistes prácticos, son divertidos hasta que alguien echa un ojo. Si su huevo de Pascua tiene un error que causa la pérdida de datos o un problema de rendimiento, entonces puede terminar teniendo que explicar a un grupo de abogados que en realidad no estaba distribuyendo "malware".
El humor es muy, muy difícil de hacer bien, y si lo haces mal, ofenderás a los clientes que luego dejarán de pagar por tu software y que escribirán muchas cartas desagradables a la prensa sobre la empresa inmadura y terrible en la que trabajas. para. El ejemplo de un huevo de pascua activado por Ctrl-FU es un ejemplo perfecto. Esto es probablemente histéricamente divertido para tus amigos de 17 años, pero es la regla número 0 del marketing que nunca les digas a tus clientes "FU", incluso en broma. Tenga en cuenta que los huevos de pascua en el gran software comercial NUNCA se burlaron del usuario, solo de los competidores.
En las palabras inmortales de Peter Tork de los Monkees en la película Head : "Nadie presta dinero a un hombre con sentido del humor". Si está comprando una pieza crítica de infraestructura de software, el sentido del humor del autor no es tranquilizador. Además de eso, ¿por qué pasaban el tiempo escribiendo huevos de pascua cuando podrían haber reparado sus numerosos errores de seguridad?
Larry Osterman tuvo una publicación en un blog bastante famosa hace años, discutiendo por qué el grupo de sistemas operativos en Microsoft ya no permite los huevos de pascua .
fuente
Los huevos de Pascua son pequeños secretos que dejaron los constructores. ¿Daña a los usuarios finales? No.
Muchas piezas de software conocidas y populares han incluido huevos de pascua ocultos . Los huevos de Pascua también se han utilizado para mostrar los sentimientos de los desarrolladores sobre un tema particular en particular de una manera bastante elegante.
En cuanto a la optimización del código, siempre que los huevos de pascua no sean demasiado intensivos (hola simulador de vuelo ) no debería afectar el rendimiento de manera significativa.
fuente
Si bien me gustan los Huevos de Pascua en el software, es importante recordar que la línea entre un huevo que queda en un producto por diversión y una puerta trasera maliciosa puede ser muy delgada desde un punto de vista legal. Por ejemplo, ¿es necesario mostrar daño? ¿Es necesario demostrar la intención de hacer daño?
Teniendo en cuenta que la comprensión de los tribunales de las computadoras y el software es bastante miserable (como lo demuestran algunas patentes de software), debatir tal caso comprará a varios abogados una bonita casa de vacaciones en Aspen. Cuando uno considera los diversos entornos legales (como la DMCA) en los que el software se publica y distribuye en todo el mundo, también puede comprarles casas de vacaciones en los Alpes.
Como ingenieros contratados, garantizamos que nuestra empresa no sufrirá ningún daño. El litigio podría convertirse en un daño, y es probable que lo hagamos si entregamos software por contrato a otros clientes, especialmente gobiernos o grandes empresas. Por lo tanto, personalmente elegiría errar en el lado seguro.
Recuerde, los ingenieros existen para usar la lógica con fines buenos, mientras que los abogados existen para torcer la lógica del mal. Por eso les pagan mucho más que a nosotros.
fuente
Muchos han declarado que los Huevos de Pascua son más adecuados para los juegos, pero creo que tienen un uso en aplicaciones comerciales. Demasiadas personas simplemente crean una serie de recetas para usar una aplicación comercial que nunca miran en otras áreas de la aplicación. Quiero decir que hay secciones enteras de una aplicación que nunca miran si no fuera parte de su entrenamiento y podría haberles sido de alguna utilidad. Actualmente trabajé en una aplicación con 75 informes y los usuarios pedían información y ni siquiera corrieron un solo informe. Necesitan algún incentivo para compensar su falta de curiosidad (en su defensa, algunos usuarios tienen miedo de romper algo).
fuente
Utilizo los huevos de Pascua para ayudarme a depurar y codificar. Por lo tanto, los huevos de Pascua que puse sirven para un propósito y probablemente no se consideran huevos de Pascua.
fuente