Bir fonksiyonun maksimum uzunluğu için kanıtlanmış olan nedir? [kapalı]


43

İşlev uzunluğu bir programcının verimliliğini etkiler mi? Öyleyse, verimlilik kaybını önlemek için iyi bir maksimum hat sayısı nedir?

Bu çok tartışılan bir konu olduğundan, lütfen talebi bazı verilerle yedekleyin.


6
Uzunluk, LOC cinsinden ölçülmemeli, tam olarak ne yaptığını anlamak için gereken zaman miktarında ölçülmelidir. Ve bu uzunluk bir dakikadan fazla olmamalıdır. Birkaç saniye içinde çözemezsem, muhtemelen çok fazla şey yapıyor ... bir dakika sonra, kesinlikle öyle.
CaffGeek


13
Maksimum uzunluk 17 olmalıdır.
ThomasX

1
SOLID'de S'i düşünün.
Kris Krause

1
@CaffGeek Veya belki de işlev basit olmayan önemsiz bir şey yapmaktır. Tam olarak anlamam günlerimi alacak fonksiyonları gördüm. İlgili tüm kavramları anladığım fonksiyonlar bile ayrıntılarla çalışmak için yarım saat sürebilir. Önemsiz işlevlere sahip olmak güzel olsa da, birçok sorun doğal olarak zordur.
KodlarInChaos

Yanıtlar:


46

1970 yılında bu çılgın rakete girdiğimden beri, bir sayfadan fazla yazdırılması gereken tam bir modül gördüm (yaklaşık 60 satır). Daha uzun süren birçok modül gördüm.

Bu konuda daha uzun modüller yazdım, ancak bunlar genellikle büyük anahtar ifadeleri olarak yazılmış büyük sonlu durumlu makinelerdi.

Sorunun bir kısmı, programcılara bugünlerde işleri modüler hale getirmediği anlaşılıyor.

Dikey alan israfını maksimize eden kodlama standartları da sorunun bir parçası gibi görünmektedir. ( Gerald Weinberg'in " Bilgisayar Programcılığının Psikolojisi " ni okuyan bir yazılım yöneticisi ile henüz görüşmedim . Weinberg, çok sayıda çalışmanın programcının kavranmasının esasen programcının herhangi bir anda görebilecekleri ile sınırlı olduğunu gösterdiğini belirtti. programcının bir sayfayı kaydırması veya bir sayfayı çevirmesi gerekir; anlamaları önemli ölçüde düşer: hatırlamaları ve soyutlamaları gerekir.)

FORTH'tan elde edilen iyi belgelenmiş programcı üretkenlik kazanımlarının çoğunun kaynak kodu için FORTH "blok" sisteminden kaynaklandığına ikna oldum : modüller mutlak maksimum 16 satır 64 karakterle sınırlıydı. Sonsuz bir faktör olabilir, ancak hiçbir koşulda 17 satırlık bir rutin yazamazsınız.


3
FORTH'un tüm felsefesi, bunu teşvik etmek için tasarlandı ... Kendi kelime hazneni tasarlaman, programlarını daha küçük ve daha küçük parçalara ayırmak, daha az senaryo ve daha fazla sözlük kullanmakla bitirdin. Yalnız uzunluk limitleri yapmaz - sadece bazı kodlama standartlarını karşılamak için rastgele parçalara ayrılmış bir rutin görürsünüz. Bence programcıların basitçe "şeyleri modüler hale getirme dersi verilmediğinden" şüpheleniyorsanız kesinlikle haklısınız; bu , OOP'un en büyük kazancından biri olmalıydı , ancak çeşitli nedenlerden dolayı genellikle kendi başına bir hedef olarak vurgulanıyor.
Shog9

1
@Bay. CRT: Blok yönelimli FORTH uygulamalarında FORCED modülerleşmesinde uzunluk sınırları. Çoğu FORTH'un etkileşimli doğası, küçük modülleri teşvik ederek ve bu modüllerin hızlı test edilmesini sağlar. Dosya tabanlı bir FORTH olan D85 modülerleşmeyi zorlamadı ve D85 ile oynayan adamların bir sürü yayın yapan programcı-bilinç-bilinçlilik modülünü sonsuza dek onunla birlikte çalıştığını gördüm. Dolayısıyla benim inancım. (. Ne 's değerinde için, benimle Liz Aksine fikirde O ağırlıklı ORTAYA verimlilik artışı sağlar etkileşim olduğunu düşünür.)
John R. STROHM

2
+1 bana "Bilgisayar Programcılığının Psikolojisi" kitabını tanıtacak :) :)
Samuel

30

Doğru beden nedir, gerçekten mi?

Kullandığınız dile, fakat genel olarak (ve kişisel zevkime göre):

  • İdeal olarak , 25 çizgiden az.
  • Kabul edilebilir şekilde , 35 çizgiden az.

Daha fazla ise, o zaman daha sonra gelip tekrar çalışmam gereken bir şey.

Ancak gerçekçi olarak , bir şeyi teslim etmeniz gerektiğinde ve bu şekilde tükürme anında daha mantıklı gelmesi gereken her boyut, bazen göndermeden önce birisinin incelemesini daha da kolaylaştırır. (ama yine de daha sonra geri almak).

(Son zamanlarda ekibim kod temeli üzerinde bir program yürüttü: sınıfı 197 yöntemle, diğeri sadece 3 yöntemle bulduk ama bunlardan biri 600 satırdı. Sevimli oyun: 2 kötünün en kötüsü nedir?)


Şimdi daha fazla zen cevabı için ... Genel olarak, bir veya iki büyük adamdan alıntı yapmak için iyi bir uygulama (TM) olarak kabul edilir, işte burada:

Her şey mümkün olduğunca basit yapılmalı, ancak basitleştirilmemelidir. - A. Einstein

Artık nihayet ekleyecek bir şey olmadığında değil, alınacak bir şey olmadığında da elde edilir. - A. de Saint Exupéry


Yorum Stillerine İlişkin Zeyilname

Buna ek olarak, işlevleriniz niyetlerini açıklayan net isimlere sahip olmalıdır. Yorumlar hakkında, genellikle bir işlev içinde yorum yapmam:

  • comments demek "neden?" ,
  • kod "nasıl?" diyor .

Her işlevin en üstünde bir açıklama bloğu (açıklama gerektiren) yeterlidir. Eğer fonksiyonunuz küçükse ve fonksiyon isimleri yeterince açıksa, neye ulaşmak istediğinizi ve nedenini söylemelisiniz. Satır içi yorumları yalnızca bazı dillerde alanlar için veya blok açıkken, amaç belirsizse 25-35 satır kurallarını kıran işlevler için kullanırım. İstisnai durumlar ortaya çıktığında kodun içindeki bir blok yorumunu kullanırım (örneğin, herhangi bir şey yapmak istemediğiniz veya bir şey yapmak istemediğiniz bir alıcı bloğu, nedenini söyleyen bir yorum yapmalıdır).

Daha fazla bilgi için, lütfen okuyun cevabım üzerine Tarzı ve yorumlama kod öneriler


@ haylem sanırım bu Freddy vs Jason :-) 'ın programcı versiyonu
Gaurav

katılıyorum, ancak ekleyeceğim bir ekran sayfasının boyutunda olmalı. Bir ekran sayfasında 72 çizginiz varsa, işlev 72 çizgiyi geçmemelidir.
Ekran Adı

@ Tek bir işlevin ekran sayfalarında kaydırılmayacak şekilde tutulmasını sağlama meselesi vardır, ancak bu genellikle öncelikli meselem değil. Endişem, bir işlevi okurken bilgiyi işlemenin zaman alması ve 25 satırda açıkça yazılmışsa neredeyse anında gerçekleşmesi. İşlev çağrılarını takip etmek meselesi haline gelir. 72 benim için çok büyük (artı, peki ya ekranları
ayırdıysanız

1
Elbette, bazen 70 farklı alanı 70 farklı yere kopyaladığınız işlevlere sahipsiniz. Bunları ttüretmek için çoğunlukla kullanıyorum , ancak bazen uzun zamandır bir eşek işlevine (ya da uzun eşek işlevine) sıkı sıkıya bağlı kalıyorsunuz.
yapılandırıcı

1
İşlev örneğin Map(x => x.Property1); Map(x => x.Property2); Map(x => x.Property3);, tamamen aynı olduğu açıktır. (Bunun sadece bir örnek olduğuna dikkat edin; bu tür işlevler zaman zaman ortaya çıkar)
konfigüratör

12

Bence her fonksiyon mümkün olduğunca küçük olmalıdır. Her fonksiyon sadece bir şey yapmalı ve iyi yapmalı. Bu, maksimum uzunluk sorusuna gerçekten cevap vermiyor, ancak işlevlerin uzunluğu hakkındaki hislerim daha fazla.

Bob Amca'nın sözlerini kullanmak için, "Artık çekemezsiniz. Çıkarın.


2
Mümkün olduğunca küçük derken ne demek istiyorsun? Her bir fonksiyonun sadece iki satırı olması mümkün olmaz mı? Biri tek bir işlem yapacak, diğeri ise geri kalanını yapmak için bir fonksiyon çağıracak mı?
Kelmikra

Yine Bob Amca. Kendin için düşün. Amcaları dinleme. Seni yoldan saptırıyorlar.
gnasher729

10

Bir binanın maksimum yüksekliği ne olmalıdır? Yapının bulunduğu yere veya olmasını istediğiniz yüksekliğe bağlıdır.
Farklı şehirlerden gelen farklı insanlardan farklı cevaplar alabilirsiniz.
Bazı script fonksiyonları ve çekirdek kesme işleyicileri çok uzun.


Sana tamamen katılıyorum. Metaforları severim. :) Üç katlı bir bina, geçerli bir güvenlik çıkışını nereye koyacağını bilmeyen bir aptal mimar tarafından yapılmış olabilir ve diğer bina on katlı olabilir ve mükemmel bir mimari tasarım olabilir. Her zaman akılda tutulması gereken, okunabilirlik ve bakımın, boyutunu küçültmek için değil, boyutunu küçültmek için bir yöntemi yeniden yapılandırmanın ana nedeni olması gerektiğidir. Bilim kurgu filmleri dışında, gökdelenin% 90'ı ile şehir inşa edilememiştir. :)
Samuel

10

Benim için çalışan bir yöntem şudur: Daha uzun bir fonksiyonun bir parçası olabilir mi, mantıklı bir isim verebilirim. Bir yöntemin uzunluğunun iyi adlandırma kadar önemli olmadığını düşünüyorum. Yöntem, adının söylediğini yapmalı, daha fazla ve daha az değil. Ve iyi bir isim verebilmelisin. Yönteminizi iyi adlandıramazsanız, kod muhtemelen bir araya getirilmiş olması iyi değildir.


Ve yönteminiz iyi bir isme sahip tek bir şey yapmalı ... hayır 'Ve', 'Veya' ya da yöntem adını 50 karakter uzunluğunda yapan başka bir şey yapmamalı.
Samuel

10

Yapması gerekeni yapması gerektiği sürece, ama yapması gerekmiyor.


c dedikleri gibi, "c'de o işaretçiye başka bir işaretçi ekleyerek çözemediğiniz bir sorun yoktur." Altında her zaman başka bir işlev ekleyebilirsin, sorusu senin epifanına olurdu "nerede bitiyor?"
Ekran Adı

1
Aslında onu çevirir ve "olması gerektiği kadar kısa ama daha kısa olmaz" derdim, ama + 1'imi yeterince yakın olduğum için alıyorsunuz :)
Ben Hughes

6

Bence bir takas var. Çok sayıda kısa yönteminiz varsa, bunları uzun bir yöntemden daha çok ayıklamak zordur. Bir yöntem çağrısını izlemek için editörün etrafında 20 veya 30 farklı kez atlamak zorunda kalırsanız, hepsini kafanızda tutmak zor olacaktır. Bu arada, iyi yazılmış bir net yöntem varsa, 100 satır olsa bile, kafanızda tutmak genellikle daha kolaydır.

Asıl soru, neden öğelerin farklı yöntemlerde olması gerektiğidir ve yukarıda verilen cevap kodun yeniden kullanımıdır. Eğer kodu tekrar kullanmıyorsanız (ya da bilmiyorsanız), onu takip etmek için tek bir devin içine bırakmak kolay olabilir ve sonra tekrar kullanmanız gerektiğinden, tekrar kullanılması gereken parçaları ayırın. daha küçük yöntemlere kullanmak.

Gerçekte, iyi yöntem tasarımının bir parçası fonksiyonel olarak uyumlu yöntemler yapmaktır (temel olarak bir şey yaparlar). Yöntemlerin uzunluğu önemli değil. Bir işlev iyi tanımlanmış bir şey yaparsa ve iyi bir yöntemden 1.000 satır ise Bir işlev 3 veya 4 şey yapar ve sadece 15 satır ise, o zaman kötü bir yöntemdir ...


Kısa yöntemleri severim.
Marcie

Söylediklerinizi beğendim çünkü bir yöntemin 10 satırdan fazla olmaması gerektiğini söylemek benim görüşüme göre bir ütopyadır. Tamam, her bir yöntem yazışında akılda tutulması iyi bir kuraldır, ancak 1 + 1 = 2 gibi matematiksel bir kural olmamalıdır. bazı detayları açıklayan yorumlar tam değil çünkü çok uzun, yöntemler 100 satır kod içerebilir ve anlaşılması ve sürdürülmesi tamamen temiz olabilir. Ancak, bir alışkanlıktan çok bir istisna olmalıdır. Ben fabrika yönteminde geçiş durumunun bir istisna örneği olduğunu düşünüyorum.
Samuel

5

Tüm işlevi aynı anda görebilirsem ne yaptığımı takip etmeyi daha kolay buluyorum. İşte size fonksiyon yazmayı tercih ediyorum:

  1. Monitörüme uygun bir yazı tipiyle sığacak kadar kısa.
  2. 1'den uzun olması gerekiyorsa, makul bir yazı tipinde bir kağıda yazdırmak için yeterince kısa.
  3. # 2'den uzun olması gerekiyorsa, bir kağıda 2'ye yazdırmak için yeterince kısa.

İşlevleri nadiren bundan daha uzun yazıyorum. Bunların çoğu dev C / C ++ switch ifadeleridir.


Bir monitöre sığacak kadar kısa ancak yazı tipini ve boyutunu belirten güzel bir işlemdir. Benim görüşüme göre 2013 kurallı olmamalı ve 2013'te olduğumuzu ve kağıda hala kod basanların, kağıt boyutuna uyup uymadığını görmek için kim yazdıracak? Visual Studio, intellisense gibi araçlarla, kodu kağıtla analiz etmek için artık bir neden yoktur.
Samuel

5

Benim için, bir fonksiyon olması gereken herhangi bir uzunluktur. Böldüğüm zamanların çoğu, kodu tekrar kullanacağım zamandır.

Temel olarak, “yüksek uyum, düşük eşleşme” prensibine sadık kalacağım ve uzunluk konusunda herhangi bir kısıtlama yok.


5

Soru, bir fonksiyonun kaç şeyi yapması gerektiğidir. Ve genellikle, "bir" şeyi yapmak için 100 satıra ihtiyaç duymanız nadirdir. Yine de bu, koda hangi seviyeden bakıyor olduğunuza bağlı: Bir şifre mi var? Yoksa şifreyi toplamak ve saklamak bir şey midir?

Diyelim ki, bir işlev olarak şifre kaydetmeye başlayın. Bu karmaşanın farklı olduğunu düşündüğünüzde ve kodu yeniden uygularsanız. Ben hiçbir şekilde uzman bir programcı değilim, ancak IMHO, fonksiyonların tümünün küçük bir şekilde başlaması, işlevleriniz ne kadar atomik olursa, kodun tekrar kullanma şansı o kadar yüksek, hiçbir zaman aynı değişikliği yapmak zorunda değilsiniz. , vb.

1000'den fazla satır çalıştıran SQL saklı yordamlar gördüm . Depolanan işlemlerin satır sayısı da 50'den az mı? Bilmiyorum, ama kodu okutuyor, cehennem. Sadece yukarı ve aşağı kaydırmaya devam etmek zorunda kalmazsınız, aynı zamanda "bu doğrulama yapar1", "veritabanındaki bu güncellemeler" vb. Gibi bir satır kod vermeniz gerekir - programcının yapması gereken bir çalışma.


Sadece ilk paragraf için +1. Geriye kalan her şey üzerinde çalıştığınız dava ile ilgili.
Ekran Adı

Ve onu 50 fonksiyona bölmek nasıl yardımcı olur? Fonksiyonların iletişim kurması gerektiğinde, 500 satırla bin değil mi?
gnasher729

5

Gönderen Cyclomatic karmaşıklık (Vikipedi):

Kaynak kodun bir bölümünün döngüsel karmaşıklığı, kaynak kod boyunca doğrusal olarak bağımsız yol sayısının sayımıdır.

  • Bu sayıyı 10'un altında tek bir yöntemle tutmanızı öneririm. 10'a çıkarsa, tekrar etmenin zamanı geldi.

  • Kodunuzu değerlendirebilen ve size döngüsel bir karmaşıklık numarası verebilecek araçlar var.

  • Bu araçları inşa hattınıza entegre etmeye çalışmalısınız.

  • Kelimenin tam anlamıyla bir yöntem büyüklüğü kovalamayın, ancak karmaşıklığına ve sorumluluklarına bakmaya çalışın. Birden fazla sorumluluğu varsa, muhtemelen yeniden faktör almak iyi bir fikirdir. Siklomatik karmaşıklığı artarsa, muhtemelen yeniden etken olma zamanı gelmiştir.

  • Size benzer geri bildirimler veren başka araçlar da olduğundan kesinlikle eminim, ancak henüz bu konuda inceleme şansım olmadı.


Döngüsel karmaşıklığın, büyük örnek depolardan birinin gerçek kodunda, söz konusu örneklerin değil, ham SLOC ile çok güçlü bir şekilde ilişkili olduğu gösterilmiştir. Bu, temel olarak değersiz hale getirir, çünkü taşıma iadelerini saymak çok daha kolaydır. (Evet, SLOC oynamak mümkündür. Dürüst olmak gerekirse, burada: İşvereninizde SLOC metriklerini ne kadar süre
çalmaya çalışan birisinin

4

Genellikle, yöntemleri / işlevlerimi 1680x1050 monitörün ekranına sığacak şekilde tutmaya çalışırım. Uygun değilse, görevi çözmek için yardımcı yöntemler / işlevler kullanın.

Hem ekranda hem de kağıda okunabilirliğe yardımcı olur.


Aynı şeyi yapıyorum ama hangi yazı tipini ve boyutunu kullandığınızı belirtmeye değer. Kendim için, Scott hanselman'ın önerdiği gibi 14 büyüklüğünde "konsolları" tercih ediyorum. hanselman.com/blog/… Çok büyük bir fontla ilk kez çalışmak zor, ancak yönteminizin mümkün olan en küçük olması gerektiğini daima hatırlamanız en iyi yöntemdir.
Samuel

4

Bazı fonksiyonlar kendiliğinden karmaşık algoritmalar uygular ve bunları kısaltmak için yapılan girişimler yeni, daha kısa fonksiyonlar arasındaki etkileşimi netleştirir, böylece net sonuç basitlikte bir azalma olmaz. Ayrıca, bir işlevin sadece "bir şeyi" yapması gerektiği fikrinin iyi bir rehber olduğuna inanmıyorum, çünkü yüksek bir soyutlama seviyesindeki "bir şey" daha düşük bir seviyede "birçok şey" olabilir.

Bana göre, eğer uzunluğu şu anda ince DRY ihlallerine neden oluyorsa, işlev kesinlikle çok uzundur ve işlevin bir kısmını yeni bir işleve veya sınıfa çıkarmak bunu çözebilir. Durum böyle değilse işlev çok uzun olabilir, ancak kodun yol boyunca öngörülebilir bir değişim karşısında faydalı olacak şekilde daha modüler olmasını sağlayacak bir işlev veya sınıf kolayca çıkarılabilir.


İşlevler belirli bir soyutlama seviyesinde "tek bir şey" yapar ve sadece o soyutlama seviyesi için endişeleniyorsunuz. Bütün mesele bu. Bunu kavrayamazsan, soyutlamayı anladığını sanmıyorum.
Zoran Pavlovic

4

Doğru şekilde optimize edilebilecek kadar kısa

Yöntemler tam olarak bir şeyi yapacak kadar kısa olmalıdır. Bunun nedeni basittir: bu nedenle kodunuz doğru şekilde optimize edilebilir.

Java veya C # gibi bir JIT dili ile, JIT-derleyicisinin hızlı bir şekilde kod üretebilmesi için yöntemlerin basit olması önemlidir. Daha uzun, daha karmaşık yöntemler doğal olarak daha fazla JIT zamanı gerektirir. Ayrıca, JIT derleyicileri yalnızca bir avuç optimizasyon sunar ve yalnızca en basit yöntemler bundan yararlanır. Bu gerçek bile Bill Wagner'in Etkili C # ' sında çağrıldı .

Düşük seviyeli bir dilde, C veya C ++ gibi, kısa yöntemlere (belki bir düzine kadar çizgi) sahip olmak da önemlidir, çünkü bu şekilde yerel değişkenleri bir kayıt yerine RAM'de saklama gereksinimini en aza indirirsiniz. (Aka 'Spilling Register'.) Ancak, bu yönetilmeyen durumda, her bir işlev çağrısının göreceli maliyetinin oldukça yüksek olabileceğini unutmayın.

Hatta Ruby veya Python gibi dinamik bir dilde bile kısa yöntemlere sahip olmak, derleyici optimizasyonlarında da yardımcı olur. Dinamik bir dilde 'dinamik' bir özellik ne kadar iyi olursa, onu o kadar zorlaştırır. Örneğin, X alan ve bir Int, Float veya String döndüren uzun bir yöntem muhtemelen her biri yalnızca tek bir tür döndüren üç ayrı yöntemden çok daha yavaş çalışacaktır. Bunun nedeni, derleyicinin fonksiyonun ne tür döneceğini tam olarak bilmesi durumunda, işlev çağrısı sitesini de optimize edebilmesidir. (Örneğin, tür dönüştürmeleri denetlemiyor.)


Uygulamaların% 99,999'u veri tabanı erişimi, dosya erişimi veya ağ gecikmesi gibi programların hızını yavaşlatan çok daha fazla şey var. Yöntemleri tasarlarken hızı düşünmek, oyun oynama, gerçek zamanlı uygulama veya tonlarca veri ile raporlama için geçerli bir neden olabilir, ancak diğer durumlarda. Ancak, bu iyi bir nokta ancak benim kadar programcı olduğum kadar küçük, uygulamalarımda bu tür bir optimizasyonu nadiren yapmak zorunda kalıyorum.
Samuel

Kodunuzun hızını ölçtüğünüzde ve çok yavaş bulduğunda, ne yaptığınızı biliyorsanız (düşündüğünüz kadar basit değil) ve daha sonra ölçtüğünüzde ve hız düzeldiğinde böyle bir şey yaparsınız. .
gnasher729

3

Bu kodda ne olduğuna çok bağlı.

Hiçbir problem yaşamadığım binlerce satırlık bir rutin gördüm. Devasa bir anahtar ifadesiydi, hiçbir seçenek bir düzine çizgiyi geçmedi ve herhangi bir seçenekteki tek kontrol yapısı tek bir döngü oldu. Bugünlerde nesnelerle yazılmış olabilirdi ama bu o zamanlar bir seçenek değildi.

Ayrıca önümdeki bir anahtardaki 120 çizgiye bakıyorum. Hiçbir durum 3 satırı geçemez - bir bekçi, bir görev ve mola. Bir metin dosyasını ayrıştırıyor, nesneler olasılık değil. Herhangi bir alternatifi okumak zor olabilir.


2

Çoğu derleyici bir işlevin uzunluğunu dikkate almaz. Bir işlev işlevsel olmalı, ancak insanların anlaşılması, değiştirilmesi ve yeniden kullanımı kolay olmalıdır. Size en uygun uzunluğu seçin.


1

Genel kural, bir fonksiyonun ekrana sığması gerektiğidir. Bunu ihlal etmeye meyilli bulduğum sadece üç vaka var:

1) Sevk fonksiyonları. Eski günlerde bunlar yaygındı, ancak çoğu bugünlerde nesne mirası ile değiştirildi. Nesneler yalnızca programınızın içinde çalışır ve bu nedenle, başka bir yerden gelen verilerle ilgilenirken ara sıra gönderim işlevlerini göreceksiniz.

2) Hedefe ulaşmak için çok fazla adım atmış olan ve adımların iyi bir alt bölünmeye sahip olmadığı işlevler. Sırayla diğer fonksiyonların uzun bir listesini çağıran bir fonksiyonla son buluyorsunuz.

3) # 2 gibi, ancak bireysel adımların o kadar küçük olduğu, ayrı olarak çağrılmak yerine basitçe çizildiği.


1

Belki fonksiyon uzunluğu o kadar iyi bir ölçüt değildir. Siklomatik karmaşıklığı , yöntemlerde de kullanmaya çalışıyoruz ve gelecekteki kaynak kontrollerinden biri, sınıflar ve yöntemlerdeki siklomatik karmaşıklığın X'ten düşük olması gerektiği kurallarını denetliyor.

Yöntemler için, X, 30'a ayarlanır ve bu oldukça sıkıdır.

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.