Clojure kodu için yazılım ölçümlerini toplamak üzere statik bir analizör yazmayı düşünüyoruz. Tabii ki, dosya sayısı, fonksiyonlar, fonksiyon başına parametreler gibi bariz şeyleri ele alacaktır. Clojure koduna özgü herhangi bir metrik var mı diye merak ediyorum. Herhangi bir fikir?Clojure programları için özel yazılım ölçütleri
Ortalama olarak
15
A
cevap
13
- Ben yazılım ölçütleri şüpheli bir fikir olduğunu düşünüyorum - onlar genellikle gerçekten önemli soru dikkatini dağıtmak "Biz müşteriye teslim edilir ne kadar değer ??".
Ben bazı bağlamlarda gerekli bir kötülük olabilir tanımak ve zaman zaman kod tabanı hakkında bazı ihtiyaç duyacağı bilgiler size verebilir, Having.Burada Clojure'a özgü bir kaç tane var. üst düzey tanımlamaktadır
- sayısı (belki de toplam sembolüne bir oran olarak ifade sayısı?)
- Java bağlama: (., yeni SinifAdi, .someMethod vs.), Java birlikte çalışma ile ilişkili sembollerin% - ideal Java birlikte çalışmasından sorumlu belirli modüllerle sınırlı olan bağlantıyı sürdürün, yani birlikte çalışmayı yöneten kütüphaneler dışında her yerde% düşük olmalıdır. fonksiyon defns ait
- Ortalama maksimum yuvalama seviyesi (I 5ish iyi tahmin 10+ kötü ??)
- Makro yoğunluğu: Docstringler ile fonksiyonların
- % sembollerin
- % makro genişleme gerektiren formlarının veya% türüyle tanımlanmış fonksiyon parametreleri anonim fonksiyonların
- Ortalama boyutu (bunlar muhtemelen küçük olmalı!) kullanılan clojure.core içinde fonksiyonların
- % ipuçları (kod "kelime aralığında" ve sofistike bir fikir verir)
- (Teşekkür ederiz s nickik!) yaratılan ref tiplerinin sayısı (dinamik vars, atom, ref ve agent) - eğer değişken durumunuzu dikkatli bir şekilde kontrol etmek istiyorsanız önemlidir!
Not; Eğer bu işe yararsanız, farklı açık kaynak clojure projelerinin bazılarındaki sonuçlardaki değişimi görmek gerçekten ilginç olurdu!
İlgili konular
- 1. Clojure Özel İstisnalar?
- 2. Özel Transit yazıcısı, Clojure için Joda time
- 3. Clojure - gönderi makrosu özel mi?
- 4. Yuvalanmış hasOne varlık için GORM sorgu ölçütleri
- 5. PHP Performans Ölçütleri
- 6. Varlık (donanım ve yazılım) varlıklarını yönetmek için yazılım
- 7. BlackBerry için C++ programları hazırlayabilir miyim (örnekler?)
- 8. Java programları için yamalar nasıl açılır
- 9. Silverlight 2 için Canvas yardımcı programları 2
- 10. Sublime C++ programları için konsol girişli metin
- 11. Touchpad'im için yazılım nasıl yazılır?
- 12. Symfony'de özel yardımcı programları ve yardımcıları depolamanın simetri yolu 2
- 13. okuma: kabuk programları
- 14. clojure için Slimv ayarları
- 15. Bazı ölçütleri karşılayan göstergeler alın
- 16. Hazırda Bekletme Ölçütleri ayıklama Tarihi
- 17. Yazılım oluşturma modu - WPF
- 18. 64 bit platformda 32 bit programları derlemek için gcc gç
- 19. Clojure
- 20. Clojure
- 21. Clojure
- 22. Clojure
- 23. Clojure
- 24. Clojure
- 25. Clojure
- 26. Clojure
- 27. Cant programları C Ubuntu'da programlar
- 28. Clojure
- 29. Clojure
- 30. Clojure
Metrik metrik duyarlılığı anlıyorum. Bence metrikler problemli bölgelere zum yapmak için sadece faydalıdır. Güzel cevap btw. –
Kontig referans türleri gerçekten gelişecektir. Ref/atom/ajan ve dinamik vars sayımı (1.3'de). – nickik
@nickik - tamamen katılıyorum ref türleri çok önemlidir. Yine de statik bir analizörde kullandığınız metriği anlamaya ne kadar zor? Öngördüğüm sorun, bu genellikle dinamik olarak tahsis edilir, bu yüzden sadece ref/atom/agent sembollerini saymak için kesinlikle gerekli değildir ..... yine de – mikera