Programlama hakkında en sevdiğin teklif nedir? [kapalı]


Yanıtlar:


231

Hata ayıklama, kodu ilk etapta yazmaktan iki kat daha zordur. Bu nedenle, kodu olabildiğince akıllıca yazarsanız, tanımı gereği, hata ayıklamak için yeterince akıllı değilsinizdir.

- Brian W. Kernighan


Her ne zaman biraz zekice kod yazıyorsam, kendime bu kuralı hatırlatıyorum ve daha sonra bakımı kolay olacak ya da en azından bazı yorumlar ekleyen şeyler yapıp yapamayacağımı görmek için tekrar gözden geçiriyorum. .
CodexArcanum

6
Aksi taktirde gerçek bir maksim bir ortak: Bir şemanın beyin gücünüzü artırabileceğini unutmayın. Geçici olmayan kağıda "büyük şeyin yapısını hatırla" ifadesini takas edebilirsiniz.
Tim Williscroft

1
Alıntıya bayılıyorum, ancak bunun anlamı, en çok% 50'lik bir çabayı ilk etapta kodlamaya koymamız gerektiğidir.
Jon Hopkins,

4
Bence bu, programcının bir şeyi yapmanın 'zeki' yolunu kullanmak için dürtüsünden kaçınmanız gerektiği, bir şeyi yapmanın biraz daha uzun, daha açık bir yolu gayet işe yaradığında.
Fishtoaster

2
Ama ya "mükemmel" kodsa? "Hata ayıklamanın" yolu yok.
Mateen Ulhaq

183

Her ikisi de donmuşsa, suda yürümek ve bir spesifikasyondan yazılım geliştirmek kolaydır.

- Edward V Berard


Yılın alıntı, bu bir kullanacağım değilim
Gortron

Bundan nefret ediyorum. Asla durum böyle değil, kimin umrunda?
JP Alioto

138

Hofstadter Yasasını hesaba katsanız bile, her zaman beklediğinizden daha uzun sürer.
  - Hofstadter Yasası


72
Beyin yığını taşması.
Nathan Taylor

3
@Joe D: Bir özyinelemeli İngilizce cümleyi nasıl özyinelemesiz tek bir cümleyi nasıl yeniden yazacağınızı merak ediyorum .
Jon Purdy

4
Bu "daha uzun" yeterli küçük değerler için yakınsama olabilir
mouviciel

3
+1 - Kendimi Douglas Hofstadter ile birlikte en iyi milyar programcı arasında saymaktan gurur duyuyorum.
Peter Turner

@gf: Daha sonra kaynağın tanımlanmasına dönüştürüldüğünde (bir tire ile), öncü tanıtım garanti edilmez ("A: Blah." -> "Blah. - A"). Bu, teklifin bir bölümünü kaldırmıyor.

126

Her zaman kodunuzu korumayı bitiren adam nerede yaşadığınızı bilen şiddetli bir psikopat olacakmış gibi kodlayın.

- Rick Osborne


12
Yaratıcının nerede yaşadığını bilmek isterdim diye kodumu sürdürmeye devam ediyorum, ancak bu muhtemelen bilmemem gereken iyi bir şey.
WalterJ89

"Katil uygulaması" terimine yeni anlamlar getiriyor. Hapsedildikten sonra her zaman psikopatın kodunu korudum.
webbiedave

8
@webbiedave ReiserFS üzerinde mi çalışıyorsunuz? :)
Neil Aitken

Katil işini aldığında, şirket senden gerçekten nefret etmeli.
Mateen Ulhaq

118

Projeyi alabilirsin:

  • Zamanında Yapıldı
  • Bütçede Yapıldı
  • Düzgün Yapıldı

İkisini seç.

- Bilinmeyen



5
Bana benzer bir üçgeni hatırlatıyor, ama kadınlarla. “Kız arkadaşın olabilir: Akıllı, çekici, iyi bir kişiliğe sahip.”
Saat

Nadir olmasına rağmen istisnalar olduğunu unutmayın - buna güvenmeyin.
Mircea Chirea

5
@Maxpm: Duyduğum sürüm "4 S: Akıllı, Seksi, Aklı, Bekar. 3. Seç."
Mason Wheeler

1
Bu nedenle, zaman ve bütçeyle ilgili herhangi bir kısıtlama olmadığı zaman, bunu doğru şekilde yapamazsınız. Bilmek güzel.
Antsan

111

Bazı insanlar, bir sorunla karşılaştığında, "Biliyorum, düzenli ifadeler kullanacağım" deyin.
Şimdi onların iki problemi var.

- Jamie Zawinski


5
Zamansız bir klasik
Faktör Mistik

5
Bazı insanlar, bir sorunla karşılaştığında "biliyorum, <bazı problem çözme uygulamalarını kullanacağım>" derim. Şimdi onların iki problemi var.
Callum Rogers

40
Bazı insanlar bir sorunla karşı karşıya kaldıklarında düşünmezler, sadece StackOverflow'a gönderirler
Matt Ellen

5
Bazı insanlar düzenli ifadeleri anlamıyor ve diğerleri de olduğu için onlardan nefret ediyor.
Orbling

3
@Yar - Hiçbir zaman sözdizimini şahsen kişisel olarak bulamamıştım ve yoğunluk iyi bir şey. Desen eşleşmesi gibi bir şeyi neden daha ayrıntılı bir biçimde ifade edelim? Karmaşık bir şey için açıklık gerektiğinde, genişletilmiş mod yorumlar ile kullanılabilir.
Orbling

110

Teoride teori ile pratik arasında bir fark yoktur. Fakat pratikte var.

- Jan LA van de Snepscheut


27
Ayrıca, "Teoriyle pratik arasındaki fark teoride pratikten daha küçüktür."

1
Roger Pate'in formülasyonu, Olin Shivers'in "T'nin Tarihi" nde yazdığı duydum. Paul Graham burada bunun hakkında konuşuyor: paulgraham.com/thist.html
Michael H.

2
Bir teori pratiğe çevrilmezse, o zaman teori tamamlanmamış demektir.
Rei Miyasaka,

105

Çizim masasındaki bir silgiyi veya inşaat alanında bir balyoz kullanabilirsiniz - Frank Lloyd Wright

Tam olarak bir programlama teklifi değil ama kesinlikle geçerli.


14
Son derece uygulanabilir IMO
John MacIntyre

3
Neyse ki bizim için çoğu yazılım yanlış gittiğinde çökmez ve insanları öldürmez.
Neil Aitken

8
Ariane 5'i havaya uçurması dışında (Uçuş 501) ya da ölümcül derecede radyasyona maruz kalan kişilere doz
veriyor

2
İronik olarak, Frank Lloyd Wright’ın daha katlanmış binalarının çoğunun itibarsızlığa düştüğüne inanıyorum.
Saat

1
@TomWij, @Walter, @Roger: Lütfen metatalk ile bu siteyi kirletmekten kaçının. Çekişme duymak isteseydim meta.stackoverflow.com adresini ziyaret ederdim. İşte bu büyüleyici ve zamansız sohbeti yapman gereken yer burası.
Dan Rosenstark

103

Bugün programlama, daha büyük ve daha iyi salak geçirmez programlar oluşturmak için çabalayan yazılım mühendisleri ile Evren daha büyük ve daha iyi salaklar üretmeye çalışan bir yarış. Şimdiye kadar, Evren kazanıyor.

- Rick Cook


98

Programlama ilerlemesini kod satırlarıyla ölçmek, uçak binasının ilerlemesini ağırlıkça ölçmek gibidir.
  - Bill Gates



3
Bu çoklu seviyelerde geçerlidir. Bir mücevher.

3
Elbette ki anahtar fark, yazılımın nihai LOC sayımı bilinmezken uçağın nihai ağırlığının bilinmesidir.
mmyers

5
Peki neden çoğu Microsoft ürünü, ayağımla pistten inmek için mücadele eden bir uçağa zincirlendiğim hissini veriyor?
Sharpie

86

Bilgisayar biliminde 2 zor problem var: önbellek geçersiz kılma, bir şeyleri isimlendirme ve kapalı hatalar.

    - Leon Bambrick (@ secretGeek ) Tarafindan Çekilen En Son Fotograflara Göz at

(Aslında, http://q4td.blogspot.com/search/label/programming adresindeki her şey listeyi küratörlüğüm gibi görür.)


Adlandırmaların ne kadar zor olabileceğini gösteren bir alıntı görmedim. Ani bir dayanışma hissediyorum.
CodexArcanum

Bu 3 şey. İlk ikisi, Phil Karlton'dan gelen orijinal alıntı. @CodexArcanum. İşleri iyi isimlendirmek püf noktasıdır.
StuperUser

@StuperUser whooosh! şakayı kaçırdın!
Agos

Bunu işaret ettikten sonra bunu almak iki saniye sürdü. Herp derp.
StuperUser

85

Dokuz kişi ayda bebek yapamaz.
  - Fred Brooks, Efsanevi Adam Ayı


14
teknik olarak: 18 kişi ayda bebek yapamıyor
İşte Kurtlar,

13
@HereBeWolves veya 10
WalterJ89

14
1 erkek ve 8 hanımın nesi var? Bana hemen hemen doğru geliyor.

4
İkizler veya üçüzler için gidersek, daha az kadına ihtiyacımız var.

12
İlk bebek 9 ay gecikme geçirecek olsa da, uygun boru hattı ayda 1 teslim etmeye devam edecek ...
Brian Knoblauch

82

Biz gereken küçük verimlilik unutun, zamanın yaklaşık% 97'sini ki: prematüre optimizasyon bütün kötülüklerin anasıdır. Yine de, bu kritik% 3'teki fırsatlarımızı kaçırmamalıyız.
  - Donald Knuth, İfadelerle Yapısal Programlama , JACM Hesaplama Anketleri, Cilt 6, Sayı 4, Aralık 1974, s.268

Bu, sadece neden yukarıdaki sonuca vardığını söyleyen değil , bu hatanın nasıl önlenebileceği hakkında bilgi veren aşağıdaki iki paragraftan çıkarılmıştır :

Kuşkusuz verimlilik kazancının suiistimallere yol açtığına şüphe yok. Programcılar, programlarının kritik olmayan bölümlerinin hızını düşünerek veya endişelendirip çok fazla zaman harcarlar ve bu verimlilik denemeleri, hata ayıklama ve bakım dikkate alındığında gerçekten güçlü bir olumsuz etkiye sahiptir. Biz gereken küçük verimlilik unutun, zamanın yaklaşık% 97'sini ki: prematüre optimizasyon bütün kötülüklerin anasıdır.

Yine de, bu kritik% 3'teki fırsatlarımızı kaçırmamalıyız. İyi bir programcı, böyle bir nedenden ötürü rahatlama duygusuyla karşı karşıya kalmaz, kritik koda dikkatlice bakmak akıllıca olacaktır; ancak bu kod tanımlandıktan sonra . Bir programın hangi bölümlerinin gerçekten kritik olduğu konusunda önceden karar vermek çoğu zaman bir hatadır, çünkü ölçme araçlarını kullanan programcıların evrensel deneyimi sezgisel tahminlerinin başarısız olduğu olmuştur. (...)


2
@Roger Pate: Haklı olduğundan şüpheleniyorum, çoğu insan bu teklifte daha fazlası olduğunu bilmiyor.
Scott Dorman

5
Umarım biraz daha eklememe izin vermezsin. Bence bu gerçekten önemli ve belki de makalenin tamamını okumak için daha fazla cesaretlendirici olabilir. :)

@Roger Pate: Hiç de değil!
Scott Dorman

5
+1 Alıntı için teşekkürler. Daha fazlası olduğunu asla bilemedim.
Evan Plaice

2
Alıntıyı yayınlaman harika. Pek çok insan sadece sıralama versiyonunu biliyor ve Knuth'un bununla ne demek istediğini bilmiyor.
DasIch

80

Hata ayıklayıcılar hataları gidermez. Sadece ağır çekimde gösterirler.

- Bilinmeyen


35
Veya çoğu durumda, tamamen görünmelerini engelleyin.
Graeme Perrow

12
@ Graeme bu davalara Heisenbugs denir :)
İşte Kurtlar

76

Kodun ilk% 90'ı, geliştirme süresinin ilk% 90'ını oluşturuyor. Kodun geri kalan% 10'u, geliştirme süresinin diğer% 90'ını oluşturuyor.

- Tom Cargill


Bunu aslen kim söyledi?
Paddyslacker

10
Kodun% 90'ının zamanın% 90'ını aldığını ve kodun son% 10'unun da zamanın% 90'ını aldığını düşünüyorum.
FacticiusVir

2
Bell Laboratuarlarından Tom Cargill: en.wikipedia.org/wiki/Ninety-ninety_rule
Bill Karwin

1
Bunu biliyorum:% 20 eş% 80 bira içiyor.
Zzz

1
Şahsen, kodun ilk% 90'ının geliştirme zamanının ilk% 90'ını oluşturduğunu söyleyebilirim. Ardından, kodun kalan% 90'ı geliştirme süresinin diğer% 90'ını oluşturuyor.
Kaz Ejderha

70

Java'nın gerçek bir çöp toplama işlemi olsaydı, çoğu program yürütüldüğünde kendilerini silerdi.
  - Robert Sewell


22
komik, sadece php düşündürdü.
WalterJ89

2
@ WalterJ89: Endişelenme! PHP 5.3'e kadar, PHP yeniden ifade edilir.
zneak

Bunu beğendim!
MDV2000

@ WalterJ89 Pekala, Java'yı COBOL, C ++, VB veya başkalarınınkinden ayırmak için sebep göremiyorum.
Mark C

69

Bilgisayar Bilimi, astronomi teleskoptan ziyade bilgisayarlar hakkında değildir.

- Edsger Dijkstra


4
Evet, ancak bunun bilgisayar bilimi değil programlama ile ilgili olması gerekiyordu . [sinsi sırıtış]
Mark C,

Programlama sadece bilgisayar bilimi ile toplanan bilgileri uyguluyor. Programlamak için bir bilgisayara ihtiyacınız yok, en azından en aşina olduğunuz bir kişi değil.
DasIch

Programlama ile ilgili en sinir bozucu şeyin bilgisayarlardan ayıramayacağımı hep hissettim.
LoveMeSomeCode

57

Hata ayıklama, yazılım hatalarını giderme işlemi ise, programlama onları yerleştirme işlemi olmalıdır.
  - Edsger Dijkstra


24
Bu yüzden işime enbugging olarak atıfta bulunmayı seviyorum .
deceze

9
Ve hata ayıklama olarak bakım ?
Joe D,

1
@JoeD Hayır, "bugwatching".
Mark C,

56

Sadece iki tür dil vardır: insanların şikayet ettiği dilleri ve kimsenin kullanmadığı dilleri

- Bjarne Stroustrup


15
C ++ suckage için kötü bahane
10

3
C # açık bir karşı örnektir.
Timwi

7
Ve VB her iki kategoriye de girer.
Hızlı Joe Smith

48

Bir boole hakkında en iyi şey, yanlış olsanız bile, sadece biraz tarafından kapalı. - (Anonim)


En kötüsü, daha fazla yanlış olamazsın?
POSIX_ME_HARDER

46

İki kez bana, "Dua edin Bay Babbage, makineye yanlış rakamlar koyarsanız, doğru cevaplar ortaya çıkacak mı?" Bir durumda Yukarıya, diğerine Aşağı Evlerden bir üye bu soruyu sordu. Böyle bir soruyu kışkırtabilecek fikir karışıklıklarını doğru bir şekilde anlayamıyorum.
  - Charles Babbage

Muhtemelen aptal kullanıcı sorularıyla karşılaşan bir programcının ilk belgelenmiş vakası.


5
Bir T-Shirt fikri gibi geliyor! "Kullanıcı Hatası: 1832'den bu yana işleri kirletmek". (Tarih?)
Mark C

42

Her zaman bilgisayarımın telefonum kadar kolay olmasını diledim; dileğim gerçek oldu çünkü telefonumu nasıl kullanacağımı artık çözemiyorum

- Bjarne Stroustrup


42

Kod çalışana kadar hepsi konuşma.
  - Ward Cunningham


39

Unicode desteği bir "özellik" değildir. Beklenen davranış.

Verilmiş, çok özel, ama benim favorim, çünkü eski karakter setleri hala çok yaygın olarak kullanılıyor ...


3
Şimdi sadece hangi unicode hakkında tartışmak zorunda
Martin Beckett

@Martin: Pek sayılmaz, çünkü çeşitli türler arasında dönüşüm kayıpsızdır.
Billy ONeal,

Acı! Neden bir müşteri ile tartışmalıyım ki, hayır, onun için sınırsızca daha uygun hale getirmek için tüm altyapımızı Latin-1'e “sadece” getiremeyiz. “Sonuçta, buradaki hiç kimse bu garip özel karakterleri kullanmıyor; bu kadar zor olamaz, değil mi?”
Piskvor

39

Kodunuzu yorumlamak banyonuzu temizlemek gibi bir şeydir - asla yapmak istemezsiniz, ancak gerçekten sizin ve misafirleriniz için daha keyifli bir deneyim yaratır.

- Ryan Campbell


1
Meh ... Hayatımda karşılaştığım en çok yorum, yorumların zayıf yazılmış kodlar için yapılabileceği varsayımıyla yazılmıştır ..
riwalk

Banyoyu temizleyebilirsiniz, ancak duş yalnızca soğuk suya sahipse ve lavaboda sabun yoksa, tatsız bir deneyim olacaktır. Bir şeyleri açıklamak için büyük yorumlar yazmak yerine kolayca okuyan bir kod yazın.
Keyo

Aslında yorum yapmayı çok zevkli buluyorum. Bazen yıldızlardan ve eğik çizgilerden oluşan temiz küçük kutulara önemli yorumlar koyarım. Sonra tekrar, ben bir ucubeyim.
Saat

2
Ben de yorum yazmayı seviyorum ama banyomu görmek istemezsin.
Timwi

Bir zamanlar bir tuvaletteydim, tuvaleti nasıl ve niçin temiz tutmanız gerektiğiyle ilgili çok uzun soluklu yorumlar vardı. Temiz değildi.
Rei Miyasaka


35

Programlama seks gibidir: bir hata ve bunu hayatın boyunca desteklemelisin.
  - Michael Sinz


34

Bir daha asla mükemmel değil, bir artı daha da güzelleşiyor, artı bir artıyordu.
  - Antoine de Saint-Exupéry, Fransız yazar (1900-1944), Terre des Hommes (1939)

(Eklenecek bir şey kalmadığında değil, elinden alınacak bir şey kalmadığında mükemmelliğe ulaşıldığı görülecektir.)


Ayrıca müzik için de geçerlidir
Heinz Z.


2
@David Kendal: Güzel! Benzer şekilde Henry David Thoreau, "Basitleştir, Basitleştir" dedi. Bu da beni her zaman "Basitleştir" olarak düşündürüyor.
Bill Karwin

33

Java arabaya halı olarak JavaScript.
  - Chris Heilmann


Arabamda halı var, yani Java'da Javascript var.
Keyo

1
@Keyo: Evet, bunun üstesinden gelmeyi düşündüm. Hala teklifin çok zekice olduğunu düşünüyorum.
Bill Karwin

31

Eric S. Raymond tarafından formüle edildiği gibi :

Linus Yasası

Yeterince büyük bir beta test cihazı ve ortak geliştirici tabanı göz önüne alındığında, hemen hemen her sorun hızlı bir şekilde tanımlanacak ve bir başkası tarafından açıkça görülebilecek.

Veya, daha az resmi olarak,

Yeterince göz küresi verildiğinde, bütün böcekler sığdır.


Bana biraz maymun / daktilo kuralı gibi geliyor ...
Sean Patrick Floyd

Neden Linux meraklıları, hataları gidermek yerine bu teklifi tekrarlamak için daha fazla zaman harcıyorlar?
Timwi

Veya Atwood'un StackOverflow sloganı, "Hiçbirimiz hepimiz kadar aptal değiliz". Kodlama
Evan Plaice
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.