2009-12-09 22 views
9

Sınıfları ve arayüzleri belgelemenin en iyi yolu nedir? IFoo adında bir arabirimden türeyen Foo adında somut bir sınıfınız varsa söyleyin. Yorumlarınızı yöntemleriniz için nereye koyarsınız? Yorumlarınızı hem arayüzde hem de somut sınıfta kopyaladınız mı? Genellikle ancak, aynı şeyi söyleme, hem koyuyorlarKod Yorumlama: Kod açıklamalarınızı Arayüzlere mi yoksa Beton sınıflarına mı yoksa her ikisine mi yazıyorsunuz?

public class Foo : IFoo 
{ 
    /// <summary> 
    /// This function does something 
    /// </summary>   
    public void DoSomething() 
    { 
    } 
} 

public interface IFoo 
{ 
    /// <summary> 
    /// This function does something 
    /// </summary>   
    void DoSomething(); 
} 

cevap

18

hemen her zaman arayüzü kullanarak gereken kod ... kullanırken araç ipucu gibi çünkü

ben bunu.

Arabirimler üzerinde, arabirim üyeleri ve kullanımının ardındaki niyet hakkında yorum yapardım.

Uygulamalarda, belirli uygulama nedenleri üzerine yorum yaparım.

+3

+1 ... ve GhostDoc kullanıyorsanız, arayüz üyelerinden somut uygulamalara kopyalanan arayüz yorumları almak kolaydır. – Groo

4

: Burada

comments çoğaltıldığı bir örnektir. Arayüzün yorumu, bu yöntemin/arayüzün soyut amacını açıklamalıdır. Somut yorum, arayüzün amacı bağlamında yöntemin/sınıfın uygulama özelliklerini konuşacaktır.

3

Her ikisine de koydum, ancak bir şüphe duymalarını engellerim. Hem ilgili yorum koyardı

1

Gerçekten onları kullanmıyorum. Bunun yerine, kodun yapılandırıldığından emin olun ve tüm yöntemleri ve değişkenleri yorum yapmadan ne yaptıklarını açıkça belirtin. Yorumlarla ilgili sorun, derleme yapmamaları ve yürütmemeleri ve birim testleriniz tarafından test edilmemeleridir, bu yüzden onları kodla senkronize etmek neredeyse imkânsızdır.

+0

Bu yorumlar, daha sonra kodu anlamak için Intellisence ile kullanım içindir. Bakmaya zorlandıklarına katılıyorum, ancak API'ları keşfetmek için çok yardımcı olabilirler. –

+0

Heah, sanırım farklı bir ekipten birisi için bir API geliştirirken kullanışlıdırlar. – Grzenio

1

Yalnızca arabirimler içindir. Çünkü bu durumda onları senkronize etmem gerekmiyor. IDE'm somut sınıflardaki arayüz yorumlarını görmeme yardımcı oluyor. Ve api belge üreticisi aynı şeyi yapar.

3

Kod örneği açık arabirim uygulaması kullanmaz senkronize halde tutmak için işlevsellik inşa edilmiş olsaydı. Kodunuzun istemcisi, yöntemi bir sınıf nesnesi veya arabirim başvurusu aracılığıyla çağırabildiğinden gerek duyacaktır. Açık arabirim uygulamasıyla, istemci hiçbir zaman göremediği için sınıf yöntemi yorumunu atlayabilirsiniz. Bu, IntelliSense bilgisini oluşturmak için XML belgelerini kullandığınızı varsayar. Her somut uygulama yerine getirmek için ihtiyaç sözleşme tanımlar beri

2

bir etiket <referTo>System. .... </referTo>, yorum

1

İdeal olarak, sadece arayüz belgelenmiş gereken ideal olacaktır bağlamak.

İlgili konular