Wordpress kodu neden bu kadar “alandan mutlu”?


22

WP çekirdeği, birçok WP eklentisi ve WP kodlama standartları , Spacekarakterin çok cömert bir uygulamasını kullanır (girintiler için değil, parenler ve dirseklerin "içinde"). Bu Wordpress'e özgü gibi görünüyor - bu stil / felsefe PHP veya benzeri başka benzer projelerde bulunmuyor.

Bu yaklaşım hakkında daha fazla bilgi için, bkz: https://make.wordpress.org/core/handbook/coding-standards/php/#space-usage

Örnek: foreach ( (array) $foo as $bar ) { ...

Foreach'den sonraki, (finalden önceki ve finalden önceki boşluğa atıfta bulunuyorum )(ve yukarıdaki linkte "Space Usage" da gösterilen diğer benzer alanlar).

Bu tarz benim için gereksiz görünüyor - daha fazla yazmaya gerek duyuyor ve (görüş) kodları görsel olarak daha zorlaştırıyor. (/ Görüş)

Benim arzu değil bu tarz iyi bir fikir olup olmadığını tartışmaya. Daha ziyade, bunun neden önerilen stil olduğunun nedenlerini anlamak istiyorum . WP kodlama standartları hakkında yorum yapanlar bile merak ediyor:

görüntü tanımını buraya girin

MK Safi'nin sorusuna verilen cevaplar esasen:

  1. Okunabilirlik için
  2. Statüko (aka "Bu şekilde")

Sorma nedenim, yalnızca dahili projelerimizde WP kodlama standartlarını (“Alan Kullanımı” ile ilgili) benimseme konusunda kişisel olarak çok fazla değer görmememdir. Ancak, bir şeyleri özlüyorum, merak ediyorum.

Wordpress'in "Alan Kullanımı" stilini takip etmesi için yukarıda listelenenlerin ötesinde, görünüşte geçerli olup olmamasının herhangi bir nedeni var mı?


2
İç projelerinizde istediğiniz gibi, tutarlı olduğunuz sürece yapabilirsiniz. Bir yan not olarak, boşluklardan ziyade sekmeler kullanıyoruz, bu yüzden tartışmasız daha az yazmaya ihtiyacımız var, sizin için tüm biçimlendirmeyi yapan ve sizin için farklı stillere yeniden biçimlendirebilen modern bir IDE'niz varsa, bunun hiçbir şekilde önemi yoktur. paketleri ile, PHPStorm, vb)
Tom J Nowell

Yorumunuz için teşekkürler, @TomJNowell! Sanırım "sorum" olarak yanlış anlaşıldığımı düşünüyorum - girinti sekmeleri / boşlukları ve make.wordpress.org/core/handbook/coding-standards/php adresindeki "Alan Kullanımı" altında belirtilen kurallar hakkında daha az soru soruyorum. /… . Üzgünüm daha net değildim!
rinogo

5
Sözdizimi vurgulama olmadığında okumak daha kolaydır. En azından bu tarz iç projelerde kullanıyorum. PHP'yi genellikle düz bir konsolda, vi ile minimal bir yapılandırmada düzenlemeliyim.
fuxia

2
FWIW, MediaWiki'nin çok benzer bir stil sözleşmesi var ve bunu uygulamakta oldukça katı. Hatta otomatik olarak eksik boşlukları eklemek için bir komut dosyası var . Söyleyebileceğim tek şey, bir süre sonra, buna alışmak.
Ilmari Karonen

1
@rinogo biliyorum, yorumlar bazen sadece yorumlar, cevaplar değil :)
Tom J Nowell

Yanıtlar:


13

Resoning

İlişkin "boşluk" Bu sadece proje ile sıkışmış kişisel bir tercih: (sekmeler veya boşluk varsa olursa olsun).

WP kodlama standartları imo bir karmaşa ve göz ardı edilebilir - özüne katkıda bulunmadığınız sürece

  • farklı bir hikaye ve
  • stil rehberi de orada göz ardı edilir.

"[...] svn / git geçmişinin kullanımı çok zor olduğu için geriye dönük olarak eski kodlarda toplu olarak uygulanmıyor. Resmi politika, yeni kodun stil kılavuzunu izlemesi gerektiği, ancak bitişik kodu doğru biçimlendirdiğiniz takdirde öyleyse öyle olsun, ancak yalnızca kodu biçimlendiren yamaları yalnızca biçimlendirmenin yasak olduğunu kabul eder. "

- @TomJNowell yorumlarda

Alternatifler

PSR standartlarına (yani: 2) veya Symfony standartlarına (veya yalnızca kendinize ait) uymamaktan daha iyidir .

Performans Artırma ve Araçlar

Bir kodlama standardına sahip olmaktan (paylaşacak birine sahip olmaktan ve geri kalanını dile getirirken nefret eden azınlıktan başka bir yana) ya da az ya da çok sekme ya da boşluğa sahip olmaktan elde ettiğiniz hiçbir kazanç yoktur. Gereksiz disk alanı için endişe duyuyorsanız ya da daha yavaş programlar hakkında endişeleniyorsanız, kodunuzu sıkıştırmaya devam edebilirsiniz ( GitPHPHooks projesine bakın ). Kazanacağınız avantaj , orijinal dosya alanından maksimum % 5 civarında olacak ve HTML sözdizimi sıkıştırması / küçültmesinin size verdiği miktarla hemen hemen eşit olacaktır. Orada node.js küçültmek araçlar bunun için NPM yoluyla ulaşılabilir.

Şahsen gerçekten yardımcı bulduğum şey PHP Linter ve _PHP Mess Detector. Her ikisini de GitPHPHooks Kütüphanesine dahil ettim, böylece onu çalıştırmayı düşünmek ya da umursamamak zorunda kalmıyorum.


Stil kılavuzu Çekirdek için göz ardı edilmez, ancak eski kodlarda toplu olarak geriye dönük olarak uygulanmaz, çünkü svn / git geçmişini kullanımı çok zorlaştırır. Resmi politika, yeni kodun stil rehberine uyması gerektiğidir, ancak bitişik kodu doğru biçimlendirirseniz, öyleyse öyle olur, ancak yalnızca biçim kodunu yamalar veya yalnızca biçim kodunun yasak olduğunu kabul ederse
Tom J Nowell

@TomJNowell Ve bu nedenle stil kılavuzunu işe yaramaz hale getirir :) Her neyse, lütfen bir düzenleme yapın ve cevabınıza ekleyin. Dikkate değer bir bilgi.
kaiser

Sanırım sorumu çok net görmedim - make.wordpress.org/core/handbook/coding-standards/php/… adresinde daha az sekmelerden boşluklara, daha da "Alan Kullanımı" na atıfta bulunuyorum . Daha net olması için soruyu düzenleyeceğim.
rinogo

1
@ Rinogo ilk kez doğru, bu yüzden ilk paragrafı aldım. BTW, bunu daha okunaklı buluyorum.
kaiser

7

Noktalardan sonraki boşluklar normaldir, örneğin $baz . '-5'bu tarz operatörler ( y + z) için birçok kodlama standardında kullanılır .

Bu okunabilirliği artırmak için yapılır, örneğin bunlardan biri diğerinden daha okunaklıdır.

$cow.$dog.$cat.$table.$chocolate.$puddle.$iterator.$stuctureone.$stucturetwo

$cow . $dog . $cat . $table . $chocolate . $puddle . $iterator . $stuctureone . $stucturetwo

Diğer "kod" ile çevrili olduğunda bu daha da belirginleşir.

Parantez etrafındaki boşluklara gelince ( 1, 2, 3 ), hiçbir fikrim yok, sanırım argüman da okunabilirlik için.

WordPress standartlarının kendilerinde boşluk içermeyen yorumlarda parantezli örnekler bulunduğundan ve kod tabanının kendisinin boşlukları olmayan bazı parçalarla (hatta aşağıdaki ekran görüntüsüne bakın) aynı işlev dahilinde kafa karıştırıcı olması nedeniyle kafa karıştırıcı olabilir.

Çoğu PHP standardı aslında bunun tam tersi bir çağrı yapar .. parantez içeriklerini sarmalı. Aslında, diğer diller için kodlama standartlarının çoğu şöyle yazıyor: (1, 2, 3)bu yüzden WP'nin bu şekilde yapması biraz gizemli.

İşte bir WordPress fonksiyonundan karşılaştırmak için bir örnek.

görüntü tanımını buraya girin

Karşılaştırmak için daha büyük sürüm: http://i.imgur.com/nTEbV7v.jpg

Özellikle sağdaki kodu tam ekrana bakarken tercih ederim, ancak bu kişisel bir tercih.


Cevabınız için teşekkürler! .Olarak aralık, bana mantıklı .gibi, gerçekten sadece bir ikili operatörüdür +veya -. Parantez içindeki düşünceleriniz içeriklerini "kucaklıyor", bu soruyu tam olarak neden sordum. Bu davranış, köşeli parantez (WP kullanımı için diyor $foo['bar']ve $foo[ $bar ]) gibi garip kurallarla birlikte bu soruyu tam olarak neden sordum. :)
rinogo
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.