Sık sık işimdeki bir uygulamada hata ayıklamakla görevlendirildim. Test ortamını ve üretim ortamını içeren işletmelere dağıttığımız bir BI Uygulamasıdır. Bu kısıtlamalara dayanarak insanların önerebileceği uygulamalar / araçlar / yöntemler olup olmadığını merak ediyorum:
Hata ayıklayıcı, istemci sitesinde veya yerel olarak kullanılamaz, çünkü yazılım, test ortamlarına sahip olmadığımız özel üçüncü taraf uygulamalarına bağlıdır. (DÜZENLEME: adil olmak gerekirse, bazı durumlarda yerel olarak hata ayıklamak mümkündür. Çekirdek kod dışında bir şey kullanmazsak. Sorunlu kodun çoğu üçüncü tarafa özel iletişimi kapsayan bir dll'de bulunur: soketler, proses boruları, sabun çağrıları, Çekirdek kodun davranışını değiştiren özel mantık. Genellikle bir istemci için uygulama veya geliştirme sırasında bu alana yeni bir kod yazardık.)
Uygulamalarımızda neredeyse hiç günlük kaydı yok. Birim testi yoktur.
Sürüm kontrolü, tam çözümün yalnızca 1 sürümüne sahiptir (2005 safe safe kullanarak). Bu nedenle, tüm çözümün önceki bir sürümünü elde etmek mümkün değildir, sadece tek tek dosyalar. (Birisi bunun yollarını bilmediği sürece).
Yerel olarak çoğaltılamaz, çoğu zaman zamanlar test ortamında çoğaltılamaz (Test ve üretimin aynı sürüm olmaması yüksek olasılıktır).
İstemcinin kullandığı sürümün kaynak kasadakinden farklı olma olasılığı yüksektir. Bunun nedeni, belirli bir istemci için özel mantık katıştırılmış tek tek dosyaların güncelleştirilmesidir. Çoğu zaman, diğer birkaç ikili dosyada değişiklik gerektiren bir ikili dosyada güncelleme yapılır, ancak bir taahhüt tamamlandığında, hiç kimse bununla ilgili herhangi bir kayıt veya bilgiye sahip değildir. Gördüğüm biraz yaygın bir hata, bir istemci ortamında 'İşlev / Yöntem bulunamadı' veya 'Yöntem çağrısı çok fazla / çok az parametre belirtildi'.
Bu bir .net VB çözümüdür
İstemci sitelerine herhangi bir yazılım yüklenemez, ancak yerel olarak yüklenebilir
Uygulamamız son derece özelleştirilebilir, ancak maalesef özelleştirme mantığı, istemci başına veritabanında yapılan özel değişiklikler de dahil olmak üzere ön uçtan veri katmanına kadar tüm sınıflara ve dosyalara yayılmıştır.
Kodda neredeyse hiç yorum yok. Mimari hakkında hiçbir belge yoktur. API hakkında hiçbir belge yok. Sahip olduğumuz tek şey, neler olup bittiğini biraz açıklayan yüzlerce e-posta zinciri. Kodu bilen tek kişi, orijinal olarak onu yazan kodlardır, ancak artık söyleyecek şekilde geliştirici değildirler, bu yüzden çok fazla dahil olmuyorlar.
Ve söylemeden önce ... evet biliyorum; Kendimi de vurmak istiyorum. Spagetti kodu, yüzlerce derleyici uyarısı ve GERÇEKTEN düzeltilmesi gereken kırık polimorfizm olmasına yardımcı olmaz, ancak içinde bir sözüm yok.
Karşılaştığım en yaygın hata türleri null referans hataları, geçersiz dökümler ve eksik işlevler / işlev imza uyumsuzluklarıdır. Bazen şanslıyım ve olay görüntüleyici sınıfı, yöntemi ve istisna mesajını kaydedecektir. En yararlı değil, ama yine de bir şey. En kötüsü, izleme olmayan, ekran görüntüsünün yanı sıra repro adımları olmayan hatalardır ve yukarıda belirtilenler gibi genel hata mesajlarıdır. Bazen neden ortaya çıktıklarını bulmak mümkün değildir, sadece ortamın düzgün yapılandırılmadığından ve daha sonra ortadan kalkacağından dua etmek mümkün değildir.
Bunun biraz rant olarak geldiğini biliyorum ve bir dereceye kadar öyle. Ama seçenekler için umutsuzum. Kullanabileceğim başka yöntemler / araçlar var mı?