Я немного шут, поэтому идея пасхального яйца все еще привлекает меня. Я уже добавил их в свой код, но у моей группы друзей есть шутка о том, чтобы использовать CTRL-FU для запуска яйца.
Теперь я немного параноидален в отношении производительности, поэтому мне нравится, когда это возможно, удалять излишки. Это сильно противоречит пасхальным яйцам, так как они на 100% лишний код.
Какие аргументы против пасхальных яиц? Кроме того, есть ли аргументы, чтобы даже поддержать пасхальные яйца?
Ответы:
Как всегда, ответ «это зависит».
Пасхальные яйца являются одним из способов поощрения освоения программы «Мир». В игре это довольно очевидно - вы взбираетесь на вершину самой высокой горы и находите ее (например), но для других приложений вы должны использовать скрытые опции в качестве пасхального яйца. Тем не менее, некоторые люди считают их легкомысленными, поэтому, если вы пишете очень серьезное бизнес-приложение, вы не хотите расстраивать своих пользователей, предоставляя им экран поющих хомяков (или чего-то еще), когда они находят волшебную комбинацию клавиш. ,
Наличие пасхального яйца в приложении не должно отрицательно сказываться на производительности. Так что, если вы не анализируете ввод с клавиатуры для нормальной работы вашего приложения с триггером Ctrl+, FUэто плохая идея. Пока код выполняется только в том случае, если он найден, так что штраф за время выполнения отсутствует. Единственным штрафом является увеличение размера программы - что может быть или не быть проблемой. Если размер программы является проблемой, то обязательно оставьте это.
Однако при наличии дополнительного кода возникает проблема поддержки. Вам по-прежнему необходимо поддерживать код и убедиться, что он работает и не вызывает проблем при выполнении. Последнее, что вам нужно, - это сбой вашего приложения, когда пользователь найдет пасхальное яйцо!
источник
Я бы сказал, что это сильно зависит от типа программного обеспечения, которое вы разрабатываете.
Имхо пасхальные яйца более вероятно будут приняты (или даже оценены) в играх, чем в деловом программном обеспечении. Даже Microsoft вложила в свои продукты несколько пасхальных яиц, но сейчас это почти полностью прекратилось. Причина, по которой Microsoft прекратила класть пасхальные яйца, тесно связана с возможными причинами против пасхальных яиц: проблемами безопасности. Как указано в соответствующей статье ВикипедииПасхальные яйца обычно (по крайней мере для пользователя / клиента) являются недокументированными частями кода, что может привести его к мысли, что продукт более открыт для атак или другими ненадежными способами. Кроме того, не весь код пасхального яйца проверяется и проверяется в той же степени, что и «критический» код. Это может привести к необнаруженным недостаткам или пробелам в базе кода, что может стать причиной более поздней атаки или использования вредоносного ПО.
Однако не все пасхальные яйца являются «плохими» и требуют подделки фактического кода продукта. Существует множество способов представления пасхальных яиц, особенно в играх, где код несколько отделен от контента (игровой / графический / скриптовый движок и реальные скрипты или файлы уровней). Эти способы варьируются от специальных текстур / объектов и звуковых комментариев главного героя (например, используемых в DN3D: Doom , Terminator , Indiana Jones , Star Trek ) до секретных уровней ( «нет уровня коровы» ) до диалогов, показывающих, когда определенный объект / местоположение в пользовательском интерфейсе нажимается, и многое другое. Конечно, не каждый из них подходит для каждого типа продукта.
Хороший способ добавить пасхальное яйцо в свой продукт - это как-то включить себя (и не только в раздел «Кредиты»). Blizzard сделал это очень хорошо с StarCraft 2 . Один блок портрета на самом деле является лицом одного из разработчиков. Нечто не столь очевидное, как это, обычно подходит для многих различных типов программного обеспечения, поскольку оно не зависит от знаний средств массовой информации или определенного вида юмора. Например, возможно, вы могли бы включить себя в качестве персонажа в контекст продукта. В зависимости от продукта, это может даже не потребовать шанса для кода или только очень простого.
Пасхальные яйца имхо хороши, но не обязательны. Реализация пасхального яйца никогда не должна отвлекать от реального продукта, и его представление должно соответствовать целевой аудитории конечного продукта. Пасхальное яйцо в «серьезном» приложении или продукт, предназначенный для не взрослых, никогда не должно включать юмор взрослого или сексуальное содержание, каким бы смешным или безобидным оно ни казалось. Это может не только привести к юридическим последствиям, но и повлиять на маркетинговый диапазон программного обеспечения ( например, рейтинги USK / PEGI / ESRB ).
источник
Пасхальные яйца были распространены даже в крупных коммерческих выпусках программного обеспечения в 80-х и 90-х годах. По большей части они были милыми, и относительно немногие люди были обеспокоены ими. Я думаю, что они менее распространены сегодня по трем причинам:
Как и все практические шутки, они забавные, пока кто-то не выкинет глаз. Если в вашем пасхальном яйце есть ошибка, которая приводит к потере данных или производительности, вам может потребоваться объяснить многим юристам, что вы на самом деле не распространяли «вредоносное ПО».
Юмор очень, очень, трудно сделать правильно, и если вы сделаете это неправильно, вы оскорбите платящих клиентов, которые затем перестанут платить за ваше программное обеспечение и которые напишут много неприятных писем в прессу о том, какой ужасной, незрелой компанией вы работаете для. Пример пасхального яйца, вызванного Ctrl-FU, является прекрасным примером. Это, вероятно, истерически забавно для ваших 17-летних друзей, но это 0-е правило маркетинга - никогда не говорить своим клиентам «FU», даже в шутку. Обратите внимание, что пасхальные яйца в большом коммерческом программном обеспечении НИКОГДА не высмеивают пользователя, только конкурентов.
По бессмертным словам Питера Торка «Обезьяны» в фильме « Голова» : «Никто не одалживает деньги человеку с чувством юмора». Если вы покупаете критически важный компонент программной инфраструктуры, чувство юмора в авторе не обнадеживает. Кроме того, почему они тратили время на написание пасхальных яиц, когда могли исправить свои многочисленные ошибки безопасности?
Ларри Остерман несколько лет назад вел довольно известную запись в блоге, в которой обсуждался вопрос, почему группа ОС в Microsoft больше не выпускает пасхальные яйца .
источник
Пасхальные яйца - маленькие секреты, оставленные строителями. Вредит ли это конечным пользователям? Нет .
Многие известные и популярные программы включают скрытые пасхальные яйца . Пасхальные яйца также использовались, чтобы изобразить чувства разработчиков относительно определенного раздражающего предмета довольно изящным способом.
Что касается оптимизации кода, то, пока пасхальные яйца не слишком интенсивны (привет симулятор полета ), это не должно существенно снижать производительность.
источник
Хотя мне нравятся пасхальные яйца в программном обеспечении, важно помнить, что грань между яйцом, оставленным в продукте для развлечения, и злонамеренным бэкдором может быть очень тонкой с юридической точки зрения. Например, нужно ли показывать вред? Нужно ли доказывать намерение причинить вред?
Принимая во внимание, что понимание судами компьютеров и программного обеспечения весьма печально (о чем свидетельствуют некоторые патенты на программное обеспечение), обсуждение такого случая приведет к тому, что несколько адвокатов получат хороший дом для отдыха в Аспене. Когда кто-то рассматривает различные правовые среды (например, DMCA), в которых программное обеспечение публикуется и распространяется по всему миру, он также может купить им дома для отдыха в Альпах.
Как нанятые инженеры, мы гарантируем, что наша компания не причинит вреда. Судебный процесс может стать вредным, и судебный процесс вероятен, если мы поставим программное обеспечение по контракту другим клиентам, особенно правительствам или крупным предприятиям. Таким образом, я лично выбрал бы ошибку на безопасной стороне.
Помните, что инженеры существуют, чтобы использовать логику для благих целей, в то время как адвокаты существуют, чтобы искажать логику для зла. Вот почему им платят намного больше, чем нам.
источник
Многие утверждают, что пасхальные яйца больше подходят для игр, но я думаю, что они используются в бизнес-приложениях. Слишком много людей просто создают серию рецептов для использования бизнес-приложения, чтобы они никогда не смотрели на другие области приложения. Я имею в виду, что есть целые разделы приложения, на которые они никогда не смотрят, если бы они не были частью их обучения, и это могло бы им пригодиться. В настоящее время я работал над приложением с 75 отчетами, и пользователи запрашивали информацию, и они даже не запустили ни одного отчета. Им нужен какой-то стимул, чтобы восполнить недостаток любопытства (в свою очередь, некоторые пользователи боятся что-то сломать).
источник
Я использую пасхальные яйца, чтобы помочь мне для отладки и кодирования. Поэтому пасхальные яйца, которые я кладу, служат цели и, вероятно, не считаются пасхальными яйцами.
источник