Aynı genel amaca aynı ada sahip iki farklı dosya vermek kötü bir uygulama mıdır?


18

Aynı genel amaca aynı ada sahip iki farklı dosya vermek ve bunları farklı dizinlere ayırmak kötü bir uygulama mıdır?

<script src="client_scripts/app/player_stats/generator.js"></script>
<script src="client_scripts/app/coach_settings/generator.js"></script>

Dosya adlarımı kısa tutmak istiyorum ve her iki dosya da aynı genel amaca sahip değil. Bunun profesyonel bir programlama ortamında kötü bir uygulama olarak kabul edilip edilmeyeceğinden emin değilim. Bu durumda en iyi uygulamanın ne olduğunu bilmek istiyorum.

Alternatif olarak, ismin kısa uzunluğu pahasına kullanabilirim:

<script src="client_scripts/app/player_stats/player_stats_generator.js"></script>
<script src="client_scripts/app/coach_settings/coach_settings_generator.js"></script>

7
Daha uzun isimler! :)
marko

2
statsgen.js,settingsgen.js
Kroltan

1
KURU! (yani daha kısa isimler)
Paul Draper

1
Temiz Kod (yani daha uzun anlamlı isimler)
Songo

Yanıtlar:


36

İki seçeneğinizin maliyet / fayda oranını göz önünde bulundurun:

  1. Aynı adı tekrar kullanmak karışıklığa veya adlandırma çakışmalarına neden olur mu? Muhtemelen hayır, çünkü bunlar farklı klasörlerde. "Player_stats / generator.js" adı "player_stats_generator.js" ile eşdeğerdir. Ancak, gelecekte, js dosyalarınızı tek bir dizine (dağıtım? I dunno) birleştirmek için bir neden görüyorsanız, bu benzersiz adlar vermek için iyi bir gösterge olmalıdır.

  2. Daha uzun isimler kullanmak çok fazla yabancı yazım gerektirir mi? Muhtemelen değil. Projede yalnızca birçok JS IDE'nin otomatik tamamlama dosya adı yapmakla kalmaz, aynı zamanda dosya başına sadece en fazla bir kez yazılan bir kod parçasıdır . Çok fazla yazılan kod , js dosyalarının içindeki sınıflar ve işlevlerdir ve (umarım) çakışma olmaz.

  3. Hata ayıklama sırasında, bir hata hakkında ne tür bilgiler alıyorsunuz? En yaygın hata raporu "satır 34'teki hata <filename.js>" ise, sadece genera.js'de hatalar alıp sonra da hangi jeneratör olduğu bağlamı aracılığıyla tanıştırmaya çalıştığından, onlara benzersiz adlar vermeyi düşünün.


5
Hata ayıklama js genellikle tüm dosya yolunu yazdırır.
Bergi

1
@Bergi Bu, tarayıcıya (ve sürüme), IDE'ye (varsa), hata günlüğü çerçevesine vb. Bağlıdır.
Avner Shahar-Kashtan

22

Pratik bir konu olarak, IDE'niz sekmelerde dosya adlarını gösteriyorsa, her dosya için aynı adı kullanırsanız, hepsinin aynı adı gösteren sekmelerle karşılaşırsınız. Bu çok can sıkıcı olabilir. Devam ettirdiğim bir projede bu sorun var ve yarısı aynı dosya adına sahip 15 sekmenin açık olması büyük bir acı.

Yani ... daha açıklayıcı isimler kullanın.


1
Çoğu modern metin düzenleyicisi, dosyalar aynı ada sahipse sekmedeki yolu gösterir.
kmiyashiro

Tabii ki, bazen birden fazla dosyanın aynı ada sahip olması gerekir [örneğin birçok sunucuda index.html]. Kendimi belirli bir dosyayla ilişkili yolu belirlemeyi zorlaştıran programlarda kendimi rahatsız buluyorum.
supercat

1
@kmiyashiro - muhtemelen öyle, ancak çok sayıda açık dosyanız varsa, sekmeler boyut olarak (genişlik) çoğunlukla dosya adlarını gördüğünüz noktaya kadar küçültülebilir. Ardından farenizi her sekmenin üzerine getirmeniz ve "araç ipucunun" tam yolu / dosyayı görüntülemesini beklemeniz gerekir. Açık olan yalnızca birkaç dosyanız ve yinelenen bir adın nadir görülen bir örneğiniz varsa, büyük olasılıkla kabul edilebilir. Ancak birçok dosyayla çok sinir bozucu olabilir.
Kevin Fegan

1
Aynı ada sahip çok sayıda sekme varsa, benzersiz adlara sahip bir sekme denizi arasında bulmaya çalışmak yerine bir tuş komutu kullanarak dosyaya geçirdim.
kmiyashiro

1
Daha açıklayıcı adlarını kullanmak oldukça rahatsız edici olabilir gerçi ... Eğer alınca some_super_long_descriptor_that_needs_more_description.jsdan ayrı ayarlamak içinsome_super_long_descriptor_that_needs_more_cowbell.js
corsiKa

12

Burada açık bir belirleyici faktör var: KURU (Kendinizi Tekrarlamayın).

Her dosya adının farklı olması gerekmez; yollar bunun için . Bilgisayarınızda kaç farklı sistem veya program dosyasının olduğunu hayal edebiliyor musunuz? Ya her birinin benzersiz bir ismi olsaydı? Bir noktada, dosya adını yolun bir kopyası yapıyoruz.

Bir Javascript dosyasının client_scripts > app > player_statsgerçekten bağlamında en iyi açıklaması ise generator, yolu olmalıdır client_scripts/app/player_stats/generator.js.

Bu soru programmers.stackexchange.com/questions/ 250481 adresindedir . Ayrıca serverfault.com/questions/ 250481 vardır . 250481Programcılar soruları bağlamında bir şey ve Sunucu Hatası soruları bağlamında başka bir şeydir.

Yollar (veya URL'ler) iç içe tanımlayıcılar oldukları için iyidir. Onları bu şekilde kullanalım :)


7

Söz konusu dil kurallarının kısa adları desteklediği matematiksel bir sabit veya döngü değişkeni gibi bir şey olmadığı sürece her zaman kısa adlar üzerinde açıklayıcı adlar kullanın. Örneğin, bir değişkeni "pi" olarak adlandırırsanız ve bu değişkenin pi'nin uygun bir şekilde kesin değeri olması durumunda, ad iyidir ve bu noktaya değinir. Öte yandan, Pi için Taylor serisinin terimlerini üreten ve yaklaşık pi'ye ekleyen bir jeneratörünüz varsa, ona "taylorPiGenerator veya benzeri" gibi bir şey vermek istersiniz.

İyi isimler şimdi refactor zamanından sonra tasarruf ediyor, hatta daha da büyük çaplı hatalar.

Temiz Kod ve Kod Tamamlandı kitapları , iyi adlandırma nedenleri ve nerede olarak önemli ayrıntılara girer, ancak hiçbir şekilde tek kaynak değildir.


Bu yanıtın bu özel örnek için iyi olduğu görülüyor, ancak genel soruyu ele almıyor.
Paul Draper

3

Bu, üzerinde çalıştığınız teknolojiye bağlıdır. İsimler öğeleri ve yollar içeriği tanımlamalıdır. İyi isimlendirmenin önemli olduğunu kabul ediyorum ama hey, yollar da isimler. Ancak pratik açıdan, Javascript gibi bir şey kullanıyorsanız , son öğeler için daha kesin adlar tutmak muhtemelen daha iyidir. Python gibi bunu dikkate alan araçlarla çalışıyorsanız , önerilen yol aynı yolu farklı yol (modül, ad alanı) ile kullanmak olacaktır. Java'ya bakarsanız, aynı ada ve farklı paketlere sahip sınıflar da bulacaksınız. Bir adım daha ileri gidebilir ve yöntemlerin sınıf bağlamında eylemler olarak adlandırıldığını söyleyebiliriz ve farklı sınıflarda aynı olarak adlandırılan, kendileri aynı olarak adlandırılabilecek ancak farklı paketlere yerleştirilebilecek yöntemlerimiz var. Python'un Zen'i şöyle diyor:

İsim alanları harika bir fikirdir - hadi bunlardan daha fazlasını yapalım!

Ama javascript tuhaf ve perks vardır, bu yüzden farklı isimlerle gitmenizi tavsiye ederim (dosyalar farklı yollarda olsa bile). Ayrıca, javascript'te temiz kod yazmanıza yardımcı olabilecek modül desenini arayabilirsiniz:

    var playerStatsGenerator = player_stats.Generator();
    var coachSettingsGenerator = coach_settings.Generator();

Pastanızı alıp yiyebilirsiniz.

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.