'Önerilen' dosya uzunluğu ve çizgi genişlikleri [kapalı]


9

Herkes belirli bir dosya için maksimum kod satırı sayısı için saygın bir kaynaktan bir öneri bilip bilmediğini merak ettim. Örneğin, Google'ın Kapanış Linter'i her satırın 80 karakteri geçmemesini önerir.


Örneğin, soru ile uyuşmuyor. Sorunuz dosya başına satır sorar ve örneğiniz satır başına karakterdir.
Jason S

2
Aynı konsepttir - yatay veya dikey olsun, kaydırmanız gereken kare alan.
Devin G Rhode

Yanıtlar:


11

Bir dosya, onu avlamak için birden fazla kez ileri veya geri gitmeden veya bir arama dizesini hatırlamak zorunda kalmadan herhangi bir işlevi veya yöntemi bulabileceğiniz kadar kısa olmalıdır. Kullandığım metrik, bir dosyadaki kodu okumaya karşı aramak için harcadığım süre. Bu fark edilir hale gelirse, dosyayı veya sınıfı yeniden bölümlendirme zamanı gelmiştir.

Bir temel kod bloğu için iyi bir boyut, hem genişlik hem de yükseklik açısından yeterince kısadır, bir grup kodu incelemesi sırasında cesaretlerini yansıtabilirsiniz ve yazı tipinin arkasındaki adam o kadar küçük olmadan hepsinin sığmasını sağlayabilirsiniz. konferans salonu okuyamaz. Bu boyut, sizinle birlikte olan tek şey bir mobil cihaz veya tablet olduğunda bazı kodları açıklamak için çağrılırsanız da yardımcı olur.


Bu en yararlı rehber, çok teşekkür ederim!
Devin G Rhode

Çok kısa bir dosya uzunluğu var mı? Ortalama uzunluğu ~ 200 satır olan 35 dosya içeren bir projem var.
Dan

1
@ Cevap olarak "hayır" girişiminde bulunacak mıyım. Kurulumunuzda bir dosyayı açmak çok zorsa, kurulumunuzu iyileştirmenin zamanı gelmiş olabilir (örn. Vim eklentileri, daha iyi IDE, emac ne yaparsa yapın)
Mike Graf

@ Dan: Bir dosya çok mu kısa? Mantıksal ve yakından ilişkili (ancak çok uzun olmayan) bir dosyada bulmak yerine doğru küçük dosyayı birkaç LOC için aramak için daha fazla zaman harcarsanız mümkündür.
hotpaw2

9

Böyle bir şey yoktur ve eğer olsaydı, hangi dili kullandığınıza büyük ölçüde bağlı olurdu (örneğin, C # veya Java'ya karşı aynı şeyi yapıcıda).

Daha üst düzey diller için, bu SO tartışmasını görebilirsiniz . Java / C # için, Bob Martin'in maksimum olarak önerdiği yöntem başına 10-20 satır . İlgili olmadığı ve sınıfın ne yapması gerektiğine bağlı olduğu için dosyalar hakkında tartışma yoktur.

Satır başına 80 karakterle ilgili olarak - bu, kartların günlerine bir geri dönüş. Söyledikten sonra, çizgiler çok uzadığında okunabilirlik acı çeker.


5
+1: 80 karakterden daha az çizgiyi geniş tutmak iyidir; okuması daha kolay ve yan yana pencereler için daha fazla alan sunuyor
Donal Fellows

6
Şahsen, bir çizgi 80 veya daha azına sığması için birden fazla çizgiye ayrıldığında okunabilirlik acı çekiyor. Ayrıca molaların nerede yapılacağına karar vermek veya bu konu hakkında tartışmak için zaman harcanıyor.
ergosys

5

Dosya ve çizgi uzunlukları, karmaşıklığın ikincil etkilerinin ölçümleridir ve bu nedenle oldukça değişkendir. Hedeflemeniz gereken, belirli bir maksimum satır sayısı değil, gereksiz karmaşıklık içermeyen koddur.

Uzun dosyalar, yöntemlerin, alt programların veya sınıfların aşırı karmaşık olduğunu gösterir (çok fazla şey yapmak, yeterince faktörlü değil, vb.)

Uzun çizgiler ifadelerin aşırı karmaşık olduğunu gösterir.

Bunlar, iyi tanımlanmış hedef metrikleri değil, potansiyel bir kod sorununu gösteren kokulardır.


3

Satır uzunluğu, tüm satırı görmek için ekranı kaydırmanıza gerek kalmayacak şekilde olmalıdır. Bu, monitör boyutuna ve çözünürlüğe bağlıdır.

Bir ekrana sığabiliyorsa yöntemler ve fonksiyonlar en iyisidir.

Dosyalar çok uzun olmamalıdır. En iyisi, sınıfı ve uygulamayı anlamanın kolay olduğu kısa dosyalardır.
Bir keresinde 10 kline dosyası olan bir proje üzerinde çalıştım. Çok karmaşık bir kitap okumak gibiydi. Uygulamanın kaç soruna neden olduğunu söylemem gerekir mi?


Kod, özellikle grup kodu incelemeleri için küçük bir yazı tipi büyük monitör kurulumu gerektirmemelidir.
hotpaw2

"Satır uzunluğu, tüm satırı görmek için ekranı kaydırmanıza gerek kalmayacak şekilde olmalıdır." - editörünüz sararsa ne olacak?
Dan Dascalescu

3

80 karakter!

COBOL yaptığımda faturalandırma programları için yaklaşık 80 sayfa ve daha fazla kaynak kodu dosyası gördüğümü hatırlıyorum . Tabii ki, bunun yaygın bir uygulamaya yakın olduğunu göremiyorum ama 80 karakter eşit derecede saçma.

Sınıf boyutu görünümünden, bu öneriyi yaklaşık 80 özelliği ve 20 yöntemi olan tipik bir Müşteri sınıfına uygulamaya çalışırsanız, sınıfı birkaç taneye ayırmanız ve kodu gerçekten çok dağınık hale getirmeniz gerekecektir.


1
Kesinlikle. 80 karakter, bir portre A4 / Letter sayfasında makul bir yazı tipi boyutunda beyin fırtınası yapmak için bir kod bölümünü yazdırabileceğiniz anlamına gelir. Ayrıca, makul bir geliştirme bilgisayar monitöründe, üç yönlü birleştirme yapmak için yatay kaydırma yapmadan kaynak kodunun üç kopyasını yan yana görüntüleyebileceğiniz anlamına gelir (80x8x3'ün 1920 * 8 'olması komiktir).
Mark Booth

2

Sınıfları ve yöntemleri kısa tutmaya çalışıyorum, ancak satır uzunluğu hakkında çok fazla endişelenmeyin. Geniş ekranlarda ve uzun tanımlayıcılarda, seksen karakterin çok az olduğunu düşünüyorum. İfadeleri kırmak için biraz çalışmak gerekir, böylece kolayca okunabilir ve seksen karakter sınırlaması ile oldukça sık görülür. Bence satır başına yaklaşık 120 veya 130 sütun daha makul.


Dikey olarak çevrilmiş 22 "monitör kullanıyorum, bu da bana her ekranda 1080 piksel veriyor (ve dikey olarak bir seferde 104 satır kod görünür!). Çizgi genişliklerini 90 veya daha az karaktere tutmak böyle senaryolarda yardımcı olur.
Roy Tinker
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.