Konvensi penamaan untuk variabel "jumlah foo" [ditutup]


90

Misalkan saya perlu menyimpan jumlah objek foo dalam variabel.

Bukan penutur asli bahasa Inggris, saya selalu bertanya-tanya apa nama terbaik (= singkat dan jelas) untuk var itu.

foo_num? num_foo? no_foo? foo_no? atau sesuatu yang lain?

Nama lengkapnya harus number_of_foos, tapi agak bertele-tele.

Apa favoritmu dan kenapa?


Saya menyukai jawaban fooCount, tetapi menurut saya number_of_foos tidak terlalu panjang, tetapi saya rasa itu tergantung pada apa sebenarnya "foo" itu.
Kesempatan

Dan juga apa yang ingin Anda lakukan dengan variabel tersebut. Ekspresi aritmatika dengan number_of_foosdi dalamnya menjadi rumit dengan cepat.
pengguna7610

Jawaban:


52

Saya mencari fooCountkarena itu mudah, dan menurut saya kata "hitung" adalah yang terpendek dan terbaik yang menggambarkannya, bukan "jumlah" atau sejenisnya.

Saya pergi FOO_COUNTjika Anda perlu menyimpannya final dan statis (jika Anda tidak perlu mengubahnya / jika itu adalah konstanta). (huruf besar semua untuk konstanta!)

Saya pergi countdan menyebutnya dengan Foo.countjika Anda benar-benar harus menyimpannya sebagai atribut untuk kelas yang Anda buat, yaitu Foo.

keterbacaan untuk Anda dan tim Anda!


foosCount, karena jamak lebih baik mewakili satu set. Dan itu seharusnya menjadi hitungan dari serangkaian hal.
Magne

Tapi itu tergantung. Bunyi jamak bagus untuk beberapa nama gamesIncludedCount, tetapi bunyi tunggal lebih baik untuk nama lain seperti gameCount.
Magne

26

Karena variabel menyimpan hitungan jumlah objek foo, fooCountdapatkan suara saya.


1 untuk menambahkan alasan (meskipun ungkapannya agak janggal).

1
@delnan - Biasanya saya akan menjelaskan tetapi saya menjawab dari telepon saya.
Justin Niessner

17

Dalam bahasa Inggris, kata 'number' dan 'count' dapat berfungsi sebagai kata benda atau kata kerja, tetapi mungkin lebih umum melihat 'number' digunakan sebagai kata benda, dan 'count' sebagai kata kerja. Jadi Anda bisa berargumen bahwa 'jumlah foo' atau 'num_foo' terdengar lebih familiar daripada 'jumlah foo' atau 'foo_count'. Jelas terdengar lebih alami bagi saya ketika merujuk pada kuantitas yang tidak terus berubah. Kata 'count', bahkan ketika digunakan sebagai kata benda, menunjukkan kepada saya sebuah nilai yang terus meningkat dari waktu ke waktu.

Ruby dan Python memiliki metode .count, yang mendemonstrasikan kata yang digunakan sebagai kata kerja, bukan sebagai kata benda. Di Ruby Anda mungkin berkata:

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

Namun, ini mengembalikan nilai yang mewakili jumlah foo, yang persis seperti yang Anda harapkan jika Anda baru saja mereferensikan variabel yang disebut 'foo_count'. Jadi dalam beberapa hal, fakta bahwa 'foos.count' dan 'foo_count' terlihat mirip cukup bagus.

'Angka' dapat menjadi ambigu dalam beberapa kasus, karena menyimpan angka yang tidak mewakili kuantitas sesuatu adalah hal yang umum. Orang lain telah menyebutkan ID dan nomor kartu kredit. Berikut contoh lainnya:

num_string

Melihat nama variabel itu, bisakah Anda menebak apa yang diwakilinya? Apakah itu bilangan bulat yang mewakili jumlah string, atau apakah itu representasi string dari sebuah angka?

Jadi saya hanya berpikir keras, dan memberikan beberapa pro dan kontra untuk masing-masing saat saya melihatnya. Alasan saya bahkan di halaman lama ini adalah karena saya menemukan diri saya menggunakan keduanya secara tidak konsisten dan berpikir saya akan melihat apa yang dilakukan orang lain.

BTW, saya tidak suka 'nr_foo', karena 'nr' sama sekali tidak menyarankan atau terdengar seperti kata 'angka' bagi saya. Kedengarannya seperti 'ner', atau mungkin singkatan dari 'not rated' atau 'national rugby'. :-) Dan saya bahkan tidak berani mengatakan seperti apa suara fooCnt. Tidak.


15

Kernel Linux menggunakan "nr_foo", yang lebih baik daripada "no_foo" (yang terlihat seperti negasi). Saya sendiri cenderung menggunakan "fooCount" atau "fooCnt", tetapi terkadang juga "numFoo". Saya tidak yakin mengapa saya bimbang antara "fooCount" dan "numFoo". Kira itu tergantung mood saya. Tetapi Anda, Anda harus konsisten (seperti yang seharusnya saya);)


4
@rjack - "number" tidak jelas, "count" adalah spesifik. Angka bisa menjadi ID, misalnya. [Saya pikir McConnell membuat poin ini dalam "Code Complete," tetapi saya tidak memiliki salinannya.] Singkatan dari "number" yang lebih mungkin dipahami (selain oleh penulis kernel Linux) termasuk "nFoo" dan "numFoo."
Andy Thomas

1
@Andy Thomas-Cramer - IMHO tidak terlalu membingungkan: credit_card_nrterdengar seperti "nomor kartu kredit", sedangkan nr_credit_cardsterdengar seperti "nomor kartu kredit" dan lebih pendek dari credit_cards_count. Kedengarannya wajar bagi saya (tetapi saya mungkin salah karena saya bukan penutur asli bahasa Inggris).
Giacomo

1
@rjack Bagaimanapun juga, ini akan menjadi credit_card_count, karena Anda biasanya tidak membuat kata benda jamak ketika mereka adalah bagian dari suatu gabungan.
siride

1
"Nr" Linux dan jawaban Anda adalah contoh yang baik tentang betapa membingungkannya kata "nomor". Di Linux, "nr" adalah (juga?) Digunakan untuk mengartikan nomor urut, bukan hitungan. Misalnya __NR_openbukan jumlah openpanggilan sistem - ini adalah indeks dari panggilan sistem, yaitu nilai yang Anda berikan ke instruksi panggilan sistem untuk menentukan panggilan sistem mana yang Anda panggil.
Ruslan

1
Seperti dalam jawaban @ Kal, saya pribadi akan menghindari fooCntkarena berpotensi salah menafsirkannya.
Ruben9922


5

Saya pribadi akan memilih total_foosatau totalFoosbergantung pada standar bahasa. Ini menunjukkan lebih baik bahwa nilainya adalah total akhir dan bukan hanya hitungan berjalan.

Juga lebih masuk akal untuk mengatakan "Saya memiliki 3 total foo" daripada "Saya memiliki 3 jumlah foo".

Secara keseluruhan, itu bukan masalah besar tapi saya selalu menggunakan totallebih count!


1
totalFoosdapat menyiratkan bahwa itu adalah satu set lengkap Foos (itu terjadi dalam kasus saya, ketika saya mengumpulkan berbagai set). Juga, bagus untuk memiliki pengenal di awal kata, agar mudah dibaca. Jadi saya akan pergi dengan foosCount, karena kurang ambivalen dan dimulai dengan foo*. Anda juga bisa mengatakan "Saya memiliki foosCount 3".
Magne

3

Kebanyakan fooCountseperti yang dikatakan semua orang. Kadang-kadang lebih tepat untuk digunakan foos, biasanya ketika Anda tidak benar-benar memiliki daftar foo, atau mereka bukan benda yang terpisah (misalnya seconds; untuk pizza yang bisa Anda makan slices, dll.)

Gunakan hanya foosjika tidak ada kemungkinan kebingungan - jika jelas Anda tidak akan pernah memiliki daftar foo dalam konteks ini.


Jika Anda menggunakan fooskadang-kadang untuk mengartikan "jumlah fooobjek" dan waktu lain untuk berarti "kumpulan fooobjek, menurut saya hal itu dapat menimbulkan kebingungan.
James McNellis

slicesbagi saya terdengar seperti larik sliceobjek, yang merupakan bagian dari pizzaobjek. Saya akan menggunakan sliceCount, atau nr_slices, atau apa pun (saya belum memutuskan: D)
Giacomo

Ya, gunakan hanya jika tidak ada kemungkinan kondusi
konfigurator

2

Saya gunakan untuk kuantitas sesuatu: sesuatuCount ( jumlah_suatu )

Saya gunakan untuk nomor urut sesuatu: sesuatuIndex ( sesuatu_indeks ), karena kata "angka" itu ambigu ( itu berarti kuantitas dan nomor urut )



Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.