Yatay olarak kaydırmak zorunda kalmak kodu daha az okunabilir hale getiriyor mu?


12

Peki, öyle mi? Kötü uygulama olarak mı değerlendiriliyor?

IMO, daha az okunabilir. Sağa, sonra sola, sağa, sola vb. Kaydırmaktan nefret ediyorum. Kodlamayı daha acı verici hale getirir ve bazen beni karıştırır.

Örneğin, ne zaman uzun bir dize kodlama, ben aşağıdakileri yapacağım ...

bigLongSqlStatement = "select * from sometable st inner join anothertable at" +
"on st.id = at.id" +
"and so on..." +
"and so on..." +
"and so on..."

15
Evet öyle. (ve dökülen çizgileri girintili hale getirmeyi unutmayın)
Javier

2
Öyle olduğunu söyleyebilirim. Gördüğüm kadarıyla, yatay kaydırmayı özetlediğiniz şekilde ortadan kaldırmak için deneyim programcıları arasında oldukça standart bir uygulama gibi görünüyor. Bir dereceye kadar bu konuda biraz kişisel tercih olmasına rağmen ...
Kenneth

1
Kodu birkaç tuşla dikey olarak ve yüksek hızda satırlar arasında gezinebilirim, yatay olarak kaydırma, karşılaştırmada rahatsız edici yavaştır.

Geniş sütunlar her şeyi daha az okunabilir hale getirir. Bu defalarca belirlendi.
David Thornley

2
Katılıyorum. Tek sorun, herkesin editörünüzün ne kadar geniş olacağına karar vermesidir. Ekstra geniş kodda genellikle okumak için bir ton varsa ben sadece şal ayarlayın.
Karl Bielefeldt

Yanıtlar:


19

Evet, gerçek anlamda olduğu gibi gerçek anlamda da öyle.

Yan yana kod diffs yapmak istiyorum ve çok geniş çizgiler bunu zorlaştırır:

http://i.stack.imgur.com/fWVuz.jpg

Üç tırnaklı dizelerle Scala gibi diller, çalışma zamanı masrafı, çirkin alıntılar ve bir dizenin bölümlerini bir araya getirme işaretleri (örnekte görüldüğü gibi) olmadan birçok satırdan bir dize oluşturmanıza olanak tanır.


11

Evet, bence satır başına 80 karakter makul ve yaygın olarak kullanılıyor.


6

Bu benim için gerçekten önemli bir soru! 7 "13" dizüstü bilgisayarda 24 "masaüstü monitöre sahip meslektaşlarımla çalıştım ve kendimi okunabilir bir şeyle sonuçlanmak için çok fazla zaman kısaltma hattı buldum.

Birçok durumda 80 sütun biraz küçüktür (vi seçeneği olan bir terminalde çalışıyorsanız hariç), ancak ~ 150'den fazla çok fazladır (aşağıya bakın).

Bu saf 'okunabilirlik' sorusu için.

Şimdi, 'iyi uygulama' kısmı için, genellikle bu kadar uzun satırların kusurlu olduğunu, yani geçici bir değişkente çıkarılması gereken veya örneğin çoğaltılan bir kısmına sahip olduğumu görüyorum (ObjectiveC, iPhone programlamasında ortak snippet) :

CGPoint point = CGPointMake(someOtherView.frame.origin.x + someOtherView.frame.size.width, someOtherView.frame.origin.x + someOtherView.frame.size.height);

Lütfen 3 boyutlu vektörler veya matrislerle çalışırken bunun daha da canlanabileceğini unutmayın.

Yeniden yazılmış örnek:

CGRect frame = someOtherView.frame;
CGPoint origin = frame.origin;
CGSize size = frame.size;
CGPoint point = CGPointMake(origin.x + size.width, origin.x + size.height);

Bu artık daha küçük bir ekrana sığıyor, IDE kullanarak hata ayıklaması veya standart çıktıya yazılması daha kolay ve yöntem / özellik çağırma maliyetine bağlı olarak daha hızlı olabilir. Bu elbette biraz zorlandı, çoğu gerçek dünya örneği çok daha karmaşık ...


4

Her zaman değil.

Sadece alternatif bir görünüm eklemek için, kodu okuduğumda, genellikle satırın tamamını okumak zorunda kalmadan kod satırının ne yaptığının özünü alabilirim. Ben yöntem adını okuyabilir ama yöntem parametreleri ekran dökülmesini, ben normalde sadece bu kod satırının amacı ne olduğunu söyleyebilirim gibi fussed değil. Kod birkaç satır ekran dökülmesini sonra zaman zaman (orada önemli kelime) yatay kaydırma zorunda ticaret daha kompakt kod için buna değer olduğunu düşünüyorum. Bazen hangi kodun hangi ifadeyle gittiğini zihinsel olarak bir araya getirmek zorunda olduğum için çok satırlı tek deyimli kod dikkat dağıtıcı buluyorum.

Genellikle yatay olarak dökülen kod satırlarının sollarında önemli (biter) ve sağda (ekran dışı) daha az önemli bitleri vardır, bu yüzden bana göre kodu çoğunlukla aşağıdan tarayabildiğim için okunabilirliği artırır aşağıdaki satır (lar) üzerinde görsel olarak önemli sol taraftaki alanı kaplayan çok uzun bir satırdan daha az önemli kod parçalarına sahip olma alternatifinin aksine, her satırdaki önemli bitler.

Tüm bunları söyledikten sonra, kesinlikle çok sık yatay kaydırmak istemem, ancak bu geniş ekran monitör günlerinde daha az sorun yaşıyorum.


2
Bazı program bitlerinin diğerlerinden daha önemli olduğunu bilmiyordum. Verimliliğimi bu şekilde geliştirmeye çalışacağım: sadece önemli bitleri kodlamak.
mouviciel

1
@mouviciel, Kodun sol tarafının daha önemli olduğu değil, kodun sol tarafının semantik olarak kod satırının sağdan ne yaptığını anlamada daha fazla önemi vardır. Kodu tararken, bir sonrakine geçmeden önce ne yaptığını anlamak için genellikle satırın başlangıcını okursunuz.
Chris Knight

1
Benim için, bir yönteme iletilen argümanlar, yöntem adı kadar önemlidir. Bu bilgiyi bırakmak, kodun onu anlamaktan daha fazlasını ne yaptığını tahmin etmeye yol açar.
mouviciel


1

Hayır.

Bir editörüm var. Sadece satır sargısına sahip olmakla kalmaz, aynı zamanda (ekran 100 karakter genişliğinde ise) satır sarması girintisine sahiptir.

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

olarak görünmek

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut 
    labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco 
    laboris nisi ut aliquip ex ea commodo consequat.

veya mevcut dil için varsayılan olarak herhangi bir girinti düzeyi ayarlandığında.

Ekranımdan daha geniş satırlar, kodu satır satır girintili koda karşı asla daha az okunabilir hale getirmez.

edit: ooooh, bu cevabın popüler olmayacağını biliyordum :)


2
Aferin sana. Ancak, bu özelliğe sahip olmayan bir düzenleyiciye geçmek zorunda kalırsanız ne yapardınız?

1
@dunsmoreb: Neden kelime sarmayı desteklemeyecek kadar modası geçmiş bir düzenleyiciye geçiyorsunuz (otuz yıl önce yazılmış kaynak kodunda çalışmadığınız ve doğru bir seçim yapmadığınız eski bir platformda çalışmadığınız sürece) editör)?
Arseni Mourzenko

MainMa, satır kaydırma girinti özelliğinizden bahsediyorum.

@dunsmoreb: Adil olmak gerekirse, uzun satırlar nadirse sadece kelime sarmak yeterince iyi
amara

7
Editörünüz bir satırı sarabildiği için, okunabilirlik için en mantıklı yeri saracağı anlamına gelmez.
Craige

0

Kesinlikle öyle. Gazete ve dergilerin sütun kullanmasının bir nedeni var. Okunabilirlik önemli bir faktördür. Gözlerimizi okurken, nispeten az yan yana hareketle aşağı doğru tarayın. Etkisi, gözlerimizin okuduklarımızı hızlı bir şekilde taramasına izin vermektir.

Ekranın geniş sütunlarında görünse bile, gözlerimizi hızla ileri geri taramaya zorlar. Geri tararken hiçbir şey anlamıyoruz. Bu, okuma ve kavrayışı önemli ölçüde yavaşlatacaktır. Etkisi eski mekanik yazıcılara benzer. Bunlar genellikle, taşıyıcının veya yazdırma kafasının bir sonraki satır için yeniden konumlandırılması için zaman tanımak amacıyla bir satırbaşı dönüşünden sonra birkaç boş karakter girilmesini gerektiriyordu.

Buna ek olarak, dikey yerleşim genellikle satırdaki içeriğin gruplandırılmasını açıklayacak şekilde yapılır. Bu genellikle sadece bileşik mantık koşulları için geçerlidir. Uzun formüller bir dizi ifade olarak daha iyi yapılandırılabilir. (Optimize edici fazladan ek yükü düzeltir ve bazı optimize ediciler karmaşık formüllerden vazgeçer veya kötü performans gösterir.)

Büyük çizgiler gerektiren çoklu noktalara sahip tanımlayıcılar, düzeltilmesi gereken kodlama tekniklerini gösterir.


0

Fareler-tekerlekler dikey olarak hızlı kaydırmayı kolaylaştırır ... yatay olarak kaydırmak karşılaştırıldığında çok pahalı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.