Debugger
1. Workcube Debugger Nedir?
Workcube Debugger, Workcube mimarisinde (DEV / Dev Tools / WorkDev altında) yer alan, uygulama geliştiricilerine ve sistem yöneticilerine sunulmuş gelişmiş bir kod ve sorgu analiz aracıdır. ColdFusion altyapısında çalışan sayfa isteklerini (requests), AJAX çağrılarını, şablon (template) çalışma sürelerini ve veritabanı SQL sorgularını gerçek zamanlı izler.
Workcube mimarisinde kontrol paneli üzerinden açılıp kapatılabilen Debug aracı; Workcube modüllerinde meydana gelen performans darboğazlarını, veritabanı yavaşlıklarını ve hataları tespit etmek için merkezi bir kontrol mekanizması sunar.
2. Bir İşletme İçin Debug'in Önemi
Yazılım ve sistem mimarisinin sağlıklı işlemesi, kurumsal ERP süreçlerinin kesintisiz devam etmesi açısından kritik önem taşır. Workcube Debug modülünün sunduğu temel avantajlar şunlardır:
- Performans Optimizasyonu: Sayfa yükleme sürelerini artıran yavaş SQL sorgularını ve ağır çalışan CFM şablonlarını milisaniye (ms) düzeyinde tespit eder.
- Hızlı Hata Tespiti (Troubleshooting): Hatalı veritabanı işlemlerini ve mantıksal hataları anında yakalayarak canlı sistemdeki kesintileri minimuma indirir.
- Kod Kalitesi ve İzlenebilirlik: Çalıştırılan kod dosyalarını düzenli bir istek havuzunda (History Pool) saklar ve Monaco Editor entegrasyonuyla ilgili koda doğrudan erişim imkanı sunar.
- Güvenlik ve Yetkilendirme Kontrolü: Yetkisiz kullanıcıların debug verilerine erişimini engelleyen katı güvenlik yetki seviyeleri (Modül yetkisi 42, Admin veya Root yetkisi) ile hassas sistem verilerini korur.
3. Workcube'de Süreç Akışı / Yaşam Döngüsü
Workcube Debug mekanizmasının çalıştırma ve izleme adımları aşağıdaki gibidir:
Aşama | Modül / Belge / Nesne | Açıklama |
|---|---|---|
1. Debug Aktifleştirme | Sağ Kontrol Paneli (rightBarObjects.cfm) | Geliştirici veya admin yetkisine sahip kullanıcı sağ panelden Debug modunu açık konumuna getirir. |
2. İstek Yakalama & Havuzlama | Session (workcube_debug_history) | Kullanıcı sitede işlem yaptıkça (AJAX veya Ana İstek) yapılan son 15 istek özel bir filtreleme mekanizmasıyla hafızaya alınır. |
3. Yetki & Güvenlik Doğrulaması | dsp_debug_output.cfm | Erişim sağlayan kullanıcının user_level 42, is_admin yetkisi veya Root (userid=1) olup olmadığı denetlenir; aksi halde erişim engellenir. |
4. Şablon Analizi (Templates Tab) | Dev Tools / Monaco Editor | Sayfada çağrılan CFM şablon dosyaları sıralanır, çalışma süreleri analiz edilir ve istenirse Monaco Editor ile doğrudan koda gidilir. |
5. SQL & Metrik Analizi (Queries & Timers Tab) | Workcube Debugger Arayüzü | Çalıştırılan SQL sorguları, dönen kayıt sayıları ve toplam execution süreleri grafiksel/tablosal metriklerle incelenir. |
4. Debug İşlemlerini Yönetirken Nelere Dikkat Etmeli?
A. Yetkilendirme ve Canlı Ortam Güvenliği
Debug modülü, veritabanı sorgularını ve veri yapısını açıkça gösterebileceği için hassas veri güvenlik riski taşır. Yetkisiz erişimlerin engellenmesi için kullanıcı bazlı Modül 42 yetkisi ve Admin denetimleri aktif tutulmalıdır.
Workcube İpucu: Debug arayüzü yalnızca session.ep.user_level listesinde 42 numaralı yetkiye sahip olanlara, şirket adminlerine (is_admin eq 1) veya ana kullanıcıya (userid eq 1) geçit verir. Canlı ortamda genel kullanıcılara kesinlikle 42 numaralı modül yetkisi verilmemelidir.
B. Canlı Sistemde Debug Kullanım Süresi
Debug modunun sürekli açık tutulması session üzerinde bellek yükü oluşturabilir. İstek havuzu varsayılan olarak son 15 istekle sınırlandırılmış olsa da işlem tamamlandıktan sonra kapatılması önerilir.
C. SQL Sorgularının ve Performans Metriklerinin İncelemesi
Queries sekmesinde yüksek execution süresine (ms) sahip sorgular, veritabanı indeks eksikliğini veya yanlış JOIN yapılarını işaret eder. Dönen kayıt sayısı ile harcanan zaman orantısı mutlaka analiz edilmelidir.
D. Monaco Editor ve Kod Doğrudan Erişim Entegrasyonu
Templates sekmesinde yer alan dosya yollarının yanında bulunan Monaco butonu sayesinde tespit edilen yavaş koda anında geliştirme ortamında müdahale edilebilir.
Workcube İpucu: Debug ekranındaki şablon listesinde dev.monaco entegrasyonu sayesinde ilgili dosya yolundaki Monaco butonuna tıklandığında kod doğrudan düzenleyici ekranında açılır. Böylece dosya dizininde arama yapmadan hatayı kaynağında düzeltebilirsiniz.