Aikido

Kod tabanınızdaki kalıcı TODO ve FIXME yorumlarını nasıl kaldırabilirsiniz?

Bakım Kolaylığı

Kural
Kaldır kalan Yapılacaklar/Düzeltilecekler yorumları
Çözülmemiş TODO ve Düzeltilecek yorumlar ,
eksik çalışmayı ki birikebilir birikebilecek zaman zamanla
Sorunları sorunları takip sorunları sorun izleme yerine bırakmak onları bırakmak bırakmak bırakmakyerine.

Desteklenen diller: 45+

Giriş

TODO ve FIXME yorumları başlangıçta yararlı hatırlatmalar olarak ortaya çıkar, ancak kısa sürede kod tabanında kalıcı unsurlar haline gelir. Geçici bir not olarak düşünülmüş olan bu yorumlar, herkesin görmezden geldiği bir uyarı işareti haline gelir. Bu yorumlar, tamamlanmamış işleri, ertelenen kararları veya kimsenin düzgün bir şekilde takip etmediği bilinen sorunları gösterir. TODO yorumları içeren kodu yayınladığınızda, bir şeylerin yolunda olmadığını kabul etmiş olursunuz; ancak bunu düzeltmeye yönelik herhangi bir planınız yoktur.

Neden önemli?

Kodun bakım kolaylığı: TODO yorumları, kodun kullanıma hazır olup olmadığı ve eksiksizliği konusunda belirsizlik yaratır. Yeni ekip üyeleri, bu yorumların acil sorunları mı, yoksa artık kimsenin umursamadığı yıllar öncesine ait notları mı temsil ettiğini bilemez. TODO’lar ne kadar birikirse, kimse bunları o kadar az ciddiye alır; bu da kalite standartlarının bozulmasına yol açan “kırık pencereler etkisi”ni yaratır.

Teknik borç takibi: Yorumlarda gizli kalan sorunlar önceliklendirilmez, sorumlu atanmaz veya takip edilmez. Proje yönetim sisteminiz her şeyin tamamlandığını gösterirken, kod tabanında düzinelerce “bunu sonra düzelt” notu bulunur. Uygun bir takip sistemi olmadan, önemli sorunlar üretimde sorunlara yol açana kadar unutulur.

Güvenlik açısından etkileri: TODO yorumları bazen eksik güvenlik uygulamalarını veya bilinen güvenlik açıklarını işaret eder. Üretim kodunda “TODO: kimlik doğrulama kontrolü ekle” gibi bir yorum, bir güvenlik açığını tam olarak farkında olarak yayına aldığınız anlamına gelir. Bu işaretler, kodunuzu inceleyen saldırganların zayıf noktaları bulmasını kolaylaştırır.

Kod örnekleri

❌ Uygun değil:

async function processPayment(userId, amount) {
    // TODO: Add fraud detection before processing
    // FIXME: This doesn't handle concurrent payments

    const user = await db.users.findById(userId);

    if (user.balance < amount) {
        throw new Error('Insufficient funds');
    }

    // TODO: Add transaction logging
    user.balance -= amount;
    await user.save();

    return { success: true };
}
 

Neden yanlış: Üç kritik sorun (dolandırıcılık tespiti, eşzamanlılık, günlük kaydı) işaretlenmiş ancak çözülmemiştir; bu da bu işlevin eksik olarak yayınlandığını göstermektedir. Bu yorumlar, bilinen sorunları belgelemekte ancak bunların düzeltilmesine yönelik herhangi bir takip süreci ya da zaman çizelgesi içermemektedir.

✅ Uygunluk:

async function processPayment(userId, amount) {
    await fraudDetection.check(userId, amount);

    return await db.transaction(async (trx) => {
        const user = await trx.users
            .findById(userId)
            .forUpdate();

        if (user.balance < amount) {
            throw new Error('Insufficient funds');
        }

        user.balance -= amount;
        await user.save();

        await trx.auditLog.create({
            userId,
            action: 'payment',
            amount,
            timestamp: new Date()
        });

        return { success: true };
    });
}

Bunun önemi: Daha önce işaretlenmiş tüm sorunlar çözüldü. Dolandırıcılık tespiti devreye alındı, veritabanı işlemleri eşzamanlılığı yönetiyor ve denetim günlüğü tüm ödemeleri takip ediyor. Kod, eksikliklere ilişkin özür niteliğinde yorumlar içermeden tamamlandı.

Sonuç

Kodu üretim ortamına birleştirmeden önce TODO ve FIXME yorumlarını kaldırın. Çalışma tamamlanmamışsa, ya tamamlayın ya da proje yönetim sisteminizde uygun öncelik ve atama bilgileriyle takip edilebilir sorunlar oluşturun. Koddaki yorumlar proje planlaması açısından görünmez ve kod tabanınızın sürekli olarak tamamlanmamış gibi görünmesine neden olur.

Sık Sorulan Sorular

Sorularınız mı var?

Ya gerçekten bir şeyi daha sonra bakmak üzere işaretlemem gerekirse?

İzleme sisteminizde (Jira, GitHub Issues, Linear) bağlam, öncelik ve sorumlu bilgilerini içeren bir sorun oluşturun. Gerekirse, yorumda sorun numarasına bağlantı verin: // Planlanan yeniden yapılandırma için #1234 numaralı soruna bakın. Bu, işin proje yönetimi tarafından görülebilir olmasını sağlar ve doğru şekilde önceliklendirilmesini garanti eder.

Ya gerçekten bir şeyi daha sonra bakmak üzere işaretlemem gerekirse?

İzleme sisteminizde (Jira, GitHub Issues, Linear) bağlam, öncelik ve sorumlu bilgilerini içeren bir sorun oluşturun. Gerekirse, yorumda sorun numarasına bağlantı verin: // Planlanan yeniden yapılandırma için #1234 numaralı soruna bakın. Bu, işin proje yönetimi tarafından görülebilir olmasını sağlar ve doğru şekilde önceliklendirilmesini garanti eder.

TODO yorumlarının kabul edilebilir kullanım alanları var mı?

Henüz birleştirilmemiş taslak çekme isteklerinde veya özellik dallarında, TODO yorumları geliştirme sürecinde tamamlanmamış işlerin takibine yardımcı olur. Ana dala birleştirmeden önce, ya işi tamamlayın ya da TODO’ları takip edilen sorunlara dönüştürün. TODO yorumlarını asla üretim dallarına birleştirmeyin.

Eski kodlardaki TODO'ları nasıl ele almalıyım?

Bunları gruplar halinde gözden geçirin. Eski TODO’ların çoğu artık geçerliliğini yitirmiştir ya da zaten düzeltilmiştir. Geçerli sorunlar için biletler oluşturun ve yorumları silin. Yeni kodda TODO eklenemeyeceğine dair bir kural belirleyin. Bu, mevcut teknik borcu gidermeye çalışırken sorunların birikmesini önler.

Peki ya HACK veya OPTIMIZE yorumları?

Bunlar, TODO yorumlarıyla aynı sorunları barındırır. HACK, utandığınız ancak yine de yayına aldığınız kodu belirtir. OPTIMIZE ise performans konusunda vaktinden önce endişe duyulduğunu gösterir. Ya kodu düzeltin ya da özür niteliğindeki yorumlar olmadan olduğu gibi kabul edin. Gerçek performans gereksinimlerini kod yorumlarında değil, biletlerde belgelendirin.

Şimdi güvenliğinizi sağlayın

Kodunuzu, bulutunuzu ve çalışma zamanınızı tek bir merkezi sistemde güvenceye alın.
Güvenlik açıklarını otomatik olarak hızla bulun ve düzeltin.

Kredi kartı gerekmez | Tarama sonuçları 32 saniyede.