Eclipse kod satırlarını sayma


107

Metrics eklentisini denedim ve güzel olmasına rağmen patronumun aradığı şey bu değil. Sadece bir }olan bir satırı satır olarak sayar ve "bu bir çizgi değil, bir stil seçimi" olarak sayılmasını istemez. Ayrıca, sağlanan ölçümler hakkında bir tür rapor oluşturmam gerekiyor. Bunun için iyi araçlar var mı?


1
Yan soru: Bu, yazılım geliştiricilerinizin ne kadar iyi çalıştığını göstermek için bir ölçüt olarak mı kullanılacak? Eğer öyleyse karakter / boşluk olmayanların sayısı daha iyi olabilir. Yine de gerçekten keyfi bir ölçü gibi görünüyor ... Bir arkadaşınızın belirttiği gibi: "genel olarak bir sorunu çözmek için daha fazla kod satırı, aynı sorunu çözmek için daha az kod satırından daha iyi (veya daha kötü) değildir"
Sancarn

Yanıtlar:


94

Eclipse Metrics Eklentisini yükleyin . Bir HTML raporu oluşturmak için (isteğe bağlı XML ve CSV ile) right-click a project -> Export -> Other -> Metrics.

Boş ve salt yorum satırlarını yok sayarak veya isterseniz Javadoc'u hariç tutarak Kod Satırları metriklerini ayarlayabilirsiniz. Bunu yapmak için adresindeki sekmeyi kontrol edin Preferences -> Metrics -> LoC.

Bu kadar. Küme parantezlerini hariç tutmak için özel bir seçenek yoktur {}.

Eklenti, LoC'ye Number of Statements adlı alternatif bir ölçüm sunar . Yazarın bu konuda söylemesi gereken şey bu:

Bu metrik, bir yöntemdeki ifade sayısını temsil eder. Bunu, Kod Satırlarından daha sağlam bir ölçü olarak görüyorum çünkü ikincisi, farklı biçimlendirme kurallarına göre kırılgan.

Düzenle:

Sorunuzu açıklığa kavuşturduktan sonra, derleyici uyarıları veya hataları gibi gerçek zamanlı ölçüm ihlalleri için bir görünüme ihtiyacınız olduğunu anlıyorum. Patronunuz için raporlar oluşturmak için bir raporlama işlevine de ihtiyacınız var. Yukarıda anlattığım eklenti raporlama içindir çünkü metrikleri görmek istediğinizde dışa aktarmanız gerekir.


Tam aradığım şey ve güzel ihracat özelliği.
george_h

1
Bu eklentinin mevcut sürümü (3.14.1) Eclipse Luna (4.4) ile çalışmıyor gibi görünüyor. Şaşırtıcı bir şekilde, Sourceforge'un antik Metrics eklentisi hala çalışıyor ...
ejain

Birçok kişi artık çalışmadığını bildiriyor, ancak SourceForge'da kimse hata bildirmiyor ...
Thomas Weller

6
Evet. Altında herhangi bir seçenek göremiyorum right click a project -> Export, eklentiyi doğrudan eclipse marketplace'den yükledim - sürümdür - Eclipse Metrics 3.12.0, herhangi biri bana yardım edebilir mi? Teşekkürler!
OverrockSTAR


263

Her zaman "kaba kuvvet" vardır:

  1. Ara-> Dosya

  2. Aşağıdakileri "İçeren metin" -> alanına yazın ^.*$. Ardından "Normal İfade" onay kutusunu işaretleyin

  3. Aşağıdakileri "Dosya adı kalıpları" na yazın -> *.java

  4. "Ara" yı tıklayın

  5. "Ara" Sekmesinde eşleşme sayısını kontrol edin.


11
Bu tam olarak aradığımı yaptı. Parantezleri veya süslü herhangi bir şeyi hariç tutmuyor, ancak aradığım yanıtı, EKİPLER OLMADAN tutulmada veriyor. Teşekkürler!
Luke

24
Ayrıca kullanabilirsiniz \n[\s]*ve boş satırları da yok
sayar

3
Başka bir eklentiye ihtiyaç duymadan çok güzel bir çözüm! +1
Stephan

2
Bu, en son (neon) tutulma ile çalışır, ancak ölçüm eklentisi çalışmaz
Anatoly Yakimchuk

2
@omerio yorumları da yazılmalıdır ve herhangi bir kaynak kodunun gerekli bir parçasıdır. Bunları saymamak, önemli olmayacaklarını ya da sadece kör bir metin olduklarını - ki bu ciddi bir hata.
Axel Amthor

23

OSX veya * NIX kullanıyorsanız

* .Java dosyalarından java kodunun tüm gerçek satırlarını alın

find . -name "*.java" -exec grep "[a-zA-Z0-9{}]" {} \; | wc -l

* .Java dosyalarındaki boş satırlar ve yorumlar içeren tüm satırları alın

find . -name "*.java" -exec cat | wc -l

Dosya başına bilgi alın, bu size [dosyaya giden yol + "," + satır sayısı] verecektir

find . -name "*.java" -exec wc -l {} \;

OSX'te ilk komutu çalıştırıyorum: grep: geçersiz karakter aralığı 0
omerio

Bu bulmam için çalıştı. -name "* .java" | xargs kedi | grep '[alnum]' | wc -l
omerio

2
olmalıfind . -name "*.java" | xargs cat | grep "[a-zA-Z0-9{}]" | wc -l
warrior107

8

Başka bir yol, örneğin LocMetrics gibi başka bir loc yardımcı programını kullanmaktır .
Ayrıca diğer birçok loc aracını da listeler . Eclipse ile entegrasyonu (onunla olacağı gibi, her zaman olmaz Metrics2 o daha yeni bir sürümü olduğu için göz atabilir Metrik ), ama en azından bu araçlar vadede nedeni olabilir mantıksal hatları (toplayarak hesaplanır terminal noktalı virgül ve terminal küme parantezi). Tutulma metriklerinin beklediğinize daha uygun olup
olmadığını da kontrol edebilirsiniz .


7

Başka bir araç da, hata durumunda projeyi oluşturamasanız bile metrikleri çalıştırmanıza izin veren Google Analytix'tir .


Site, tutulmanın yalnızca eski sürümleri için olduğunu söylese de, benim için Luna'da gayet iyi çalışıyor. Bunun için teşekkürler.
CamHart

7

Eclipse'de kod satırlarını saymanın olası bir yolu:

Ara / Dosya ... menüsünü kullanarak, Dosya Arama sekmesini seçin, İçeren metin için \ n [\ s] * belirtin (bu, boş satırları saymaz) ve Normal ifadeyi işaretleyin.

Şapka ipucu: www.monblocnotes.com/node/2030


vay, bu süper bir dahi.
Numaraya

1

Kaynak kod satırlarını sayabilen bir Eclipse eklentisi oluşturdum. Kotlin, Java, Java Script, JSP, XML, C / C ++, C # ve diğer birçok dosya türünü destekler.

Lütfen ona bir göz atın. Herhangi bir geri bildirim memnuniyetle karşılanacaktır!

git-hub deposu burada


0

ProjectCodeMeter, LLOC'yi (mantıksal kod satırlarını) tam olarak sizin tanımladığınız gibi sayar (yalnızca etkili satırlar). Eclipse'e harici kod ölçüm aracı olarak entegre olur , gerçek zamanlı olmasa da bir rapor oluşturur. aslında karmaşıklık, aritmetik karmaşıklık, kodlanmış dizeler, sayısal sabitler gibi birçok kaynak kodu metriğini sayar. hatta geliştirme süresini saat cinsinden tahmin eder .


0

Statik analiz için kullandığım ve ishal SonarQube tavsiye ettik sadece tüm hakkında olasılıkla istediğiniz ölçümleri üzerindeki dillerin geniş ve temel versiyonunda ücretsiz (sen dillerin ı ediyorum türlerini analiz etmek ücret zorunda sadece kafama silah dayayarak kodlayın).

Analizi kaynak kod deponuzdan çalıştıran bir web uygulaması olarak yüklemeniz gerekir, ancak aynı zamanda bir Eclipse eklentisine de sahiptir .

Projenizde bir defaya mahsus kaç satır kod olduğunu bilmek istiyorsanız, bu çok fazla. Zaman içinde ölçümleri izlemek, projeler arasında karşılaştırma yapmak, bir eşik aşıldığında yangın uyarıları vb. İstiyorsanız bu harika.

Açıklama: SonarSource ile hiçbir mali ilişkim yok.


0

Yapmanız gereken ilk şey, "kod satırı" (LOC) tanımınızı belirlemektir. Her ikinizde de sorunuzda

Yalnızca bir} olan bir satırı satır olarak sayar ve "bu bir çizgi değil, bir stil seçimi" olarak sayılmasını istemez.

ve yanıtlarda, ör.

Boş ve salt yorum satırlarını yok sayarak veya isterseniz Javadoc'u hariç tutarak Kod Satırları metriklerini ayarlayabilirsiniz.

İnsanların bir kod satırını neyin oluşturduğu konusunda farklı fikirlere sahip olduğunu söyleyebilirsiniz. Özellikle, insanlar kod satırlarının sayısını mı yoksa ifade sayısını gerçekten isteyip istemedikleri konusunda genellikle belirsizdirler. Örneğin, aşağıdaki gerçekten uzun bir satır ifadelerle doldurulmuşsa, neyi rapor etmek istersiniz, 1 LOC veya yüzlerce ifade?

{ a = 1; b = 2; if (a==c) b++; /* etc. for another 1000 characters */ }

Ve birisi size bir LOC adını verdiğinizi sorduğunda, "benim bir LOC tanımım Metrics2'nin tanımıdır" olsa bile yanıtlayabildiğinizden emin olun. Genel olarak, en yaygın biçimlendirilmiş kod için (benim örneğimin aksine), popüler araçlar oldukça benzer sayılar verecektir, bu nedenle Metrics2, SonarQube, vb. Tutarlı bir şekilde kullandığınız sürece, hepsi iyi olmalıdır. Başka bir deyişle, bir araç kullanarak bazı kodların LOC'larını saymayın ve bu değeri, bu kodun farklı bir araçla ölçülen sonraki bir sürümüyle karşılaştırın.

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.