Yöntemim veya değişken isimlerim çok mu uzun? [kapalı]


15

Bu yüzden şu anda kodlamanın ortasındaydım, maalesef benim için "Bölge "'deydim, sonra kendi kendime düşündüm, yöntem / değişken isimlerim uzun mu?

Bölge dışında POP gidiyorum!

Buraya sormaya geldim, yöntemim / değişken isimlerim çok mu uzun? Hakim ol! Bonus, ne yazdığımı anlayabilen herkese puan veriyor, ancak bir guru hızlı bir şekilde çözeceğinden eminim!

Her neyse, yöntemim ve değişken isimlerimden bazıları.

Yöntemler: searchBlockedListForBlockedSquares (), isCurrentSquareNextToAtLeastOneBlockedSquare (), searchBlockedListForBlockedSquares ()

Değişkenler: isNextToBlockedSquares;

Sanırım çok uzun görünen tek bir değişken vardı.


Yanıtlar:


31

İsimlerin uzunluk bakımından bana iyi geliyor. Ancak, isimlendirilme biçimleri belki bazı yeni sınıfların düzenli olduğunu gösteriyor?

Örneğin, bunun yerine sahip searchBlockedListForBlockedSquares()olabilirsiniz blockedList.getBlockedSquares(). Benzer şekilde isCurrentSquareNextToAtLeastOneBlockedSquare()olur currentSquare.isAdjacentToABlockedSquare().


Bitişik aradığım kelime oldu! Teşekkür ederim =)
Bryan Harrington

@Bryan: Rica ederim. :)
Adam Lear

11

Uzun değişken isimleri anlamına gelse bile açıklayıcı değişken isimlerine inanıyorum. Ve akıllılığın daha popüler hale gelmesiyle, bunun verimlilik açısından çok fazla etkilediğine inanmıyorum.

Kısaltmalardan nefret ediyorum çünkü sürekli kullanmak neredeyse imkansız. Ayrıca, belirsiz olabilirler ve okumayı zorlaştırırlar. Bir standardın parçası olsalar bile, onları sevmiyorum. Ayrıca, söz konusu olduğunda, çok kısaltmadığınız sürece o kadar fazla harfi kaldırmazlar. Ve çok kısaltılması okunabilirliği öldürür.

Uzun isimlerin getirdiği en büyük sorun, kod satırlarının ne kadar uzun olabileceğidir. Uzun bir isimle bir fonksiyon çağırmak ve onu iki veya üç uzun değişken isminden geçirmek bir uzun kod satırı oluşturabilir. Bu nedenle, isimlerimi olabildiğince kısa tutmaya çalışıyorum, satırları kaydırmak veya kaydırma yapmak olsa bile açıklayıcı isimler almayı tercih ederim.

Yine de örnek adlarınıza bakıldığında, BlockedSquares ile biten gerçeği, adın bir kısmının gereksiz olabileceğini düşündürüyor. Aslında, bu öğelerin muhtemelen BlockedSquares olarak adlandırılan kendi sınıflarına kapsüllenebileceği anlamına da gelebilir. İsimleri biraz daha kısaltan bu değişiklik.


5

Değişken adı, amacını açıkça tanımlamıyorsa yanlış uzunluktur. Bu çok kısa veya çok uzun olmak için geçerlidir.

Kısa ve kısa değişken adları belirsiz olabilir veya daha kötüsü değişkenin ne olduğu ile hiçbir ilişkisi yoktur. Yorumlanan BASIC günlerinde, tercüman tarafından iki karakter adıyla sınırlı kaldık. Büyük bir programda anlamlı isimler bulmak çok zordu. Tek harfli değişken isimleri for-loop'lar ve sayaçlar için sıklıkla kullanılır, ancak bence aksi belirtilmemelidir. for (i = 0; i < 10; i++) {...}kullanır ive bu oldukça yaygındır. jikincil değişken adıdır.

Uzun değişken isimleri, uzun soluklaştıklarında veya boş kelimelerle dolduklarında çok uzun olur ve gerektiğinden daha uzun olurlar. Benzer adlandırılmış değişkenlerden oluşan bir grubum varsa, dağıtılabilir olan ortak bölümleri kaldırmaya ve adların benzersiz olarak tanımlanmış bölümlerini tutmaya çalışacağım.

Ruby'de yapsaydım, " isCurrentSquareNextToAtLeastOneBlockedSquare" olarak adlandırırdım currentSquareNextToBlockedSquare?.

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.