Argumen apa yang ada terhadap telur paskah? Apakah ada argumen untuk mendukung telur paskah? [Tutup]

28

Saya sedikit badut sehingga ide tentang telur paskah masih menarik bagi saya. Saya telah menambahkan mereka dalam kode saya sebelumnya tetapi kelompok teman saya memiliki lelucon menggunakan CTRL-FU untuk memicu telur.

Sekarang saya juga sedikit paranoid tentang kinerja jadi saya suka menghapus kelebihan jika memungkinkan. Ini sangat bertentangan dengan telur paskah karena mereka 100% kode berlebihan.

Argumen apa yang ada terhadap telur paskah? Juga, adakah argumen untuk mendukung telur paskah?


sumber
5
IMHO pertanyaan ini tidak pantas mendapatkan suara turun sama sekali, tentu saja bukan yang termotivasi. Saya sendiri sangat tertarik dengan subjeknya. Terutama mengetahui bagaimana hal itu dirasakan oleh pengguna akhir, bos sebenarnya.
Ini utama untuk @Mark Trapp klasik "kami di sini untuk menyelesaikan masalah nyata yang mungkin Anda hadapi."
Gratzy
1
@ ChrisF wow jika programer pertanyaan saya.stackexchange.com/questions/38810/… mendapat jawaban "pertanyaan sebenarnya" dan Anda memberi tahu saya ini tidak maka saya benar-benar bingung tentang tujuan dari situs ini.
Gratzy
1
Pertanyaan bagus, IMHO.
Uri
1
@Mark C Aye, saya hanya paranoid over-the-top tentang pemborosan sumber daya.

Jawaban:

11

Seperti biasa jawabannya adalah "itu tergantung".

Telur paskah adalah salah satu cara mendorong eksplorasi program "dunia". Dalam permainan itu agak jelas - Anda naik ke puncak gunung tertinggi dan Anda menemukannya (misalnya), tetapi untuk aplikasi lain Anda harus menggunakan opsi tersembunyi sebagai Telur Paskah Anda. Namun, mereka dianggap remeh oleh beberapa orang sehingga jika Anda menulis aplikasi bisnis yang sangat serius, Anda tidak ingin mengecewakan pengguna Anda dengan menghadirkan layar hamster bernyanyi (atau apa pun) ketika mereka menemukan kombinasi kunci ajaib .

Memiliki Telur Paskah dalam aplikasi seharusnya tidak berdampak buruk pada kinerja. Jadi, kecuali Anda mem-parsing input keyboard untuk operasi normal aplikasi Anda memiliki Ctrl+ FUsebagai pemicunya adalah ide yang buruk. Selama kode hanya dieksekusi jika ditemukan sehingga tidak ada penalti runtime. Satu-satunya hukuman adalah peningkatan ukuran program - yang mungkin atau mungkin tidak menjadi masalah. Jika ukuran program adalah masalah maka pasti tinggalkan saja.

Namun, memiliki kode tambahan ada masalah dukungan. Anda masih perlu mendukung kode dan memastikan kode itu berfungsi dan tidak menyebabkan masalah saat dijalankan. Hal terakhir yang Anda inginkan adalah aplikasi Anda mogok tepat saat pengguna menemukan Telur Paskah!

ChrisF
sumber
"Memiliki Telur Paskah dalam aplikasi seharusnya tidak berdampak buruk pada kinerja. Ini hanya akan dieksekusi jika ditemukan sehingga tidak ada penalti runtime." Sangat? Jika dipicu oleh CTRL-FU sebagai status OP maka bukankah Anda menjebak setiap stroke key?
Gratzy
2
@ Straty - Sebenarnya itu poin yang bagus - kecuali jika Anda menekan penekanan tombol untuk operasi normal maka itu adalah contoh dari telur Paskah yang buruk.
ChrisF
7

Saya akan mengatakan itu sangat tergantung pada jenis perangkat lunak yang Anda kembangkan.

Imho easter eggs lebih mungkin diterima (atau bahkan dihargai) di dalam game daripada di perangkat lunak bisnis. Bahkan Microsoft telah memasukkan beberapa Telur Paskah ke dalam produk mereka, tetapi cukup banyak yang menghentikannya sekarang. Alasan mengapa Microsoft berhenti memasukkan Telur Paskah dalam berhubungan erat dengan kemungkinan alasan terhadap Telur Paskah: masalah keamanan. Sebagaimana diuraikan dalam artikel Wikipedia yang relevan, Easter Eggs biasanya (setidaknya untuk pengguna / klien) bagian tidak berdokumen dari kode yang dapat membuatnya percaya bahwa produk itu lebih terbuka untuk serangan atau dengan cara lain tidak dapat dipercaya. Lebih lanjut, tidak semua kode Telur Paskah diuji dan diaudit dengan tingkat kode "mission critical" yang sama. Hal itu dapat menyebabkan kelemahan atau lubang loop yang belum ditemukan di basis kode yang mungkin merupakan asal dari serangan atau eksploit malware.

Namun, tidak semua Telur Paskah "buruk" dan perlu diubah dengan kode produk yang sebenarnya. Ada banyak cara untuk menyajikan Telur Paskah, terutama dalam permainan di mana kode agak terpisah dari konten (game / grafik / mesin skrip vs skrip aktual atau file level). Cara-cara ini berkisar dari tekstur / objek khusus dan komentar audio dari protagonis (misalnya seperti yang digunakan dalam DN3D: Doom , Terminator , Indiana Jones , Star Trek ) hingga level rahasia ( "tidak ada level sapi" ) hingga dialog yang menunjukkan kapan objek tertentu / lokasi di antarmuka pengguna diklik, dan banyak lagi. Tentu saja tidak masing-masing cocok untuk setiap jenis produk.

Cara yang baik untuk memasukkan Telur Paskah ke dalam produk Anda adalah dengan memasukkan diri Anda entah bagaimana (dan tidak hanya di bagian kredit). Blizzard melakukan ini dengan sangat baik dengan StarCraft 2 . Satu unit potret sebenarnya adalah wajah salah satu pengembang. Sesuatu yang tidak begitu jelas seperti itu biasanya cocok untuk berbagai jenis perangkat lunak karena tidak bergantung pada pengetahuan media atau jenis humor tertentu. Misalnya, mungkin Anda dapat memasukkan diri Anda sebagai karakter dalam konteks produk. Bergantung pada produk, ini mungkin bahkan tidak memerlukan kesempatan untuk kode atau hanya yang sangat sederhana.

Telur Paskah bagus sekali tetapi tidak diharuskan. Penerapan Telur Paskah tidak boleh mengurangi produk yang sebenarnya dan presentasinya harus sesuai dengan target audiens dari produk akhir. Telur Paskah dalam aplikasi "serius" atau produk yang ditargetkan untuk orang non-dewasa tidak boleh termasuk humor orang dewasa atau konten seksual, tidak peduli seberapa lucu atau tidak berbahaya kelihatannya. Ini tidak hanya mengarah pada konsekuensi hukum, tetapi juga mempengaruhi jangkauan pemasaran perangkat lunak (peringkat USK / PEGI / ESRB , misalnya).

Baelnorn
sumber
1
Anda benar-benar perlu melihat mengapa Microsoft berhenti memasukkan telur paskah dalam kode mereka. Telur paskah adalah jalur kode yang tidak sepenuhnya diuji (jika Anda memiliki kesempatan untuk melakukan QA penuh pada telur paskah, mengapa Anda tidak meluangkan waktu untuk memasukkan fitur yang bermanfaat dan berbeda?), Yang berarti ini merupakan sumber potensial kerentanan keamanan.
Anon.
@Anon: Dari artikel Wikipedia yang saya sebutkan dalam jawaban saya: "Microsoft, yang di masa lalu menciptakan beberapa telur Paskah terbesar dan paling rumit seperti yang ada di Microsoft Office, tidak lagi mengizinkan telur Paskah dalam perangkat lunak mereka sebagai bagian dari inisiatif Komputasi Terpercaya mereka. " Sumber pernyataan itu adalah artikel blog MSDN yang ditautkan dalam jawaban Charles. Saya tidak melihat kontradiksi dengan pernyataan saya. Bisakah Anda jelaskan di mana kesalahan saya? :)
Baelnorn
Bagian pertama dari jawaban berbunyi seperti "hei, Microsoft pernah melakukan ini, bukankah itu luar biasa", tetapi kemudian alasan sebenarnya mengapa mereka tidak melakukannya lagi dikubur di tengah jawaban. Seorang pembaca biasa tidak akan melihatnya, dan itu terputus dari konteks yang relevan. Idealnya, saya ingin perombakan paragraf untuk menempatkan paragraf kontra sedikit lebih menonjol.
Anon.
@ Anon: Terima kasih atas kepalanya. Saya mengedit jawaban saya dan memesan ulang paragraf, merinci alasan terhadap EE di bagian pertama.
Baelnorn
5

Telur paskah adalah umum bahkan dalam rilis perangkat lunak komersial utama di tahun 80-an dan 90-an. Sebagian besar mereka lucu dan relatif sedikit orang yang terganggu oleh mereka. Saya pikir mereka kurang umum hari ini karena tiga alasan:

  1. Seperti semua lelucon praktis, itu lucu sampai ada orang yang marah. Jika telur paskah Anda memiliki bug yang menyebabkan kehilangan data atau masalah kinerja, Anda mungkin harus menjelaskan kepada sekelompok pengacara bahwa Anda sebenarnya tidak mendistribusikan "malware".

  2. Humor sangat, sangat, sulit untuk dilakukan dengan benar, dan jika Anda melakukannya dengan salah Anda akan menyinggung pelanggan yang membayar yang kemudian akan berhenti membayar untuk perangkat lunak Anda dan yang akan menulis banyak surat jahat kepada pers tentang betapa buruknya, belum matangnya perusahaan tempat Anda bekerja untuk. Contoh telur paskah yang dipicu oleh Ctrl-FU adalah contoh sempurna. Ini mungkin lucu secara histeris untuk teman-teman Anda yang berusia 17 tahun, tetapi ini adalah aturan pemasaran ke-0 untuk tidak pernah memberi tahu pelanggan Anda "FU", bahkan bercanda. Perhatikan bahwa telur paskah dalam perangkat lunak komersial besar TIDAK PERNAH mengolok-olok pengguna, hanya pesaing.

  3. Dalam kata-kata abadi Peter Tork of the Monkees dalam film Head : "Tidak ada yang meminjamkan uang kepada seorang pria dengan selera humor." Jika Anda membeli bagian penting dari infrastruktur perangkat lunak, rasa humor di penulis tidak meyakinkan. Selain itu, mengapa mereka menghabiskan waktu menulis telur paskah ketika mereka bisa memperbaiki banyak bug keamanan mereka?

Larry Osterman memiliki posting blog yang cukup terkenal bertahun-tahun lalu yang membahas mengapa grup OS di Microsoft tidak lagi mengizinkan telur paskah .

Charles E. Grant
sumber
1
Bahkan hari ini Google memiliki telur paskah - artinya mereka sedang memeriksa input untuk memicu Telur Paskah pada setiap pencarian. Mungkin tidak banyak proses, tetapi mengingat ratusan juta pencarian yang mereka proses setiap hari ... Saya tidak tahu.
Charles Salvia
Saya harus mengakui bahwa saya membaca CTRL-FU sebagai semacam KUNG-FU.
Christopher Creutzig
@ Chrisopher itu interpretasi yang sangat masuk akal. Humor sering menjadi sasaran banyak interpretasi, yang merupakan bagian dari mengapa sulit untuk dimasukkan ke dalam perangkat lunak Anda tanpa menjalankan risiko menyinggung seseorang.
Charles E. Grant
@CharlesSalvia Bergantung pada bagaimana mereka memproses pencarian untuk menentukan hasil "Apakah maksud Anda", ini mungkin tidak menambahkan overhead sama sekali di atas apa yang sudah ada untuk perilaku itu.
JAB
4

Telur paskah adalah rahasia kecil yang ditinggalkan oleh pembangun. Apakah itu merugikan pengguna akhir? Tidak.

Banyak perangkat lunak terkenal dan populer telah memasukkan telur paskah tersembunyi . Telur paskah juga telah digunakan untuk menampilkan perasaan pengembang pada subjek sensitif tertentu dengan cara yang agak elegan.

Adapun optimasi kode, selama telur paskah tidak terlalu intensif (halo simulator penerbangan ) itu tidak boleh melukai kinerja dengan cara yang bermakna.

Josh K.
sumber
Saya tidak setuju. Telur paskah menambah risiko peristiwa yang terjadi yang dapat membahayakan pengguna. Paling-paling, "fitur-fitur tambahan" ini diuji dan cukup menggunakan waktu pengembang dan QA. Paling buruk, tidak ada orang lain selain pelaksana yang tahu tentang itu. Implementor kemudian meninggalkan perusahaan, dan setelah itu pembaruan ke perangkat lunak secara tidak sengaja menyebabkan telur paskah berubah menjadi jahat dengan tindakan seperti memotong acara keyboard, menghabiskan semua RAM yang tersedia, atau dalam kasus yang ekstrim ... menghapus konten pengguna perangkat keras. Over-the-top? Mungkin. Namun saya telah melihat masing-masing terjadi sebagai bug normal.
mummey
@mummey: Saya pikir itu adalah kejadian yang sangat tidak mungkin.
Josh K
Tidakkah Anda akan melakukan yang terbaik untuk mengurangi risiko itu?
StuperUser
@Stuper: Pernahkah Anda mendengar telur paskah menabrak program?
Josh K
Tidak mendengar apa-apa, tetapi crash saat telur paskah tidak cukup kritis untuk menjamin publikasi masalah di sebagian besar. Pengguna sering tidak mengirim informasi kembali untuk sebagian besar crash program MS selama operasi normal .
StuperUser
2

Meskipun saya suka Telur Paskah dalam perangkat lunak, penting untuk diingat bahwa garis antara telur yang tertinggal dalam produk untuk bersenang-senang dan backdoor berbahaya bisa sangat tipis dari sudut pandang hukum. Misalnya, apakah perlu untuk menunjukkan bahaya? Apakah seseorang perlu membuktikan niatnya untuk melukai?

Menimbang bahwa pemahaman pengadilan tentang komputer dan perangkat lunak cukup menyedihkan (sebagaimana dibuktikan oleh beberapa paten perangkat lunak), memperdebatkan kasus semacam itu akan membeli beberapa pengacara rumah liburan yang menyenangkan di Aspen. Ketika seseorang mempertimbangkan berbagai lingkungan hukum (seperti DMCA) di mana perangkat lunak diterbitkan dan didistribusikan di seluruh dunia, ia juga dapat membeli rumah liburan di Pegunungan Alpen.

Sebagai insinyur yang direkrut, kami menjamin tidak ada salahnya bagi perusahaan kami. Litigasi dapat menjadi bahaya, dan litigasi kemungkinan besar jika kami mengirimkan perangkat lunak yang dikontrak kepada klien lain, terutama pemerintah atau perusahaan besar. Jadi, saya pribadi akan memilih untuk berbuat salah di sisi yang aman.

Ingat, insinyur ada untuk menggunakan logika untuk tujuan yang baik, sementara pengacara ada untuk memutar logika untuk kejahatan. Itu sebabnya mereka dibayar jauh lebih banyak daripada kita.

Uri
sumber
0

Banyak yang mengatakan Telur Paskah lebih cocok untuk permainan, tetapi saya pikir mereka memiliki kegunaan dalam aplikasi bisnis. Terlalu banyak orang yang membuat serangkaian resep untuk menggunakan aplikasi bisnis yang tidak pernah mereka lihat di area aplikasi lainnya. Maksud saya ada seluruh bagian dari aplikasi yang tidak pernah mereka lihat jika itu bukan bagian dari pelatihan mereka dan itu bisa saja berguna bagi mereka. Saat ini saya mengerjakan aplikasi dengan 75 laporan dan pengguna meminta informasi dan mereka bahkan tidak pernah menjalankan satu laporan. Mereka membutuhkan beberapa insentif untuk menebus kurangnya keingintahuan mereka (Dalam pembelaan mereka, beberapa pengguna takut merusak sesuatu.).

JeffO
sumber
-2

Saya menggunakan telur Paskah untuk membantu saya debug dan coding. Oleh karena itu telur Paskah yang saya masukkan memiliki tujuan dan mungkin tidak dianggap sebagai telur Paskah.

Dave
sumber
Apa sebenarnya yang Anda maksudkan dengan 'easter egg' dalam penggunaan Anda? Bisakah Anda memberi saya contoh?
Ini bukan telur Paskah melainkan pintu belakang saat itu. Kami melakukan sesuatu yang khusus untuk pengujian GUI ketika alat mengklik dua kali tombol tengah mouse di lokasi layar (0,0), dan kemudian memasukkan kata sandi yang benar. Ini dilakukan agar alat otomasi GUI dapat menanganinya. Pengguna dapat melakukan ini juga secara teori, tetapi dalam praktiknya mereka tidak akan sampai di sana. Plus, ada tanda-tanda peringatan di semua tempat.
Ayub
1
@ Glenn, contoh yang bagus adalah ... jika Anda mengirim aplikasi GUI desktop. Ketika pengguna mengklik tombol, mereka mendapatkan dialog baru. Ketika pengguna mengklik tombol itu sambil menahan tombol shift, mereka mendapatkan yang lama. Ini akan menjadi cara yang baik untuk membandingkan fungsionalitas lama dan baru, ketika mencoba untuk memperbaiki bug yang disebabkan oleh widget baru. Jika Anda berhati-hati, Anda dapat meninggalkan kode ganda tetapi mengomentari pintu belakang. Kemudian, karena Anda perlu men-debug sesuatu, batalkan komentar, buat kembali, dan sekarang Anda dapat membandingkan dua hal secara berdampingan. Dave, maaf karena mencoba mencuri guntur Anda.
Pekerjaan