Yeniden düzenleme yorumlarıyla kod yaymak iyi bir fikir midir?


11

Bir "spagetti-code" projesi üzerinde çalışıyorum ve hataları giderirken ve yeni özellikler uygularken, kod birim test edilebilir hale getirmek için bazı yeniden düzenleme yapmak.

Kod genellikle o kadar sıkı bağlanır veya karmaşıktır ki, küçük bir hatayı düzeltmek birçok sınıfın yeniden yazılmasına neden olur. Bu yüzden yeniden düzenlemeyi bıraktığım kodda bir yere bir çizgi çizmeye karar verdim. Bunu netleştirmek için, durumu açıklayan koddaki bazı yorumları bırakıyorum, örneğin:

class RefactoredClass {
    private SingletonClass xyz;

    // I know SingletonClass is a Singleton, so I would not need to pass it here.
    // However, I would like to get rid of it in the future, so it is passed as a
    // parameter here to make this change easier later.
    public RefactoredClass(SingletonClass xyz) {
        this.xyz = xyz;
    }
}

Veya başka bir parça kek:

// This might be a good candidate to be refactored. The structure is like:
// Version String
//    |
//    +--> ...
//    |
//    +--> ...
//          |
//    ... and so on ...    
//
Map map = new HashMap<String, Map<String, Map<String, List<String>>>>();

Bu iyi bir fikir mi? Bunu yaparken nelere dikkat etmeliyim?


1
ilgili / yinelenen: TODO yorumları anlamlı mı?
gnat

3
Bu görüş temelli bir konudur; ama benim kişisel görüşüm, bu tam olarak yararlı bir yorum türü ve keşke diğer insanların kodunda bulmak istiyorum: size zaten kod açıkça belirgin olmayan önemli bilgiler söyler; değil neyi bir yöntem yok, ama neden .
Kilian Foth

2
HashMap <Dize, Harita <Dize, Harita <Dize, Liste <Dize>
>>>

5
Bir kod parçasının neden kötü kokulu göründüğünü söyleyen yorumlar inanılmaz derecede takdir ediliyor. Ben kod tabanı hakkında anlayış olmayabilir, bu yüzden ben sadece bir sorun göreceğim ve "Ne lanet?", Ama neden olduğu gibi açıklayan bir yorum daha hızlı kod etrafında almak yardımcı olacaktır. Evet, bunu çok yap. (Elbette kodu WTF olmayacak şekilde düzeltemeyeceğinizi varsayarsak!)
Phoshi

Yanıtlar:


13

Yeniden düzenleme yorumlarıyla kod yaymak iyi bir fikir midir?

Yeniden düzenleme işleminizi bitirmek için zaman ayırdıysanız ve gerçekten yaparsanız, evet - işe yarayacaktır.

Bunu yaparken nelere dikkat etmeliyim?

Modern IDE'lerin TODO satırlarını bulma ve gösterme seçeneği vardır. Bunları zaman zaman kontrol etmeli ve mümkün olduğunca sayılarını azaltmaya çalışmalısınız.


2

Böyle düşünceler yapacak /// @todoiçin bir yorum doxygen veya kolay yüklemek için javadoc özel etiket otomatik API dokümanlar todo bölümüne ayıklanır, böylece. Düz yorumlar çok kolay göz ardı edilecek ve sonunda kod derinliklerinde kaybolacak.


BTW: Bu iyi bir fikir:

hataları giderirken ve yeni özellikler uygularken, kod birimini test edilebilir yapmak için de bazı yeniden düzenleme işlemleri yapıyorum

Bence (tecrübe ile biliyorum!), Yeniden düzenleme çok tehlikeli olabilir, özellikle de birim testler olmadığında. Bu yüzden yapılacaklar yorumları ekleme konusundaki ekstra çalışmalarınızı (hataları düzeltirken vb.) Kısıtlamanız daha iyi olur ... Hepimiz biliyoruz: mümkün olduğunda;)


kod snippet'i Java gibi okuyor, neden Doxygen'i öneriyorsunuz?
gnat

Doxygen'in @todo'yu desteklediğini biliyordum - javadoc için emin değildim - ama dil gerçekten çok önemli mi? Benim açımdan, java örneği daha derin bir problemi gösterdi.
Kurt

1
@gnat: Sence şimdi daha mı iyi?
Wolf
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.