Tutulmadaki kodu otomatik format kullanarak biçimlendirmek iyi bir fikir mi


20

Kodlama için eclipse kullanıyorum ve kullandığımız dil Java. Birisi tarafından otomatik biçimlendirici (CTRL + ÜST KRKT + F) kullanarak kodu düzgün biçimlendirmek için biri tarafından önerildiğinde, bu komut kodu biçimlendirirken, ancak bazen genel görünümün garip hale geldiğini ve aslında çok okunabilir olmadığını hissediyorum.

Peki bu yapılması önerilen bir şey mi? Değilse, eclipse kodumuzu biçimlendirmenin daha iyi yanı nedir?


Her zaman emac'ların otomatik biçimlendirme kapasitesini kullanıyorum - çarpışma potansiyeli var (örneğin SC birleşmesi ile) .. ancak genel olarak, biçiminizi standartlaştırmak son derece yararlı
warren

Yanıtlar:


34

Sıkı kod biçimlendirme kuralları, birkaç geliştirici bir sürüm kontrol sistemi kullanarak aynı kod üzerinde çalıştığında yararlıdır. Farklı geliştiriciler, birleştirme aracı için aynı kodun farklı görüneceği gibi farklı biçimlendirme kurallarına sahipse birleştirme bir acı olabilir.

Eclipse (veya bu konu için iyi bir IDE), tercihler bölümünde (Java> Kod Stili> Biçimlendirici) özelleştirilebilen kod biçimlendirme kurallarına sahiptir. En çok neyi beğendiğinizi seçin, ancak Java standart kod kurallarına da göz atın . Birçok açık kaynaklı projenin Eclipse formatlayıcı ile uygulanabilecek kendi kod kuralları da vardır.

Ayrıca, CodeStyle, PMD ve Findbugs gibi ek kurallar uygulayan ve yaygın (düşük seviyeli) anti-kalıp ve hatalardan kaçınmaya yardımcı olan standart araçlar vardır.


4
Biçimlendiricinizi istediğiniz gibi ayarladıktan sonra. Bir .xml dosyasına kaydetmenizi sağlayan bir "Dışa Aktar" düğmesi vardır. Bunu SVN Depomuza koyduk, böylece herkes projeyi kontrol ederken ona erişebiliyor.
Chris

Buna katılıyorum ve PMD ve FindBugs ve hepsini kullanıyorum. Ancak bu sadece ekipteki herkes kod biçimlendirme kurallarına uyup uyuyorsa iyi bir fikirdir . Aksi takdirde, başkaları tarafından değil, bazı geliştiriciler tarafından biçimlendirme + biçimlendirme olan taahhütlerle sonuçlanırsınız ve "gerçek" değişiklikleri görmek zor. Başka bir deyişle, eski kod otomatik biçimlendiriciyle önceden biçimlendirilmemişse, tek bir işlemde ek değişikliklerle biçimlendirmeyin.
Mufasa

2
Kod biçimlendirme ayarlarını özelleştirirseniz, tüm geliştiricilerin bunları alması için bu ayarları kaynak denetimine aktarın veya herkesin stil üzerinde anlaşabilmesi için bir tür wiki veya geliştirici belgelerinde yayınlayın.
Mufasa

24

Otomatik formatlayıcıyı çok kullanışlı buldum. Kodun nasıl biçimlendirilmesi gerektiği konusunda sürekli olarak mikro-kararlar almak yerine - hataya açık olan ve "bilişsel sürtünmeye" neden olan bir şey - biçimlendirme kuralları ayarlayabilir ve Eclipse'in kodu sizin için biçimlendirmesine izin verebilirsiniz (ideal olarak "İşlemleri kaydet" seçeneğini kullanarak otomatik olarak ). Elbette, bu, tutarlı biçimlendirmeye sahip bir kod tabanına sahip olmanızı veya kodu ayarladığınız kurallara göre yeniden biçimlendirme yetkisine sahip olmanızı gerektirir.

"Kaydetme sırasında otomatik biçimlendirme" etkinleştirilmiş olmak, artımlı derlemeye sahip olmak gibidir, beyninizin kod biçimlendirme veya sözdizimi gibi önemsiz konularla ilgilenmek yerine beynin kodun üzerinde odaklanmasını sağlar.

Ancak evet, bazen otomatik biçimlendirici sahip olduğunuz güzel biçimlendirilmiş tabloları kirletir. Bu gibi durumlarda "açma / kapama etiketleri" kullanıyorum. Bunlar kod biçimlendirme profilindeki "açma / kapama etiketleri" sekmesi altında yapılandırılır. Bunları kullanarak, kodunuzdaki bölgelerin otomatik olarak biçimlendirilmesini engelleyebilirsiniz:

// @formatter:off

... my nicely formatted table here ...

// @formatter:on

5
+1: Açma / kapama etiketlerini hiç bilmiyordum (ya da daha doğru olmak için, hiç bu kadar rahatsız etmedim).
Paul Cager

1
Projedeki herkes tarafından kullanılıyorsa, kaydetme sırasında otomatik biçimlendirme iyi olur. Yalnızca bazı geliştiriciler bunu kullanıyorsa, kod biçimlendirme değişiklikleriyle aynı anda değişiklik yapmak çok kolaydır, bu da bir taahhütte "gerçek" değişiklikleri bulmayı zorlaştırır.
Mufasa

@Mufasa Evet, haklısın.
JesperE

1
Format yorumu istemediğinizde / * - benim süper formatım * / Eclipse bu yorumu formatlamayın :)
Dawid Drozd

5

Tavsiye edilip edilmeyeceği, kime sorduğunuza bağlı olacaktır.

Kodu kendiniz biçimlendirmeyi tercih edeceğinizi düşünebilirim, sonuçta, kendiniz için en iyi ve en kolay olanı biliyorsunuz. Artı tarafta, düşünceli bir insansanız, diğer insanlar için de daha okunabilir hale getirebilirsiniz.

Makinelerin bu tür bir öngörüleri yoktur ve (aynen söylediğin gibi), sıkı kurallara göre biçimlendirmiş olsalar bile, kodunuzu biraz dağınık gibi gösterebilir.

İyi bir IDE veya araç, kodu sizin için biçimlendirmede genellikle yarı iyi bir iş yapabilir, ancak her zaman mümkün olduğunca okunabilir hale getirmez.

Yani, tavsiyem: başka birinden kod almadığınız sürece kullanmayın ve aksi halde okuyamayacağınız bir karışıklık.


5

Tüm kaynak dosyalarınızda tutarlı bir stil kullandığınızdan emin olmak için her zaman kullanmalısınız. Bu, biçimlendirmeyi manuel olarak ayarlamaya çalışırken harcadığınız zamandan da tasarruf etmenizi sağlar.

Eclipse'deki Java formatlayıcı oldukça iyi bir iş çıkarır ve tamamen özelleştirilebilir. Varsayılan ayarları (tamamen anlayabildiğim) kabul etmiyorsanız, biçimlendiriciyi kendi kişisel stil tercihinize veya kullandığınız standart ne olursa olsun ayarlamanız gerekir. Bunu Java / Kod Stili / Formatlayıcı altındaki tercihlerde yapabilirsiniz.

Yalnız çalışmadığınızda biçimlendiriciler daha da yararlıdır. Siz ve ekip üyelerinizin mükemmel kod stili ™ olduğunu düşündüğünüze katılmamanız büyük olasılıktır. Bu durumda, ortak bir tabanı kabul etmelisiniz ve bir kez ve hepsi için bu özel kod stili için formatlayıcı kurallarını tanımlamalısınız. Sonra herkes format kısayoluna basabilir ve her şey kararlaştırılan stile uyar. Bu şekilde kişisel tercihiniz (yazarken) engel olmaz. Ve formatlayıcı stilinin Eclipse'nin proje dosyalarında saklanabileceğini unutmayın, böylece her proje için farklı formatlayıcılar da mümkündür.


0

Her ne kadar kod kaydetme otomatik olarak biçimlendirilmiş gibi olsa da (aslında kişisel projelerimde etkinleştirdim). Eclipse biçimlendiricisinin tavsiye etmemi engelleyen bazı kritik hatalara sahip olduğu için Eclipse tabanlı ürünleri kullanan proje ekiplerinde bu uygulamayı tam olarak öneremediğimi fark ettim.

Özellikle "kod temizleme" + "biçimlendirici" etkinleştirilmişse, girintiler her kayıtta sabitlenir / çözülür.

Eclipse'nin her yeni sürümü biçimlendiriciyi değiştirebilir (daha iyisi için), ancak JavaDoc'lar nihayetten sonra bu ekstra alanı kaldıran *ancak Helios ve bir çok işletmenin tutulmanın eski Rational Software sürümünü kullandıktan sonra ortaya çıkan önemli değişiklikleri getirecektir . temel olarak Helios kullanıyor.

Eclipse tarafından sağlanan kod formatlayıcı, API'lerine göre genişletilemez, aslında CodeFormatter javadoc'u açıkça belirtir.

Bu sınıfın istemciler tarafından alt sınıfta olması amaçlanmamıştır.

Verilmiş, henüz ticari olmayan herhangi bir alternatif bulamadım . Jalopy yıllardır güncellenmedi ve github'daki çatallar henüz onları tavsiye etmem için organize edilmedi. Eclipse'nin entegre olması için herhangi bir güncelleme sitesi de yoktur. Aslında kod biçimlendirmesini Jalopy kullanarak cleanpom-maven-eklentisi gibi yapının bir parçası olarak yapmayı planlıyordum ama bu fikir Jalopy güncellemelerinin olmaması nedeniyle yol kenarında düştü.

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.