“Gerekirse X yapın” yöntemini adlandırmak


23

X'in yapılması gerekip gerekmediğini kontrol eden ve gerekirse X'i yapan bir yöntemi adlandırmanın iyi bir yolu nedir?

Örneğin, yeni kullanıcılar giriş yaptığında bir kullanıcı listesini güncelleyen bir yönteme nasıl ad verilir? UpdateListIfNeededçok uzun gözüküyor, bununla birlikte basit UpdateListbir işlem muhtemelen pahalı ve gereksiz bir işlem her seferinde gerçekleştiriliyor. EnsureListUpdatedaynı zamanda bir değişkendir.

C #, X'in mümkün olup olmadığını kontrol etmek ve yapmak için bir bool TryXXX(args, out result)şablona (örn. int.TryParse(str, out num)) Sahiptir, ancak bu çok farklıdır.


1
Sadece bir öneri noktası, bu gibi yöntemler, iyi niyetli olsa da, dikkatle oluşturulmalıdır. Yol boyunca "sadece durumda" ya da "X () 'de bir çağrı ekleyerek bir hatayı düzeltti, ama neden olduğundan emin değilim" kisvesi altında ilgisiz kodlara maruz kalma eğilimindedirler. Yalnızca ( RefreshUserList()sırasında LoginUser()ve listenin güncel olması gereken yerlerde) LogoutUser()söyleme sırasında ve sırasında arama yapacak bir disiplin varsa GetUser(), o zaman elbette aşağıdaki tavsiyeler geçerlidir.
Kevin McCormick

Yanıtlar:


25

Kullanmaya meyilliyim Ensure. Bir şeyin halledildiğinden emin olmanın anlamını taşıyor, ancak yapılması gerekiyor. Zaten iyiyse, kontrol et ve işimiz bitti. Aksi takdirde, yap. Her iki durumda da, sadece yapıldığından emin olun .


13

Benim tercihim UpdateList. Hiçbir şey yapılmaya ihtiyaç duymuyorsa, öyle olsun. Gider yine de her zaman en aza indirilmelidir, bu yüzden UpdateListgereğinden fazlasını yapıyorsa uygulamasında bir şeyler yanlış olur.

Temel olarak, size yöntemin ne yapması gerektiğini söyleyen bir fiildir. CalculateXher zaman X'i yeniden hesaplamalıdır. GetYdaima Y'yi döndürmelidir, ancak yalnızca gerekirse alma işlemini yapın. Aynı şekilde, UpdateZmümkün olan en verimli şekilde yapıldığını varsayarak Z'nin de güncellenmesini ister.


2

Call Me Maybe"

Gördüğüm Haskell pasajlarından ortak seçildi, dene

UpdateListMaybe();

2
Sanırım Haskell'i daha iyi anladıysam, bu daha mantıklı olabilir. Sonuç: Bu, Haskell dışında bir dilde kullanılıyorsa, sadece Haskell'i tanıyanlar tarafından anlaşılacaktır.
Robert Harvey

2
Altı yıl sonra, Haskell hakkında biraz daha fazla bilgi sahibi olan farklı bir programcıyım. Artık bu cevabı onaylamıyorum, haha. Sanırım o zamanki fikrim, işlevin bir çeşit seçiciliği yerine getirdiğini belirtmek için "belki" kelimesini kullanmaktı. Hala bazen bunu (örneğin Opsiyon [A] => B maybeToB denir)
Mark Canlas
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.