"Foos sayısı" değişkenleri için adlandırma kuralları [kapalı]


90

Foo nesnelerinin sayısını bir değişkende saklamam gerektiğini varsayalım.

Anadili İngilizce olan biri olmadığım için, her zaman bu varyant için en iyi (= kısa ve hemen anlaşılır) adın ne olduğunu merak ediyorum.

foo_num? num_foo? no_foo? foo_no? veya başka bir şey?

Tam adı olmalı number_of_foos, ama biraz ayrıntılı.

En sevdiğin nedir ve neden?


FooCount cevabını beğendim, ama number_of_foos'un çok uzun olduğunu düşünmüyorum, ama sanırım bu "foo" nun gerçekte ne olduğuna bağlı.
Şans

Ve ayrıca değişkenle ne yapmak istediğinizi. number_of_foosİçinde bulunan aritmetik ifadeler hızla hantal hale gelir.
user7610

Yanıtlar:


52

Bunun için gidiyorum fooCountçünkü basit ve bence "sayı" kelimesi onu en kısa ve en iyi tanımlayan, "sayısı" veya benzeri bir şey değil.

Ben .... için giderim FOO_COUNTSon ve statik olarak saklamanız gerekip gerekmediğini (eğer değiştirmenize gerek yoksa / sabitse). (sabitler için tümü büyük harf!)

Yaptığınız bir sınıf için gerçekten bir nitelik olarak saklamanız gerekiyorsa, gidip countçağırıyorum.Foo.countFoo .

sizin ve ekibiniz için okunabilirlik!


foosCount, çünkü çoğul bir kümeyi daha iyi temsil eder. Ve bir dizi şey olması gerekiyordu.
Magne

Ama duruma göre değişir. Çoğul gibi bazı isimler için kulağa hoş geliyor gamesIncludedCount, ancak tekil ses gibi diğer isimler için daha iyi gameCount.
Magne

26

Değişken, foo nesnelerinin sayısını sakladığından, fooCountoyumu alır.


Bir gerekçe eklemek için +1 (her ne kadar ifade oldukça kayıtsız olsa da).

1
@delnan - Normalde detaylandırırdım ama telefonumdan cevap veriyorum.
Justin Niessner

17

İngilizcede, 'sayı' ve 'sayım' kelimelerinin her ikisi de isim veya fiil görevi görebilir, ancak isim olarak 'sayı' ve fiil olarak 'saymak' daha yaygındır. Dolayısıyla, "foos sayısı" veya "num_foo" nun "foo sayısı" veya "foo_count" dan daha tanıdık geldiğini iddia edebilirsiniz. Sürekli değişmeyen bir niceliğe atıfta bulunmak bana kesinlikle daha doğal geliyor. Bir isim olarak kullanıldığında bile 'saymak' kelimesi bana zamanla artan bir değeri öneriyor.

Ruby ve Python, bir isim yerine fiil olarak kullanılan sözcüğü gösteren .count yöntemlerine sahiptir. Ruby'de şöyle diyebilirsiniz:

foos.count   # Count how many elements in the array 'foos'

Yine de bu, foos sayısını temsil eden bir değer döndürür; bu, 'foo_count' adlı bir değişkene az önce başvurduysanız tam olarak beklediğiniz şeydir. Yani bazı açılardan, 'foos.count' ve 'foo_count' benzer görünmesi oldukça hoş.

'Sayı' bazı durumlarda belirsiz olabilir, çünkü bir şeyin miktarını temsil etmeyen sayıları depolamak yaygın bir durumdur. Başkaları zaten kimliklerden ve kredi kartı numaralarından bahsetti. İşte başka bir örnek:

num_string

Bu değişken adına baktığınızda, neyi temsil ettiğini tahmin edebilir misiniz? Dizgelerin miktarını temsil eden bir tamsayı mı yoksa bir sayının dizge gösterimi mi?

Bu yüzden gerçekten yüksek sesle düşünüyorum ve her biri için bazı artılar ve eksiler görüyorum. Bu eski sayfada bile olmamın nedeni, kendimi ikisini tutarsız bir şekilde kullanırken bulmam ve diğer insanların ne yaptığını göreceğimi düşünmem.

BTW, 'nr' gerçekten bana 'sayı' kelimesi gibi gelmediğinden veya kulağa hiç benzemediğinden 'nr_foo'dan hoşlanmıyorum. Kulağa 'ner' gibi geliyor veya belki 'derecelendirilmemiş' veya 'ulusal ragbi' anlamına geliyor. :-) Ve fooCnt'un neye benzediğini söylemeye bile yeltenmeyeceğim. Sadece hayır.


15

Linux çekirdeği "no_foo" dan daha iyi olan "nr_foo" kullanır (bu bir olumsuzlama gibi görünür). Ben kendim "fooCount" veya "fooCnt" kullanma eğilimindeyim, ama bazen "numFoo". Neden "fooCount" ve "numFoo" arasında gidip geldiğimden emin değilim. Sanırım ruh halime bağlı. Ama sen tutarlı olmalısın (benim yapmam gerektiği gibi);)


4
@rjack - "sayı" belirsizdir, "sayı" özeldir. Numara, örneğin bir kimlik olabilir. [Sanırım McConnell "Kod Tamamlandı" da bu noktaya değiniyor, ancak yanımda bir kopyası yok.] "Sayı" nın daha büyük olasılıkla anlaşılan kısaltmaları (Linux çekirdek yazarları dışında) "nFoo" ve "numFoo" yu içerir.
Andy Thomas

1
@Andy Thomas-Cramer - O kadar kafa karıştırıcı değil IMHO: credit_card_nr"kredi kartı numarası" nr_credit_cardsgibi ses çıkarırken "kredi kartı sayısı" gibi geliyor ve daha kısa credit_cards_count. Bana oldukça doğal geliyor (ama anadili İngilizce olmadığım için yanılıyor olabilirim).
Giacomo

1
@rjack Bir bileşiğin parçası olduklarında isimleri genellikle çoğullaştırmadığınız için yine de credit_card_count olacaktır.
siride

1
Linux'un "nr" si ve sizin cevabınız, "sayı" kelimesinin ne kadar kafa karıştırıcı olduğuna dair güzel bir örnektir. Linux'ta "nr" (ayrıca?) Count yerine sıralı sayı anlamına gelir. Örneğin __NR_open, opensistem çağrılarının sayısı değildir - bu, sistem çağrısının indeksidir, yani hangi sistem çağrısını çağırdığınızı belirtmek için sistem çağrısı talimatına ilettiğiniz değer.
Ruslan

1
@ Kal'ın cevabında olduğu gibi, fooCntyanlış yorumlama potansiyeli nedeniyle kişisel olarak kaçınırdım.
Ruben9922


5

Ben şahsen dil standardına göre total_foosveya buna totalFoosbağlı olarak giderdim . Değerin, yalnızca değişen bir sayı değil, nihai bir toplam olduğunu daha iyi temsil eder.

Ayrıca "3 tane foosum var" yerine "Toplam 3 foom var" demek daha mantıklıdır.

Genel olarak, bu büyük bir anlaşma değil ama her zaman totalover kullanıyorum count!


1
totalFoostam bir Foos seti olduğunu ima edebilirdi (benim durumumda, çeşitli setler toplarken oldu). Ayrıca, okunabilirlik için tanımlayıcının kelimenin başında olması güzel. Daha foosCountaz kararsız olduğu ve ile başladığı için devam ediyorum foo*. Ayrıca "3 foosCountum var" da diyebilirsiniz.
Magne

3

Çoğunlukla fooCountherkesin dediği gibi. Bazen kullanmak daha uygundur foos, genellikle foos listesine sahip olmadığınız veya ayrı nesneler olmadığı durumlarda (örneğin seconds; alabileceğiniz bir pizza için slicesvb.)

Sadece fooskafa karışıklığı ihtimali olmadığında kullanın - bu bağlamda hiçbir zaman bir foos listesine sahip olamayacağınız açık olduğunda.


Eğer kullanırsanız foos"sayısını ifade etmesi bazen foo"toplanmasını anlamında ve diğer zamanlarda nesneler" foonesneler, o karışıklığa yol açabilecek düşünürdüm.
James McNellis

slicesbana slicebir pizzanesnenin parçası olan nesneler dizisi gibi geliyor . Kullanırdım sliceCountya da ya nr_slicesda her neyse (henüz karar vermedim: D)
Giacomo

Evet, bunu yalnızca kondisyon şansı olmadığında kullanın
yapılandırıcı

2

Bir şeylerin miktarı için kullanıyorum: somethingCount ( something_count )

Bazı şeylerin sıra numarası için kullanıyorum: somethingIndex (bir şey_dizin ), çünkü "sayı" kelimesi belirsizdir ( bu, miktar ve sıra numarası anlamına gelir )



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.