Kesalahan terbesar yang pernah Anda buat [ditutup]


33

Mirip dengan pertanyaan yang saya baca di Server Fault, apa kesalahan terbesar yang pernah Anda lakukan dalam posisi terkait TI. Beberapa contoh dari teman:

Saya perlu melakukan beberapa pekerjaan di situs produksi sehingga saya memutuskan untuk menyalin dari database langsung ke situs beta. Cukup standar, tetapi ketika saya pergi ke situs beta itu masih menarik info yang ketinggalan zaman. OOPS! Saya telah menyalin basis data beta ke situs langsung! Terima kasih Tuhan untuk backup.

Dan bagi saya, saya membuat formulir untuk acara yang akan diadakan selama rentang waktu tertentu. Peserta akan mengisi formulir untuk kesempatan menang, dan kami akan mengirimkan CSV penyelenggara acara dari database. Saya pergi ke database, dan menemukan HANYA 1 MASUK, MINE. Setelah menyelidiki, sepertinya saya lupa kunci kenaikan otomatis, dan karena pengaturan server tidak ada cara untuk memulihkan data yang hilang.

Saya sadar pertanyaan ini mirip dengan yang ada di Stack Overflow tetapi yang saya temukan sepertinya menerima jawaban umum alih-alih cerita sebenarnya :)

Apa kesalahan / kesalahan pengkodean terbesar yang pernah ada ...


6
pertanyaan guinness!
Junior M

Mengapa o mengapa pertanyaan ini ditutup? Saya merasa perlu menambahkan kesalahan besar saya sendiri: Saya mencatat situs web LIVE selama tiga jam (mis. 500 status HTTP) setelah disebarkan ke Produksi setelah diberitahu secara khusus BUKAN UNTUK MENGIRIMKAN PRODUKSI. Yang terburuk, saya mencoba menyembunyikan kesalahan itu, tetapi klien itu memperhatikan dan sepertinya tidak terlalu bahagia.
Maria Ines Parnisari

Mudah untukku. Penarikan investasi yang dibayarkan tetapi dikonversi menjadi sen dua kali. Dibayar 3 juta, bukannya 30rb. Runner up - SQL buruk di mana klausa. Memberitahu 4k orang bahwa investasi $ 1 - $ 10 mereka tumbuh $ 1800 semalam. Jelas beberapa klien ini pergi dan menghabiskan uangnya. Pulih dengan cepat secara finansial. Kepercayaan diri dan rasa bersalah yang hancur tidak pernah benar-benar hilang. Cara memulihkan: bertanggung jawab. Akui kesalahan Anda. Jangan salahkan hal lain bahkan jika ada faktor-faktor yang berkontribusi. Ini disambut dengan pemahaman dan upaya tim untuk memperbaikinya. Klien menghargai kejujuran.
Reasurria

Jawaban:


54

Mengeluarkan SQL UPDATE dengan klausa WHERE WHERE yang cocok dengan semuanya.

Lesson Learned: Selalu mengeluarkan SELECT terlebih dahulu untuk melihat apa yang akan diubah.


15
Atau setel autocommit ke false sehingga Anda dapat melihat berapa banyak baris yang akan terpengaruh.
Yevgeniy Brikman

2
Oh, aku sudah melakukannya. Sangat jahat ...
glenatron

4
Haha saya pikir semua orang dengan beberapa SQL di bawah ikat pinggang mereka telah melakukan ini pada suatu waktu, saya termasuk
billy.bob

3
Itulah sebabnya pembaruan harus dilakukan pada dev terlebih dahulu! Tidak ada perbaikan panas langsung ke prod. Dan bersyukurlah atas tabel audit jika Anda memilikinya saat Anda melakukan ini.
HLGEM

13
Saya melakukan itu sekali untuk mengatur ulang kata sandi seseorang. Setelah saya mengatur kata sandi semua orang ke hal yang sama, saya hanya mengatakan kepada bos saya bahwa dukungan teknis akan mendapatkan banyak panggilan telepon dan bahwa kita harus memberi tahu penelepon bahwa kita harus mengubah kata sandi mereka untuk alasan keamanan.
Barry Brown

36

Typo

Menghabiskan tiga hari penuh untuk chunk ini:

if($func == "remove")
{
    $p->comments[$index]->removed = true;
    $p->save();
}
else if($func == "approve");
{
    $p->comments[$index]->approved = true;
    $p->comments[$index]->removed = false;
    $p->save();
}

Lihat kesalahannya? Ini adalah titik koma di akhir else if. Saya tidak tahu mengapa komentar saya yang dihapus tidak dihapus. Menggali ke dalam basis data, permintaan AJAX yang saya gunakan, variabel POST, sudah ada error_logdan di alerts mana - mana . Akhirnya menulis ulang metode dan berhasil. Kemudian saya melakukan diff dengan versi aslinya dan memperhatikan titik koma.

Typo adalah yang paling sulit dilacak pada bahasa yang tidak dikompilasi atau diperiksa sebelumnya oleh sesuatu. Bahkan kesalahan seperti ini akan sulit pada bahasa yang dikompilasi. Ubah ==ke =dan tiba-tiba Anda memiliki tugas di dalam if.


8
Di sinilah alat seperti Resharper benar-benar dapat membayar sendiri - itu akan menyoroti ini sebagai peringatan dan mendorong Anda untuk menghapusnya.
Yaakov Ellis

24
Apakah judulnya adalah permainan kata-kata (dimaksudkan)? : o
Agos

3
@Rogue Coder: perbedaan antara tanda kutip tunggal dan ganda semakin kecil. Ini adalah penyalahgunaan waktu untuk menghabiskan siklus otak mengkhawatirkannya. Lihat tes di bagian bawah phpbench.com
Joeri Sebrechts

2
@ back2dos: Errr ... benar. Jadi, Anda merekomendasikan untuk membuang semua bahasa yang disebutkan itu demi HaXe? Sesuatu yang pertama kali muncul pada 2005? Silakan dengan itu.
Josh K

10
Terima kasih atas argumennya yang mendukung One Brace Style. +1
eswald

28

Berpikir bahwa pemrograman sebagian besar tentang membangun hal-hal baru yang keren dari awal.


1
Ketika saya pertama kali mulai, saya juga memiliki pemikiran ini. Kemudian saya belajar bahwa ada lebih banyak pemeliharaan orang lain daripada apa pun. Itu sebabnya saya mencoba sekarang untuk menulis kode terbaik (dengan komentar) yang saya bisa.

2
Masih banyak kode baru untuk ditulis. Banyak proyek open source membutuhkan pengkodean dari awal yang mengimplementasikan fungsi yang sama dengan sistem tertutup.
PP.

23

Kesalahan terbesar saya adalah berpikir bahwa pemrograman adalah uang mudah ...


27
Jika Anda masuk ke pemrograman untuk mencari uang, Anda harus mendapatkan karier baru. Bukan berarti uang itu tidak ada, tetapi Anda membutuhkan cinta yang obsesif untuk pemrograman yang dimiliki pengembang sejati, atau Anda akan terbakar dengan sangat cepat
johnc

1
Anda membuat poin yang bagus. Saya benar-benar tidak masuk ke pemrograman untuk mencari uang, tetapi saya benar-benar berpikir bahwa akan jauh lebih mudah untuk hidup darinya. Pemrograman adalah hasrat saya dan saya akan melakukannya bahkan jika saya harus membayar.
Marcelo de Aguiar

4
@ johnc sama akan berlaku untuk sebagian besar profesi. Sejujurnya saya tidak mengerti orang-orang yang pergi ke universitas untuk "belajar pemrograman". Saya mulai ketika saya berusia 14 tahun dengan K&R. Saya pergi ke universitas untuk "belajar elektronik" - tetapi coba tebak, saya tetap menjadi seorang programmer. Musisi terbaik belajar sendiri. Pemrogram terbaik belajar sendiri. Itulah hidup.
PP.

amin brother, amin
Misters

23

Secara tidak sengaja menghapus database yang menyimpan semua info pelanggan kami, riwayat pesanan dan faktur kembali ke awal perusahaan (senilai beberapa tahun).

Agar adil, majikan saya harus berbagi kesalahan. Mereka memiliki satu-satunya salinan dari database yang disimpan di Mac SE (ya ini sudah lama sekali) yang mereka berikan kepada saya (seorang karyawan baru, pekerjaan pertama dari perguruan tinggi) sebagai stasiun kerja saya dan bahkan tidak pernah mempertimbangkan untuk membuat cadangan.

Jadi, mengira itu adalah salinan DB saya menyeretnya ke tempat sampah. Karena ukuran file itu segera dihapus. Kami akhirnya mendapatkannya kembali setelah membayar jumlah yang tidak layak ke layanan pemulihan data, tetapi selama sekitar 5 hari kami tidak dapat memenuhi atau menagih pesanan apa pun, dan tidak memiliki cara untuk mengakses informasi tentang pelanggan mana pun. Cukup banyak yang membuat (3 orang perusahaan) terhenti.


15
Aduh. Catatan untuk diri sendiri: Selalu ambil cadangan: meskipun sudah ada cadangan.
Kramii Reinstate Monica

1
@Karmii: Nasihat terbaik, tenanglah.
Chris

@ Kramii - Senang saya mempelajari pelajaran itu di awal karir saya.
JohnFx

Apakah kamu tidak dipecat?
Mateen Ulhaq

3
Ada cukup banyak kesalahan untuk disiasati. Saya hanyalah seorang anak kecil pada masa itu dan mungkin lebih naif daripada saya hari ini dengan mengasumsikan bahwa sebuah perusahaan nyata akan melakukan hal konyol seperti meletakkan satu-satunya salinan DB di desktop saya. Pengalaman menunjukkan kepada saya bahwa bodoh untuk melebih-lebihkan kesiapan majikan saya, bahkan di perusahaan besar.
JohnFx

15

ketika phpmyadmin bertanya:

"Kamu akan MENGHANCURKAN basis data yang lengkap! Apakah kamu benar-benar ingin DROP DATABASE xxx?"

Saya menekan Enter.


26
Contoh yang bagus ketika pemrograman defensif akan membantu mencegah masalah besar. Jika Anda melakukan sesuatu di mana akibatnya bisa sangat buruk, seperti mungkin menjatuhkan tabel / database, default tanggapan pengguna untuk "Tidak" sehingga mereka harus AKTIFKAN menyetujui tindakan tersebut.
Hugo

6
@Hugo: +1. Saya memiliki seorang profesor di uni (ex Unix / database sysadmin) yang biasa berkata "setiap kali Anda melakukan sesuatu yang serius, selalu lepaskan tangan Anda dari keyboard dan duduk di atasnya selama sekitar sepuluh detik dan pikirkan apa yang akan terjadi."
Bobby Tables

1
@Hugo: Saya melangkah lebih jauh - "Anda akan MENGHANCURKAN basis data lengkap! Jika Anda benar-benar ingin DROP DATABASE xxx, ketik DELETE:"
Loren Pechtel

3
@Hugo @Loren Pechtel - "Anda akan MENGHANCURKAN basis data lengkap! Pencarian web login Anda telah menemukan beberapa kemunculan 'lol', dan karenanya tindakan ini ditolak. Silakan temui administrator Anda atau pelajari cara berkomunikasi."
Detly

15

Tidak yakin itu adalah "kesalahan terbesar" saya, tapi jelas yang paling berkesan. Pada minggu pertama atau kedua saya di pekerjaan baru, saya ditugaskan untuk melakukan "peningkatan fitur" kecil yang melibatkan memodifikasi urutan urutan beberapa item pada salah satu halaman paling populer di situs. Saya tidak terlalu terbiasa dengan basis kode, tetapi dengan cepat menemukan Pembanding yang relevan dan menambahkan panggilan ke beberapa metode yang tampak tidak berbahaya di dalam metode compareTo tanpa terlalu memikirkannya. Kode diuji secara lokal dan di QA tanpa masalah dan ditayangkan.

Saya memiliki 1 lawan 1 dengan bos saya pada hari yang sama dan dengan senyum lebar di wajahnya, dia memberi selamat kepada saya karena mendapatkan "fitur" pertama saya langsung setelah bergabung. Kami berdua memandang ketika ia mengunjungi halaman terkait untuk melihat fitur dalam aksi. Halaman ini membutuhkan waktu 47 detik untuk memuat. Hatiku tenggelam. Dia menyegarkan halaman: 53 detik. Senyumnya menghilang. Saya kembali ke meja saya dan menghabiskan malam panjang men-debug dan mendorong tambalan penting ke situs langsung.

Ternyata salah satu metode yang tampak tidak berbahaya yang saya tambahkan adalah panggilan layanan jarak jauh yang menghasilkan setidaknya satu hit DB. Di setiap perbandingan, Untuk menelepon. Jadi pada halaman di mana 2.000+ item disortir, saya menghasilkan ~ 6000 (nlogn) DB hit. Aduh.


Apakah DB hit jelas dalam kode Anda, atau apakah itu terjadi pada beberapa metode / properti yang Anda panggil?
dbkk

Hit DB sebenarnya tersembunyi di balik metode yang tampak seperti pengambil sederhana: Saya menambahkan panggilan myObj.getFoo () dalam metode compareTo. JavaDoc pada subclass yang relevan tidak mencatat kemungkinan hit DB, tetapi JavaDoc pada antarmuka myObj (yang saya lihat ketika menulis kode) tidak menyebutkan hal semacam itu. Dalam kedua kasus tersebut, saya pikir ini adalah demonstrasi yang jelas dari (a) pengujian yang tidak memadai atas nama saya dan (b) apa yang bisa terjadi jika Anda tidak mengikuti konvensi penamaan yang baik.
Yevgeniy Brikman

lebih mungkin itu adalah kasus (sangat umum) dari lingkungan pengujian yang tidak mewakili lingkungan produksi. Anda mengujinya, itu bekerja dengan baik, sehingga Anda menyimpulkan itu baik, tidak pernah tahu (dan Anda tidak bisa, kemudian) bahwa database pengujian hanya berisi sebagian kecil dari data yang terkandung dalam database produksi.
jwenting

15

Saya sudah melakukan ini:

rm -rf /bin

(Sebenarnya, saya tidak melakukan hal itu. Itu akan menjadi bodoh dan tidak dapat dimaafkan. Saya melakukannya dengan cara yang lebih halus, bundaran yang pada dasarnya menghasilkan perintah yang dieksekusi.)

Tidak perlu dikatakan, sistem Unix tidak dapat digunakan setelah titik itu dan harus diinstal ulang. Saya adalah sysadmin awal pada saat itu dan orang senior yang mengawasi saya mengerti.

Ada yang baik dari pengalaman itu. Saya belajar cara mendaftar direktori tanpa harus menggunakan perintah / bin.

echo *

+1 trik yang dipelajari seperti mensimulasikan ls dan cat hanya menggunakan konstruksi shell Bourne dari mode satu pengguna pada sistem DEC-BSD
Arcege

11

Pelanggan menginginkan mailout ke seluruh basis pengguna mereka yang pada dasarnya akan mengirim email yang dipersonalisasi tentang suatu peristiwa dan ketika mereka mengklik tautan dalam email itu secara otomatis akan login mereka ke formulir dengan setengah data mereka diisi.

Saya menulis kodenya, menguji kodenya, berfungsi dengan baik, tautannya bekerja, cukup lancar. Setelah memeriksa dan mengecek semuanya, saya beralih ke daftar langsung dan pergi.

Daftar langsung jauh lebih besar daripada data sampel saya dan server email jatuh. Saya harus menghentikan aplikasi konsol saya, kemudian menyadari bahwa saya harus me-restart dari tempat itu berhenti. Untungnya fitur ini tidak terlalu sulit untuk ditambahkan dan saya telah login ke pengguna mana saja mailout telah pergi, jadi telah membuat server surat dan menjalankan lagi, dan mengkonfigurasi ulang kode untuk dapat memulai kembali dari titik gagal sebelumnya dan untuk menjeda untuk membiarkan server surat mengejar, kita pergi.

Sayangnya saya entah bagaimana berhasil tidak mendapatkan semua pembaruan kode saya dengan benar. Saya tidak ingat detail apa yang saya lakukan, tetapi permintaan untuk mendapatkan data pengguna adalah mendapatkan satu set data, permintaan untuk menghasilkan hash mendapatkan yang lain, jadi jika pengguna mengklik tautan mereka akan mendapatkan ke formulir yang berisi data pribadi orang lain dari detail akun mereka. Dan ini dalam industri ceruk di mana ada banyak bisnis kecil yang kompetitif dalam daftar.

Tidak butuh waktu lama bagi telepon untuk mulai berdering di kantor pelanggan ...

Itulah satu-satunya kesalahan sejauh ini yang membuat saya menawarkan pengunduran diri saya.


+1 untuk data nyata secara signifikan lebih besar daripada data sampel :-(
nakedfanatic

IMO ini adalah salah satu yang lebih buruk> _ <
sevenseacat

7

Saya pernah menggunakan gabungan silang tanpa filter. Bekerja dengan baik pada database uji dengan sebagian kecil dari data. Ketika itu digunakan, itu berakhir dengan ~ 60 juta baris dalam permintaan rata-rata.


14
Sebenarnya kesalahan terbesar Anda adalah tidak mengembangkan database dengan ukuran yang sesuai. Jangan pernah menggunakan basis data uji kecil untuk mengembangkan untuk basis data produksi besar. Anda tidak dapat menulis kode performan kecuali Anda memiliki dabase berukuran tepat.
HLGEM

7

Saya menabrak pemindai laser $ 100.000.

Kontroler menyimpan posisi sebagai integer jadi saya membagi semuanya dengan 10.000 untuk mendapatkan posisi aktual dalam inci.

Ketika digit terakhir adalah 0, itu dihilangkan sehingga sumbu Z adalah 10 kali jauh.

Hillaritas terjadi


6

"Kita perlu menulis ulang."

Di sisi lain, itu adalah aplikasi VB6 berusia lima tahun.


5

Mengizinkan manajer saya untuk alis mengalahkan saya sehingga meninggalkan pekerjaan yang saya sukai. Saya seharusnya membiarkan dia mengacaukan segalanya, dipecat dan kemudian saya harus melangkah dan membersihkan potongan-potongan. Sebaliknya saya berhenti dan menyesalinya sejak saat itu.


17
Manajer jarang dipecat karena hal-hal seperti itu. Untuk mencapai level manajer Anda harus pandai menutupi bagian belakang Anda; Anda mungkin menjadi kambing hitam begitu Anda meninggalkan perusahaan. Mungkin Anda bisa menanganinya secara berbeda, tetapi jangan menyalahkan diri sendiri.
Mark Ransom

jika dia mengacau, Anda akan disalahkan dan dipecat (atau setidaknya memiliki waktu yang menyedihkan sampai Anda berhenti dalam kehinaan).
jwenting

4

Tujuh tahun lalu bos saya & pemilik perusahaan, yang belum pernah saya temui, saya sangat baru dalam pekerjaan itu, berada di negara bagian lain melakukan demo situs web penelitian kami kepada beberapa klien potensial. Biaya keanggotaan mencapai angka lima hingga pertengahan, jadi demo ini adalah masalah besar bagi perusahaan kami yang masih baru.

Di tengah-tengah demo-nya, ketika saya sedang melakukan pekerjaan database, saya membuat perubahan ke database hidup dan memperbarui setiap pertanyaan survei dalam setiap survei ke teks yang sama, sesuatu seperti "Ini adalah pertanyaan tes" karena kesalahan dalam DI MANA. Rekan kerja saya dan saya mencari-cari cadangan dan meringis, berharap dia tidak mendemokan bagian situs itu saat itu tetapi menunggu email dengan semua topi yang dengan penuh syukur tidak pernah muncul.

Sisi baiknya adalah bos akhirnya muncul untuk kotak pengembangan.


3

Saya menjalankan tautan Xenu di intranet kami untuk mencoba dan menjernihkan beberapa dari banyak tautan rusak yang telah dibangun selama bertahun-tahun (sebagian besar, cukup mengejutkan adalah tautan dari wiki ke drive jaringan bersama).

Setelah sekitar 30 menit saya mulai memperhatikan beberapa item baru memiliki beberapa gambar aneh, sepertinya orang-orang telah menggunakan beberapa foto stok lama kasar yang ada di sistem tetapi saya mengabaikan bahwa berpikir bahwa mungkin tidak ada sesuatu yang lebih baru yang memiliki apa yang mereka inginkan.

Lain 10 menit kemudian saya perhatikan item fitur berubah secara acak karena suatu alasan. Pada titik ini saya sadar apa yang terjadi. Intranet menggunakan otentikasi windows dan beberapa fungsi (seperti memilih gambar berita dan item unggulan) diberi kode untuk menanggapi permintaan HTTP GET. Pemeriksa tautan telah menggunakan otentikasi saya dan telah merangkak ke halaman di sisi admin, dengan setia melakukan tugasnya dan mengikuti setiap tautan yang ditemukan termasuk yang seperti

/admin/displayItems/icon_update.asp?image=eastereggs.jpg&itemID=3174


7
Ini sepertinya menjadi cara banyak orang belajar kapan pantas menggunakan GET dan kapan tepat menggunakan POST
Oli

Setuju, saya akan mulai bekerja untuk membangun kembali intranet dan ini menempatkan GET dan POST dengan tepat di bagian atas persyaratan. ASP MVC juga membantu menjadikan ini mudah dan intuitif untuk dilakukan.
Chao

1
tidak benar-benar Anda kesalahan, tapi cerita yang bagus tetap :-)
Dean Harding

3

Sejauh ini, satu-satunya kesalahan saya yang memusingkan, meningkatkan detak jantung, tiba-tiba-menjadi-panas-dan-gatal adalah menjalankan kueri UPDATE tanpa klausa WHERE. Untungnya ada cadangan dari 15 menit terakhir dan data tidak terlalu sering berubah yang berarti saya dapat sepenuhnya memulihkan data dalam 10 menit tanpa ada yang tahu.

Tidak ada yang terlalu buruk, tetapi saya sudah beberapa panggilan dekat. Mereka adalah dan tetap akrab karena saya sudah mendengar cukup banyak cerita horor di industri ini sehingga semua yang saya lakukan yang dapat mengacaukan segalanya akan membaik.


1
Tidakkah kalian membuat kesalahan DB yang pernah disebut rollback?
Jé Queue

@Xepoch, itu hanya membantu jika Anda memulai transaksi
CaffGeek

1
@ Chad, haruskah kita secara umum tidak menganggap semua panggilan data harus transaksional secara implisit?
Jé Queue

2
@ Xepoch, jangan pernah berasumsi.
CaffGeek

1
@Char, saya memiliki preferensi pribadi untuk menjaga semua interaksi DB dalam transaksi. Mereka yang tidak, mereka membawa risiko atau memiliki kasus bisnis yang tidak peduli. Asumsi spesifikasi dan MANDATE adalah bahwa kami akan memulai dan memelihara proyek kode dengan manajemen DB transaksional.
Jé Queue

3

Untuk robot tempat saya bekerja, kami menyimpan file log setiap kali dijalankan. Kami memiliki robot dan simulator, yang keduanya menghasilkan folder log ini. File log simulator tidak berguna, tetapi file log robot sangat berguna dan disimpan selamanya.

Karena robot itu sendiri memiliki ruang hard drive terbatas, mereka dipindahkan ke komputer lain dan disimpan di sana. Komputer ini merupakan komputer pengoperasian utama untuk berkomunikasi dengan robot.

Yah, saya baru saja mulai mengerjakan robot beberapa bulan sebelumnya dan tidak tahu ini. Saya pikir log di komputer operasi adalah yang tidak berguna yang dihasilkan oleh simulator dan menghapusnya. Kami kehilangan semua log lama karena tidak ada cadangan yang tepat.


8
Sial ... Saya ingin mengerjakan robot! Yang saya lakukan sepanjang hari adalah membangun situs web yang buruk.
Dan Ray

2

Membangun versi perangkat lunak kami di komputer saya alih-alih komputer yang dibangun karena lebih cepat (sekitar 4 jam lebih cepat, yang berarti bahwa ia bisa masuk ke QA hari itu, bukan yang berikutnya) dan penerbit menginginkannya segera.

Saya memiliki definisi khusus untuk debugging di komputer saya yang menyebabkan bug yang tidak terdeteksi di QA. Mereka hanya mendeteksi pada akhir 4 minggu pengujian validasi, tetapi itu cukup buruk untuk gagal validasi.


2

Jatuhkan database produksi secara tidak sengaja, bukan versi pengembangan. Saya tidak melihat server apa yang saya gunakan. Untungnya, cadangan terakhir diproduksi 4 jam yang lalu dan pengguna tidak membuat banyak perubahan pada sistem, jadi tidak ada kehilangan data yang besar.


Saya meminta rekan kerja untuk melakukan ini. Hanya dia yang mengira dia menjatuhkan salinan lokalnya, bukan yang asli. Kami semua bekerja lalu mendengarnya berkata 'OH SH ** !!!!' Itu sore yang menyenangkan.
Tyanna

2

Kesalahan terbesar yang pernah saya buat adalah tidak memiliki pekerjaan saya di kontrol sumber dari mesin pengembangan saya. Hard drive saya jatuh dan saya kehilangan minggu kerja. Ini adalah pelajaran yang sulit dipelajari dan sesuatu yang tidak akan pernah saya biarkan terjadi lagi.


bukan kesalahan saya, tetapi terkait. Perusahaan tempat saya bekerja telah membuat kompromi salah satu webserer mereka, memberikan akses root penyusup ke server kontrol versi (DMZ? Whazda?), Di mana ia segera dieksekusi "rm -r /"
jwenting

2

Menggunakan ==alih-alih equalsuntuk perbandingan string di Jawa


13
Itu kesalahan terbesar yang pernah kamu lakukan?
Chris

Ini lebih merupakan masalah di Jawa, di mana ==perbandingan referensi. Dalam C #, ==apakah perbandingan nilai pada string, sama seperti .Equals() yang dikatakan, ada beberapa perbedaan, lihat jawaban Jon Skeet di sini: stackoverflow.com/questions/3678792/…
Tim Goodman

2
@Tim: itu masih belum menjawab bagaimana ini "kesalahan terbesar yang pernah Anda buat" ... Beberapa konteks lagi tentang konsekuensi setidaknya akan menyenangkan ...
Dean Harding

Jika jawaban yang paling banyak adalah tentang kesalahan ketik, bagaimana jawaban saya di sini berbeda? Jika Anda sudah pemula, membuat kesalahan ini hampir tidak mungkin untuk debug dan bisa membuat Anda frustrasi sepanjang hari.
nanda

@Dean: Itu bukan kesalahan terbesar yang pernah saya buat ... Saya hanya mengklarifikasi perbedaan perilaku di sini dengan C # vs Java
Tim Goodman

1

Saya mengatakan kepada Direktur saya bahwa hanya karena dia LAMA dan memiliki pengalaman bertahun-tahun daripada yang saya miliki bukan berarti saya akan menghormatinya. Satu-satunya hal yang saya hormati adalah KEMAMPUAN. Saya tidak harus menghadapi konsekuensi dari pernyataan menyedihkan seperti itu karena saya adalah seorang Programmer yunior daripada. Menengok ke belakang, ini tampaknya menjadi kesalahan terbesar saya. Di mana akal sehat saya \ rendah hati ?? :-(


2
Saya setuju sebagian dengan Anda, hanya karena seseorang memiliki lebih banyak pengalaman (bertahun-tahun) tidak berarti bahwa ia adalah programmer yang lebih baik. Ada banyak programmer di luar sana, yang dapat menulis 'xx tahun pengalaman' di resume mereka tetapi tidak tahu apa yang mereka lakukan.
Bobby

Mereka lebih cenderung untuk mengambil kesalahan bodoh di sepanjang jalan, seperti yang tercantum di sini, yang akan membuat pengembang lebih berhati-hati
johnc

Untuk lebih jelasnya, kesalahan tidak memiliki sikap itu. Kesalahannya adalah MENGATAKAN bahwa Anda memiliki sikap itu.
Dan Ray

Saya ingin mengatakan ini kepada banyak orang selama bertahun-tahun.
Reasurria

1

Ini terjadi pada seorang rekan bulan ini.

Dia sedang memperbaiki bug yang terjadi ketika Anda mengirim SMS ke banyak ponsel. Biasanya pesan-pesan ini tidak benar-benar dikirim untuk menghemat biaya tetapi karena kesalahan konfigurasi dalam basis data kami, mereka memang dikirim.

Biaya: upah satu bulan untuk lalu lintas SMS.


itu murah! :)
jwenting

1

Atas permintaan manajer, saya menyalin /etc/sudoersdari satu mesin ke mesin lain (meskipun itu tidak akan menyelesaikan masalah yang ada, tapi itu intinya). Sayangnya, saya biasa sudomemindahkan file yang disalin ke tempatnya, tanpa memperhatikan bahwa pemilik dan izinnya sepenuhnya salah. Pada saat itu, tidak ada yang membuka shell root, tidak ada yang bisa sudo, dan tidak ada yang bisa login sebagai root karena shellnya sudah diatur /bin/false. Dan mesin itu berada di gudang data jarak jauh ...


1

Saya ingin membuat file metadata untuk setiap file dalam direktori (yaitu untuk setiap file somedir/foo.bin, saya ingin membuat file somedir/foo.bin.meta). Untuk beberapa alasan bodoh saya memutuskan untuk membuat file dengan membuka dan menutup aliran file melalui Python:

for fn in os.listdir(path):
    open(os.path.join(path, fn), 'w').close()

Untuk beberapa alasan yang bahkan lebih aneh, saya pikir itu pintar untuk menguji skrip ini terhadap direktori pada harddisk saya dengan beberapa gigs data pribadi di dalamnya. Hanya setelah menjalankannya saya menyadari bahwa saya lupa untuk benar-benar memodifikasi nama file sebelum meneruskannya opendan bahwa saya baru saja memotong setiap file dalam direktori itu (aduh).

Untungnya itu ada di komputer pribadi dan tidak menyebabkan kerusakan apa pun yang penting, tetapi saya masih belajar pelajaran saya.


1

Saya bekerja di perusahaan yang menangani salah satu dukungan pelanggan perusahaan telekomunikasi terbesar Swedia. Di server kami, kami memiliki beberapa perangkat lunak yang mengatur antrian panggilan masuk, berapa banyak panggilan yang bisa kami ambil dan sebagainya. Jika tidak berhasil, kami tidak mendapat panggilan dan pelanggan tidak mendapat dukungan.

Aaaaanyway, saya melakukan perubahan (kecil) ke perangkat lunak. Saya bisa saja menunggu jendela layanan untuk mengubahnya, tetapi saya berpikir, "Hei, akan butuh satu menit untuk memulai kembali layanan, mengapa repot-repot. Keberuntungan menyukai yang berani". Jadi saya menyalakannya kembali, sayangnya utasnya terkunci sehingga saya tidak bisa menggantinya. Mulai panik, saya memutuskan untuk mem-boot ulang mesin dengan cepat (saya mengirim ulang). Sayangnya dalam panik saya, saya klik "instal pembaruan dan shutdown" sebagai gantinya: P

Tidak perlu dikatakan bahwa tidak banyak dukungan pelanggan di Swedia yang dapat diperoleh selama setengah jam berikutnya sebelum kami berhasil memulai kembali.

Namun, seorang kolega lebih buruk daripada saya, dia kami men-debug sistem respons suara otomatis suatu malam dan mengalihkan nomornya ke ponselnya. Satu-satunya hal yang dia lupa untuk mengembalikannya, libur hari berikutnya dan meninggalkan ponselnya di kantor. Kami bertanya-tanya mengapa hari itu berdering terus-menerus :)


1

Argh, 11 malam, penutupan laboratorium, cepat, cepat ...

$ enscript -o midterm.hs midterm.hs
$ submit midterm.hs
Error: submission is empty

Tuhan tidak! SL. Maksud saya PS Anda ****!


Permintaan maaf untuk gaya bahasa, diperlukan untuk keaslian.
Orbling

0

Beberapa waktu sebelumnya ketika coding JS, saya tidak dapat membedakan antara "1" (satu) dan "l" "L kecil". Bahkan ketika saya mengetik jawaban ini keduanya terlihat hampir sama di editor!


Mengapa memilih bawah?
Gopi

0

Saya membuat bahasa templating situs , dalam versi awal yang semua parameter HTTP diperluas secara implisit sebagai variabel. Ini berarti Anda dapat menulis URL seperti:

page.vis? body = <body> <p> Oh sayang </p> </body>

Dan itu akan melakukan persis seperti apa yang dilakukannya.

Untungnya saya tidak memiliki pengguna (menghela nafas), jadi saya kira itu tidak terlalu banyak risiko keamanan.


0

Kesalahan TSQL - terlalu banyak pernyataan TSQL dalam satu jendela editor. Sedikit lelah, dan orang-orang mengganggu saya dari kiri dan kanan, dan saya mengeluarkan perintah yang memperbarui 47.000 catatan alamat, kota, negara bagian, dan zip-oops. Apakah itu diperbaiki dalam waktu sekitar 25 menit.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.