«code-smell» etiketlenmiş sorular

"Kod kokusu" nun ne olduğunu ve ne olmadığını belirlemek özneldir ve dile, geliştiriciye ve geliştirme yöntemine göre değişir. Bir tekniğin "kod kokusu" olup olmadığını sormadan önce, tekniği kullandıysanız kendinize özel projenizin sonuçlarının ne olacağını sorun. Bir şeyin "kod kokusu" olup olmadığını sormak çok özneldir.

8
C # sözlüklerini kullanmanın TryGetValue'dan daha iyi bir yolu var mı?
Kendimi çevrimiçi olarak sık sık soru ararken buluyorum ve birçok çözüm sözlükler içeriyor. Ancak, bunları uygulamaya çalıştığımda, kodumda bu korkunç reek var. Örneğin, her değer kullanmak istediğimde: int x; if (dict.TryGetValue("key", out x)) { DoSomethingWith(x); } Bu esasen aşağıdakileri yapmak için 4 kod satırıdır: DoSomethingWith(dict["key"]) Out anahtar kelime kullanarak bir …

9
Çok fazla iddia kodu kokusu var mı?
Birim testlerine ve TDD'ye gerçekten aşık oldum - test enfekte oldum. Ancak, birim testleri normalde genel yöntemler için kullanılır. Bazen özel yöntemlerde de bazı varsayım-iddiaları test etmem gerekse de, bazıları "tehlikeli" ve yeniden düzenleme daha fazla yardımcı olamaz. (Biliyorum, çerçevelerin test edilmesi özel yöntemlerin test edilmesine izin veriyor). Böylece özel …

7
Soyutlamaların kod okunabilirliğini azaltması gerekiyor mu?
Birlikte çalıştığım iyi bir geliştirici, geçtiğimiz günlerde miras aldığımız bazı kodlarda bir özelliği uygulamada yaşadığı zorluklardan bahsetti; sorunun kodun takip edilmesinin zor olduğunu söyledi. Bundan sonra, ürüne daha derinlemesine baktım ve kod yolunu görmenin ne kadar zor olduğunu anladım. O kadar çok arayüz ve soyut katman kullandı ki, şeylerin nerede …

4
Veri sınıfları neden bir kod kokusu olarak kabul edilir?
Bu makalede, bir veri sınıfı bir "kod kokusu" olduğunu iddia ediyor. Sebep: Yeni oluşturulmuş bir sınıfta yalnızca birkaç ortak alan (ve hatta bir avuç alıcı / ayarlayıcı) varsa bu normal bir şeydir. Ancak nesnelerin gerçek gücü, verileri üzerinde davranış türleri veya işlemler içerebilmeleridir. Bir nesnenin yalnızca veri içermesi neden yanlıştır? …

7
Bir nesneyi, nesneyi değiştiren bir yönteme geçirmek, ortak (anti-) bir kalıp mıdır?
Martin Fowler'in Refactoring kitabındaki ortak kod kokularını okuyorum . Bu bağlamda, bir kod tabanı içinde gördüğüm bir model merak ediyordum ve biri objektif bir anti-desen olarak düşünebilir olsun. Desen, bir nesnenin, tümü nesnenin durumunu değiştiren ancak hiçbiri nesneyi döndürmeyen bir veya daha fazla yönteme argüman olarak iletildiği modeldir. Bu nedenle …

5
Bir fonksiyonun bir parametreyi değiştirmesi uygun mudur?
Linq To SQL'i saran bir veri katmanımız var. Bu veri katmanında bu yöntem var (basitleştirilmiş) int InsertReport(Report report) { db.Reports.InsertOnSubmit(report); db.SubmitChanges(); return report.ID; } Gönderme değişikliklerinde, rapor kimliği daha sonra döndürdüğümüz veritabanındaki değerle güncellenir. Arayan taraftan böyle görünüyor (basitleştirilmiş) var report = new Report(); DataLayer.InsertReport(report); // Do something with report.ID …


3
Alaycı üretim kodunda işleme koyuluyor
Bir IReader arayüzü, IReader arayüzü ReaderImplementation uygulaması ve okuyucudan veri tüketen ve işleyen bir sınıf ReaderConsumer varsayarsak. public interface IReader { object Read() } uygulama public class ReaderImplementation { ... public object Read() { ... } } Tüketici: public class ReaderConsumer() { public string location // constructor public ReaderConsumer() { …

3
Paralel Diziler ne zaman kullanılabilir?
Ben 'Paralel Diziler' veya Listeler dediğim kullanan kod (yeni kod) çalıştırıyorum. Yani ilgili veriler içeren ve dizideki konumlarına (dizinlerine) bağlı 2 dizi vardır. Bunu kafa karıştırıcı ve her türlü hataya eğilimli olarak görüyorum. Normalde önerdiğim çözüm CompanyCompanyId ve CompanyName alanlarıyla adlandırılan bir nesne oluşturmaktır . Çok gerçek bir örnek: List<string> …

3
PHP web uygulamamın akışını takip etmiyorum, çalışmak zorlaşıyor
Birkaç yıldır programlıyorum ve zaman içinde C # ve JavaScript ile çok aşina oldum. Gezinmekte sorun yaşamadığım daha büyük bazı C # ve JavaScript projelerim var. Geçenlerde PHP ile daha önce hiç deneyime sahip olmayan bir PHP & AngularJS projesi başlattım. Şeylerin PHP tarafının akışını takip etmek zorlaşıyor (JavaScript tarafı …


5
'Util' dersleri almak endişe yaratıyor mu? [kapalı]
Şu anda olduğu gibi, bu soru Soru-Cevap formatımıza uygun değil. Yanıtların gerçekler, referanslar veya uzmanlık tarafından desteklenmesini bekliyoruz, ancak bu soru muhtemelen tartışma, tartışma, oylama veya genişletilmiş tartışma talep edecektir. Bu sorunun çözülebileceğini ve muhtemelen yeniden açılabileceğini düşünüyorsanız, yardım için yardım merkezini ziyaret edin . 7 yıl önce kapalı . …

7
Gurur duyduğun en kötü kod parçası neydi? [kapalı]
Şu anda olduğu gibi, bu soru Soru-Cevap formatımıza uygun değil. Yanıtların gerçekler, referanslar veya uzmanlık tarafından desteklenmesini bekliyoruz, ancak bu soru muhtemelen tartışma, tartışma, oylama veya genişletilmiş tartışma talep edecektir. Bu sorunun çözülebileceğini ve muhtemelen yeniden açılabileceğini düşünüyorsanız, yardım için yardım merkezini ziyaret edin . 8 yıl önce kapalı . …

7
kaydedicinin parametre listesindeki konumu ne olmalıdır [kapalı]
Kapalı . Bu soru görüş temelli . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek ister misiniz? Bu yayını düzenleyerek gerçekler ve alıntılarla yanıtlanabilmesi için soruyu güncelleyin . 5 yıl önce kapalı . Kodumda, yapıcılarının parametre listesi aracılığıyla sınıflarımın çoğuna bir logger enjekte ediyorum Rastgele koyduğumu fark ettim: bazen listede …

5
Karmaşık yazılımlar ne kadar fazlalık / sağlamlık uygulamalıdır?
Bu sorunun odağı: Bazı yazılımlar, yazılımdaki bir veya daha fazla dahili hataya rağmen "sonuçta başarılı / tatmin edici" bir sonuç elde etme şansını artırmak için "fazladan çalışma" yapar ve bu hatalar meydana geldiğinde daha uzun bir yürütme süresi gerektirir. Sonuç başarılı olursa, tüm bunlar kullanıcının bilgisi olmadan gerçekleşir. Karmaşık yazılımın …

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.