Bir modülü değiştirirken / eklerken başka bir geliştirici kodunu yeniden biçimlendirmek uygun mudur?


13

Grup atmosferinde gelişirken ve bazı kod tabanlarında özellikler eklerken veya değiştirirken. Önceki geliştiriciler kodunu mevcut kodlama standartlarına getirmek için yeniden biçimlendirmenin saldırgan veya kaba olduğu düşünülüyor mu? Standartların değiştiğini ve muhtemelen değişmeye devam edeceğini anlıyorum, ancak birisi gelir ve kod biçimlendirmenizi değiştirirse herhangi biriniz rahatsız olur mu?

Açık olmak gerekirse, herhangi bir mantığı değiştirmekten bahsetmiyorum, sadece sekmeler ve boşluklarla uğraşmak gibi.

EDIT: Ben sadece kodlama standartları uğruna yapmakla kalmaz, kodlarını okumak ve güncel getirmek için yardımcı olur, böylece kritik uygulamaları değiştirmeye başlamadan önce uygulanan mantığı tam olarak anlayabiliyorum.


6
Herkes için otomatik "kaydetme biçimini" etkinleştirin. Herkes aynı kararlaştırılmış ayarları kullanır. Bir süre sonra tüm kodlar normalleştirilir.

1
Bunun çok ileri gideceği bir nokta olabilir. İlgilendiğim kadarıyla ihtiyaç duyulan ve hatta alakalı olmayan her şeyi ekleyen satır çizgilerini yeniden biçimlendiren bir iş arkadaşım vardı. Kişisel olarak okunamaz veya kod birincil sorumluluğum haline gelmedikçe, başka değişiklikler yapmadıkça biçimlendirmeyi yalnız bırakıyorum.
SoylentGray

1
C # ile kod yazıyorsanız, StyleCop'a sadık kalın. Diğer dillerde ise, iyi ve tarafsız bir araç seçmeye çalışın.
Meslek

5
Bu "çünkü ... biçimlendirme değiştireceğim mı ben .. farklı bakmak gerekir düşünüyorum" veya bu "Ben biçimlendirme değiştireceğim ... çok maç olduğunu standartları " ... derece farklı soru
WernerCD

1
@Thorbjorn Her dosyada biçimlendirmeyi düzelten bir dalı, her işlem için 1 dosya, geçmişi öldürmeyi düşünmezdim. Bununla birlikte, aynı taahhüt sırasında düzeltmek sadece kötü. (Sanırım git addbölümleri seçici olarak yürütmek gibi bir şey kullanabilirlerdi , ama benim tahminim çoğu insan svn commitya da eşdeğerini kullanıyor git commit -a)
alternatif

Yanıtlar:


19

Standartlar üzerinde anlaşıldığı sürece bunun iyi olduğunu düşünüyorum. Ancak bir uyarı notu; dosyanın aynı anda başkaları tarafından değiştirilme potansiyeli olup olmadığına dikkat edin. Biçimlendirmeyi değiştirdiğiniz için birleştirmelerini zorlaştırırsanız çok popüler olmayacaksınız.


10
Buradaki ilk cümle önemlidir. Yalnızca kabul ettiğiniz standartlara uyduğunuzdan ve yalnızca onları sevdiğiniz için değişiklik yapmadığınızdan emin olun.
Thomas Owens

5

Evet, kod projeye ait olmalıdır. Kodu standarda getirmek projenin teknik eksikliğini azaltmaya yardımcı olacaktır. Değişiklik yapıyorsanız, şu anda bundan siz sorumlusunuz. Eski kodlar için orijinal geliştirici artık projede olmayabilir veya yeni görevleri olabilir.

Bu tür bir değişiklik yaptığınızda, yeniden biçimlendirmeden sonra doğrulama testlerini yapmak iyidir. Geçerlerse, özellik değişikliklerinizi yapmadan önce kodu kontrol edin.

DÜZENLEME: Bu soru bağlamında standarda yeniden biçimlendirme yapılması uygundur. Standartların yokluğunda, format için standartlar olana kadar standartların savunulmasını ve yeniden biçimlendirilmemesini tavsiye ederim. Kişisel zevklere / standartlara göre yeniden biçimlendirme, projeye ait kodlarla yapılmamalıdır.


2
"Özellik değişikliklerinizi yapmadan önce kodu kontrol edin" için +1
bdoughan

1
"Özellik değişikliklerinizi yapmadan önce biçimlendirme değişikliklerini kontrol edin" ve "yeniden biçimlendirmeden sonra doğrulama testlerini yapmak iyi" için tekrar +1. İdeal olarak, her check-in işleminden önce doğrulama testleri yapmalıyız.
leed25d

Aslında, değişikliklerden önce veya sonra yeniden biçimlendirmek gerçekten önemli değil. Önemli olan, estetik yamaların fonksiyonel yamalardan ayrı tutulması gerektiğidir -> estetik bir yama işlevselliği değiştirirse, tasarlanmamıştır ve bir hata olarak kabul edilebilir; fonksiyonel yamaların daha kolay incelenmesini sağlar (çünkü daha küçüktür).
Matthieu M.

@Matthiew M: Doğru, ancak çoğu durumda bakımdan önce sürdürülebilirliği artırmak için yapılacaktır. Birkaç geliştiricinin bunu yapması için zamanı var. Ayrıca, kodun otomatik check-in testlerini geçmesi için yükseltilmesi gerekiyorsa, önce estetik ve fonksiyonel yamaların ayrılmasını sağlamak için yeniden biçimlendirilmelidir.
BillThor

3

Belirli bir dosyayı değiştirirken / eklerken kodu yeniden düzenlemenin her zaman iyi bir uygulama olduğuna inanıyorum . Bu, kodun stilinin, değişkenler / yöntemler ve kodlama stilleri için uygun adlandırma kurallarını yansıtacak şekilde güncellenmesini içerir.


OP yeniden düzenleme değil yeniden biçimlendirme hakkında sorular sordu.
quant_dev

Biliyorum; Ben de yeniden biçimlendirme dahil düşünün dedim :)
Wayne Molina

2

Bunu her zaman yaparım. Eski kod aynı yeni kod standartlarına uygun olmalıdır ve üzerinde çalışırken bunu düzeltmezseniz kimse yapmaz. Bence bu İzci Kuralı altında.


2

Bunun iyi bir uygulama ve kod bakımının gerekli bir parçası olduğunu düşünüyorum.

Sürüm kontrol sistemine yapılan bir biçimlendirmedeki biçimlendirme değişikliklerini ve hem kendinizin hem de başkalarının neler olduğunu anlamasına yardımcı olmak için ayrı bir işlemdeki işlevsel değişiklikleri kontrol etmenizi öneririm.


1
Ayrı taahhütler için +1. Kod yeniden biçimlendirildiğinde aynı anda hangi kod değişikliklerinin yapıldığını anlamaya çalışmak bir PITA'dır. Fark araçlarınız, dosyadaki her satır değiştiyse işe yaramaz.
Dave Kirby

2

Ben onunla herhangi bir sorun olmaz ve muhtemelen takdir ediyorum ... değişiklikler "din" olmadığı sürece. Lütfen tüm sınıflarımdan geçmeyin ve kıvırcık parantezleri yöntemin ilk satırına taşıyın. Biçimlendirme meşru bir "farklı insanlar için farklı konturlar" türünde bir şeyse, birisi içeri girdiğinde ve en sık düzenlediğiniz kod üzerine bir biçim uyguladığında biraz can sıkıcıdır. Ancak, söz konusu modülün birincil düzenleyicisi olursanız, gördüğünüz biçimlendirme değişikliklerini uygun şekilde yapın.


1

Evet. Lütfen kodu gördüğünüz gibi "düzeltin". Sadece Pragmatik Programcılar kendi kitabında dedikleri gibi Pragmatik Programcı , hiçbir kırık camlar. Kod eşit değilse, ben kırık bir pencere olduğunu düşünüyorum.


1

Check-in sırasında otomatik olarak yeniden biçimlendirecek çeşitli kaynakların yanı sıra, kaynağı alan platforma bağlı olarak CR / LF eşleştirmesini değiştir gibi küçük şeyler de vardır.

Kendi delillerinizi tekrar açmanızın deltaların tonlarca yeniden biçimlendirmeyle kapatılması açısından büyük bir dezavantajı vardır ve bir regresyon problemi varsa rahatsız edici kod bloklarını bulmak daha zor hale gelir.

Potansiyel müşterilerinize kod tabanı eski olduğu için soğuktan getirilmesi ve mevcut standartlara tek seferde yeniden biçimlendirilmesi ve her yerde kod için yeni ve parlak bir geleceğe yol açmasını önerebilirsiniz.


1

Tamamen "biçimlendirme" sorununu konuştuğunuz için (yani hataları düzeltmiyoruz, ancak kendi standardınıza göre güzel hale getiriyoruz), orijinal kişinin hala kodu koruyup korumadığına bağlı olduğunu düşünüyorum.

Oluşturan hala proje üzerinde çalışıyorsa - bu kaba. Size doğru "bakabilecek" şey, onlara doğru "bakacak" ve biçimlendirme uğruna kodu değiştirmek kibar değildir. Ayrıca çok zaman harcayabilir.

Bir zamanlar ÇOK iyelik sahibi bir geliştirici ile bir proje üzerinde çalışıyordum. Yıllar boyunca, kodumu biçimlendirmenin okunması kolay olduğunu, örtülü hatalara daha az eğilimli olduğunu ve kendini belgelediğini çok metodik bir şekilde geliştirdim. Öte yandan, bu adam, 300 karakter genişliğinde uzun satırlara sahip tüm örtülü özellikleri kullanmayı tercih etti, böylece satır sayısının okunabilirlikten daha önemli olduğuna inandığı için okumak için 30 inçlik bir monitörünüz olması gerekiyordu. Yarım gün geçirdi. kodumdan "tercih edilen standardına" dönüştürerek ... hala paralel olarak gelişirken, ertesi sabah onun karmaşasına göre biçimlendirilmiş iki gün değerinde iş bulmaya geldim.Kaba ve zaman kaybı.

Şimdi geliştirici gitti ve "daha iyi bir stil" varsa bunun için gidin.


0

IDE'niz yapabilirse kodu daima otomatik biçimlendirin .

  • Manuel biçimlendirme değişikliklerinin uzun vadede sürüm geçmişinizi karıştırmasını önler
  • Formatlayıcı profili tüm geliştiriciler arasında kararlaştırılmalıdır (varsayılanı seç? -)
  • Bir dosyayı kaydederken biçimlendirme kodu oluşturma ve içe aktarma işlemlerini alışkanlık haline getirme

Örneğin, tutulmada, önce biçimlendiriciyi çalıştırabilir ve tüm kod tabanı için içe aktarımları düzenleyebilirsiniz. Ardından kaydetmeden önce ctrl + alt + f tuşlarını unutmayın.

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.