Lütfen teknik meselelerde kalın, davranış, kültürel, kariyer veya politik meselelerden kaçının.
Lütfen teknik meselelerde kalın, davranış, kültürel, kariyer veya politik meselelerden kaçının.
Yanıtlar:
Hata olduğu için kod değil, derleyici veya çalışma zamanı kütüphaneleri.
Olası bir hata görüyorsanız, programınızı doğru bir şekilde oluşturup dağıtmadığınızı kontrol edin. (Özellikle karmaşık bir IDE kullanıyorsanız veya dağınık ayrıntıları sizden gizlemeye çalışan bir çerçeve oluşturuyorsanız ... veya derlemeniz çok sayıda manuel adım içeriyorsa).
Eşzamanlı / çoklu iş parçacıklı programlar yazmak zor ve düzgün test etmek daha zor. Eşzamanlılık kitaplıkları ve çerçeveleri eşzamanlı olarak bırakmak için en iyisidir.
Belgeleri yazmak, programcı olarak işinizin bir parçasıdır. "Başkasının" yapması için bırakmayın.
DÜZENLE
Evet, 1 numaralı noktama göre kontrol altına alındı. En iyi tasarlanmış uygulama platformlarında bile böcek payı vardır ve daha az iyi tasarlanmış olanlardan bazıları bunlarla doludur. Ama öyle olsa bile, her zaman kodunuzu kuşkusu olmamalıdır ilk ve sahip yalnızca derleyici / kütüphane böcek suçlamaya başlar net kodunuzu hatalı olmadığını kanıtlar.
C / C ++ geliştirmeyi yaptığım günlerde, sözde optimize edicinin "hataların" dil benden tanımsız sonuçlara sahip olduğunu söylediği şeyleri yapan benden / bazı diğer programcılardan kaynaklandığı ortaya çıktığını hatırlıyorum. Bu, Java gibi sözde güvenli diller için bile geçerlidir; örneğin, Java bellek modeline uzunca bir göz atın (JLS bölüm 17).
Kayan nokta hesaplamaları kesin değildir .
Öğrenmeyi bırakma.
Kodunuzun kalitesini ve sürekliliğini artırmak için yapabileceğiniz 1 numaralı şeyin, REDUP TUTMA SİSTEMİDİR.
Sorun Giderme ve Hata Ayıklama Becerileri
Aldığım programlama kurslarının hiçbirinde bu konuda fazla zaman harcamıyorlar ve deneyimlerime göre bir programcının ne kadar verimli olduğunun en belirleyici faktörlerinden biri. Beğenin ya da beğenmeyin, uygulamanızın bakım aşamasında yeni geliştirme aşamasından çok daha fazla zaman harcıyorsunuz.
Soooooo ile çalıştım, problemi bulmak için hiçbir stratejisi olmayan şeyleri rastgele değiştirerek hata ayıklama yaptım. Bu sohbeti onlarca kez yaptım.
Diğer Programcı: Bence düzeltip düzeltmeyeceğini görmeye çalışmalıyız.
Ben: Tamam, bunu düzelteceğini varsayarsak. Bu size sorunun kaynağının nerede olduğu hakkında ne söylüyor?
Diğer Programcı: Bilmiyorum ama bir şeyler denemek zorundayız .
Temeller. Halen programcılar kavramları değil teknolojileri öğreniyorlar. Yanlış.
Its wrong
olması gerektiği it's wrong
gibi.
Her programcı varsayımları her zaman koda koyduğunu bilmelidir; örneğin, "bu sayı pozitif ve sınırlı olacak", "bu kod sunucuya her zaman göz açıp kapayıncaya kadar bağlanabilecek".
Ve bu varsayımlar çiğnendiğinde buna hazırlıklı olması gerektiğini bilmeli.
assert()
her yerde - olanları belirtin . assert()
varsayımlarınızı belgelendirmenize ve hatalı olduğunuzda tasarruf etmenize yardımcı olacaktır.
Her programcının test yapması gerektiğini bilmesi gerekir.
Eleştirel ve mantıklı düşünme. onsuz iyi bir şey yapamazsınız.
Bu düşündüğünden daha zor.
Normal kullanıldığında, hatalı girdi ile başa çıkarken, tüm kenar ve köşe durumları, olası arıza modları vs.
O zaman uygulamanın da iyi görünmesini sağlamalısınız.
Etki alanı bilgisi. Spec asla% 100 değildir; Gelişmekte olduğunuz asıl etki alanını bilmek HER ZAMAN ürünün kalitesini artıracaktır.
Büyük O notasyonu ve etkileri.
Bazı faydalı referanslar
İşaretçiler, açıkçası. :)
Kod Tamamlandı 2 - kapak için
Veriler koddan daha önemlidir.
Verileriniz akıllıysa, kod aptal olabilir.
Aptal kodun anlaşılması kolaydır. Akıllı veri de öyle.
Neredeyse şimdiye kadar sahip olduğum her algoritmik keder, verilerin yanlış yerde olması veya gerçek anlamını kötüye kullanmasından kaynaklanıyordu. Verilerinizin anlamı varsa, bu anlamı yazım sistemine yerleştirin .
İşe en uygun dil ve ortam. Ve bu her zaman senin favorin değil.
Böl ve fethet. Genellikle zamanlamadan hata ayıklamaya kadar her türlü pratik sorunu çözmenin en iyi yolu budur.
Gerçek beceri, karmaşık bir tasarımın hiç çalışmamasına değil, basit bir tasarımın iyi bir şekilde gerçekleştirilebilmesidir.
Bu beceri, arkana ilişkin ustalıktan değil, temellerin ustalığından gelir. Yüksek kalibreli bir programcı, başkalarının yapamadıklarını kodlama yetenekleriyle tanımlanmamıştır (daha yüksek seviyeli fonksiyonlar kullanarak, gelişmiş fonksiyonel programlama, sahip olduğunuza sahip), ama tam anlamıyla sıradan kodlamayı hassaslaştırma yeteneklerinde. Sınıflar arasında uygun işlevselliğin ayrışmasının seçilmesi; sağlamlıkta inşa etmek; savunma programlama teknikleri kullanmak; ve daha fazla öz belgeleme sağlayan kalıplar ve isimler kullanarak bunlar yüksek kalibreli programlamanın ekmeği ve yağıdır.
Siz veya bir başkası, bir ay veya yılda bir hafta içinde geri gelebileceğiniz ve bu kodun nasıl kullanılacağı, değiştirileceği, geliştirileceği veya genişletileceğini anladığınız iyi kodlar yazmak çok önemlidir. Size zaman ve zihinsel çaba kazandırır. Daha önce tökezleyeceğiniz barikatları kaldırarak (belki de düşünce treninizi kesmek, ya da belki de diğer işten saatlerce ya da günlerce çaba harcamak, vb.) Üretkenlik çarklarını yağlar. ve bazen zor problemleri ortadan kaldırır.
Bir kelimeyle: şıklık. Her sınıf, her yöntem, her koşul, her blok, her değişken adı: şıklık için gayret gösterin.
Daha temiz bir kullanıcı deneyimi veya daha iyi belgelerle nelerin düzeltilebileceğini asla kullanıcıya suçlamayın. Genellikle, programcılar otomatik olarak kullanıcının problemi genel bir deneyim ya da iletişim eksikliği olduğunda doğru bir şey yapamayan bir aptal olarak kabul eder. Programların kullanılması amaçlanmıştır ve kullanıcıya saygısız davranmak, ilk başta programlama noktasını kaçırmaktır.
Her programcı hata ayıklayıcısını nasıl kullanacağını ve nasıl iyi kullanacağını bilmelidir .
Kısa devre değerlendirmesi, boolean operatörleri hakkında size ilk öğrettikleri şeylerden biri olduğunu belirtti.
Bir özelliğin uygulanması için ne kadar zaman harcanacağını doğru olarak nasıl tahmin edersiniz. Daha da önemlisi, bu tahminde bulunduğunuz zaman saçma olmadığınızı nasıl iletirsiniz.
Kodlama tarzı önemlidir:
... ve iyi tasarım önemlidir.
İdeal olarak, programcı bunları ilk kod incelemesinden önce (veya sırasında) öğrenir. En kötü durumda, programcı, patronun acele bazı korkunç kodlarda önemsiz bazı değişiklikler yapmasını söylediğinde onları öğrenir.