Ich bin ein bisschen ein Spaßvogel, also gefällt mir die Idee eines Ostereies immer noch. Ich habe sie schon einmal in meinen Code eingefügt, aber meine Gruppe von Freunden hat einen Scherz damit, STRG-FU zu verwenden, um das Ei auszulösen.
Jetzt bin ich auch ein bisschen paranoid in Bezug auf die Leistung, so dass ich gerne Überschüsse entferne, wann immer dies möglich ist. Dies steht in starkem Widerspruch zu Ostereiern, da sie zu 100% überflüssigen Code darstellen.
Welche Argumente gibt es gegen Ostereier? Gibt es auch Argumente, um Ostereier überhaupt zu unterstützen?
Antworten:
Wie immer lautet die Antwort "es kommt darauf an".
Ostereier sind eine Möglichkeit, die Erforschung des Programms "Welt" zu fördern. In einem Spiel ist es ziemlich offensichtlich - Sie klettern auf den höchsten Berg und finden ihn (zum Beispiel), aber für andere Anwendungen müssen Sie versteckte Optionen als Osterei verwenden. Einige Leute halten sie jedoch für leichtfertig. Wenn Sie also eine äußerst seriöse Geschäftsanwendung schreiben, möchten Sie Ihre Benutzer nicht verärgern, indem Sie ihnen einen Bildschirm mit singenden Hamstern (oder was auch immer) präsentieren, wenn sie die magische Tastenkombination finden .
Ein Osterei in einer Anwendung sollte die Leistung nicht beeinträchtigen. Wenn Sie also keine Tastatureingaben für den normalen Betrieb Ihrer Anwendung analysieren, ist Ctrl+ FUals Auslöser keine gute Idee. Solange der Code nur ausgeführt wird, wenn er gefunden wird, gibt es keine Laufzeitstrafe. Die einzige Strafe ist die Erhöhung der Programmgröße - was ein Problem sein kann oder auch nicht. Wenn die Programmgröße ein Problem ist, lassen Sie es auf jeden Fall aus.
Mit dem zusätzlichen Code gibt es jedoch ein Support-Problem. Sie müssen den Code weiterhin unterstützen und sicherstellen, dass er funktioniert und bei der Ausführung keine Probleme verursacht. Das Letzte, was Sie möchten, ist, dass Ihre Anwendung abstürzt, sobald der Benutzer das Osterei findet!
quelle
Ich würde sagen, das hängt stark von der Art der Software ab, die Sie entwickeln.
Imho-Ostereier werden in Spielen eher akzeptiert (oder sogar geschätzt) als in Unternehmenssoftware. Sogar Microsoft hatte ein paar Ostereier in ihre Produkte gesteckt, aber das hat jetzt so ziemlich ganz aufgehört. Der Grund, warum Microsoft das Einfügen von Ostereiern eingestellt hat, hängt eng mit den möglichen Gründen gegen Ostereier zusammen: Sicherheitsbedenken. Wie im entsprechenden Wikipedia-Artikel beschrieben, Ostereier sind normalerweise (zumindest für den Benutzer / Kunden) undokumentierte Teile des Codes, was ihn zu der Annahme veranlassen kann, dass das Produkt anfälliger für Angriffe oder auf andere Weise nicht vertrauenswürdig war. Darüber hinaus wird nicht der gesamte Osterei-Code in gleichem Maße getestet und auditiert, wie es der „missionskritische“ Code ist. Dies kann zu unentdeckten Fehlern oder Lücken in der Codebasis führen, die der Grund für einen späteren Angriff oder eine spätere Malware-Exploit sein können.
Allerdings sind nicht alle Ostereier "schlecht" und müssen mit dem tatsächlichen Produktcode manipuliert werden. Es gibt viele Möglichkeiten, Ostereier zu präsentieren, insbesondere in Spielen, bei denen der Code etwas vom Inhalt getrennt ist (Spiel / Grafik / Skript-Engine im Vergleich zu tatsächlichen Skript- oder Level-Dateien). Diese Möglichkeiten reichen von speziellen Texturen / Objekten und Audiokommentaren des Protagonisten (z. B. wie in DN3D verwendet: Doom , Terminator , Indiana Jones , Star Trek ) über geheime Ebenen ( "es gibt keine Kuhebene" ) bis hin zu Dialogen, die bei einem bestimmten Objekt angezeigt werden Auf / location in der Benutzeroberfläche wird geklickt und vieles mehr. Natürlich ist nicht jede für jeden Produkttyp geeignet.
Eine gute Möglichkeit, ein Osterei in Ihr Produkt einzufügen, besteht darin, sich irgendwie einzubeziehen (und nicht nur im Abschnitt "Credits"). Blizzard hat dies mit StarCraft 2 sehr gut gemacht . Ein Unit-Portrait ist eigentlich das Gesicht eines Entwicklers. So etwas nicht so offensichtliches ist normalerweise für viele verschiedene Arten von Software geeignet, da es nicht auf Medienkenntnissen oder einer bestimmten Art von Humor beruht. Zum Beispiel könnten Sie sich selbst als Charakter in den Kontext des Produkts einbeziehen. Je nach Produkt ist hierfür möglicherweise keine oder nur eine sehr einfache Chance auf den Code erforderlich.
Ostereier sind imho nett, aber nicht erforderlich. Die Implementierung eines Ostereies sollte niemals das eigentliche Produkt beeinträchtigen, und seine Präsentation sollte für die eingerückte Zielgruppe des Endprodukts geeignet sein. Ein Osterei in einer "ernsthaften" Anwendung oder ein Produkt, das sich an Nicht-Erwachsene richtet, sollte niemals erwachsenen Humor oder sexuellen Inhalt enthalten, egal wie lustig oder harmlos es erscheint. Dies könnte nicht nur zu rechtlichen Konsequenzen führen, sondern auch die Vermarktungsbreite der Software beeinflussen ( z. B. USK / PEGI / ESRB- Ratings).
quelle
Ostereier waren bereits in den 80er und 90er Jahren in großen kommerziellen Softwareversionen verbreitet. Zum größten Teil waren sie süß und relativ wenige Leute wurden von ihnen gestört. Ich denke, sie sind heute aus drei Gründen weniger verbreitet:
Wie alle praktischen Witze sind sie lustig, bis jemand ein Auge auslässt. Wenn Ihr Osterei einen Fehler hat, der zu Datenverlust oder Leistungsproblemen führt, müssen Sie möglicherweise einer Reihe von Anwälten erklären, dass Sie tatsächlich keine "Malware" verteilt haben.
Humor ist sehr, sehr schwer richtig zu machen, und wenn Sie ihn falsch machen, beleidigen Sie zahlende Kunden, die dann nicht mehr für Ihre Software zahlen und der Presse viele unangenehme Briefe darüber schreiben, was für eine schreckliche, unreife Firma Sie arbeiten zum. Das Beispiel eines durch Ctrl-FU ausgelösten Ostereies ist ein perfektes Beispiel. Dies ist wahrscheinlich hysterisch lustig für Ihre 17-jährigen Freunde, aber es ist die 0-te Regel des Marketings, Ihren Kunden niemals "FU" zu sagen, auch nicht im Scherz. Beachten Sie, dass sich die Ostereier in der großen kommerziellen Software NIE über den Benutzer lustig gemacht haben, nur über die Konkurrenten.
In den unsterblichen Worten von Peter Tork von den Monkees im Film Head : "Niemand leiht einem Mann mit Sinn für Humor Geld." Wenn Sie ein kritisches Stück Software-Infrastruktur kaufen, ist ein Sinn für Humor des Autors nicht beruhigend. Außerdem, warum verbrachten sie Zeit damit, Ostereier zu schreiben, wenn sie ihre zahlreichen Sicherheitslücken hätten reparieren können?
Larry Osterman hatte vor Jahren einen ziemlich berühmten Blogbeitrag darüber verfasst, warum die OS-Gruppe bei Microsoft keine Ostereier mehr zulässt .
quelle
Ostereier sind kleine Geheimnisse, die die Erbauer hinterlassen haben. Tut es den Endbenutzern weh? Nein.
Viele bekannte und beliebte Softwareprodukte enthalten versteckte Ostereier . Ostereier wurden auch verwendet, um die Gefühle eines Entwicklers in Bezug auf ein bestimmtes heikles Thema auf elegante Weise darzustellen.
Was die Codeoptimierung betrifft , sollte sie die Leistung nicht in bedeutender Weise beeinträchtigen, solange die Ostereier nicht zu intensiv sind (Hallo Flugsimulator ).
quelle
Während ich Ostereier in Software mag, ist es wichtig zu bedenken, dass die Grenze zwischen einem Ei, das aus Spaß in einem Produkt verbleibt, und einer böswilligen Hintertür aus rechtlicher Sicht sehr dünn sein kann. Zum Beispiel muss es Schaden zeigen? Muss man die Absicht beweisen, Schaden zuzufügen?
In Anbetracht der Tatsache, dass das Verständnis der Gerichte für Computer und Software ziemlich miserabel ist (wie einige Softwarepatente belegen), wird die Debatte über einen solchen Fall mehreren Anwälten ein schönes Ferienhaus in Aspen verschaffen. Berücksichtigt man die verschiedenen rechtlichen Rahmenbedingungen (wie das DMCA), in denen Software veröffentlicht und auf der ganzen Welt vertrieben wird, kann es sein, dass sie auch Ferienhäuser in den Alpen kauft.
Als angestellte Ingenieure bürgen wir dafür, unserem Unternehmen keinen Schaden zuzufügen. Rechtsstreitigkeiten können Schaden anrichten, und Rechtsstreitigkeiten sind wahrscheinlich, wenn wir Software auf Vertragsbasis an andere Kunden liefern, insbesondere an Regierungen oder große Unternehmen. Daher würde ich mich persönlich dafür entscheiden, auf der sicheren Seite zu sein.
Denken Sie daran, es gibt Ingenieure, die Logik zu guten Zwecken einsetzen, während es Anwälte gibt, die die Logik für das Böse verdrehen. Deshalb werden sie so viel mehr bezahlt als wir.
quelle
Viele haben angegeben, dass Ostereier besser für Spiele geeignet sind, aber ich denke, sie können in Geschäftsanwendungen eingesetzt werden. Zu viele Benutzer erstellen lediglich eine Reihe von Rezepten für die Verwendung einer Geschäftsanwendung, ohne sich mit anderen Bereichen der Anwendung zu befassen. Ich meine, es gibt ganze Abschnitte einer Anwendung, die sie nie sehen, wenn sie nicht Teil ihres Trainings waren und die für sie von Nutzen sein könnten. Derzeit habe ich an einer Anwendung mit 75 Berichten gearbeitet und Benutzer haben nach Informationen gefragt und sie haben nicht einmal einen einzigen Bericht erstellt. Sie brauchen einen Anreiz, um ihre mangelnde Neugier auszugleichen (Einige Benutzer haben zu ihrer Verteidigung Angst, etwas zu zerbrechen.).
quelle
Ich benutze Ostereier, um beim Debuggen und Codieren zu helfen. Deshalb haben die Ostereier, die ich hineingelegt habe, einen Zweck und werden wahrscheinlich nicht als Ostereier angesehen.
quelle