C#で使える命名用語彙辞典(逆引きリファレンス)

コンピュータ

非同期メソッド名を付けたい

  • 原則 -Async 接尾辞:GetUserAsync, LoadConfigAsync, ResizeImageAsync
  • 待機不要の発火系は FireAndForget を避け、用途語で:QueueSend, EnqueueWork
  • 並列可否を含めたい:ProcessBatchAsync, ProcessInParallelAsync
public Task<User> GetUserAsync(UserId id, CancellationToken ct = default);
public Task LoadConfigAsync(string path, CancellationToken ct = default);

bool プロパティ/フラグを付けたい

意味に応じた接頭辞を選択:

  • Is(状態):IsEnabled, IsEmpty, IsDirty
  • Has(所有):HasValue, HasChildren
  • Can(能力):CanExecute, CanRead, CanRetry
  • Should(方針):ShouldRetry, ShouldCache
  • Allow/Enable(設定):AllowOverwrite, EnableLogging

例外を投げずに「試す」APIを作りたい

  • Try- + 成功時に値を outTryParse, TryGetValue, TryLoad, TryResize
  • 戻り値は bool、失敗理由は out errorresult に含める。
public static bool TryParseUser(string s, out User result);
public bool TryLoad(string path, out Image img);

イベント名/発火メソッド名を決めたい

  • イベントは「何が起きたか」を過去分詞/完了形で:Loaded, Changed, Completed, Failed
  • 発火メソッドは On-OnLoaded, OnChanged
  • ハンドラ型は EventHandlerEventHandler<TEventArgs>

コレクション操作の動詞を選びたい

  • 追加/削除:Add, AddRange, Remove, RemoveWhere
  • 検索:Contains, Find, IndexOf, Any, FirstOrDefault
  • 射影/整列:Select, OrderBy, ThenBy, GroupBy, Distinct
  • 結合/その他:Join, Zip, Shuffle

ファイル/IO の名前を付けたい

  • クラス:FileService, PathResolver, DirectoryScanner, StreamFactory, ArchiveExtractor
  • メソッド:Copy, Move, ReadAllBytes, WriteAllText, Watch/Unwatch
  • プロパティ:FullPath, Extension, IsReadOnly, Size, CreatedAt, LastModified

ネットワーク/HTTP の命名をしたい

  • クラス:HttpClientFactory, EndpointResolver, JwtTokenProvider
  • メソッド:ConnectAsync, SendAsync, Authorize, Authenticate
  • プロパティ:BaseAddress, Headers, Timeout

画像処理のメソッド名を選びたい

  • 幾何:Resize, Crop, Rotate, Flip, Warp, Align
  • フィルタ:Blur, Sharpen, Denoise, Threshold, Segment, Dilate, Erode
  • 合成:Blend, Composite, Merge

WPF/UI の命名をしたい

  • クラス:DialogService, CommandBinder, AdornerLayerHost
  • メソッド:Show, Hide, Bind, InvalidateVisual, Focus
  • プロパティ:IsEnabled, DataContext, SelectedItem, ItemsSource

クラスの役割別サフィックスを付けたい

  • 実装/役割:-Service, -Provider, -Factory, -Repository, -Strategy, -Options, -Settings
  • UI/WPF:-Behavior, -Converter, -Template, -View, -ViewModel
  • 並行/非同期:-Scheduler, -Dispatcher, -Worker, -Processor

予約語やBCL型と衝突しそうなとき

  • 衝突回避の接尾辞:TaskWorkItem / TaskInfoListListModel / ItemList
  • Context を具体化:AppContext, ImageContext, DbContext
  • 頭字語の大文字ルール:HTTPClient ではなく HttpClient

リネーム時の安全な置換案

  • 曖昧動詞の具体化:ProcessValidate/Transform/Resize
  • 負の論理の反転:IsNotEnabledIsEnabled
  • 役割の明確化:Manager 多用を避け、Service/Factory/Repository 等に細分化

クイック表(やりたいこと → 候補)

目的 候補
設定を読み込む LoadConfig, ReadSettings, ConfigureFrom
再試行を表す Retry, Backoff, ShouldRetry, MaxRetryCount
キャッシュ関連 Cache, Cached, CacheKey, CachePolicy, TryGetCached
並列実行 RunInParallel, ProcessInParallelAsync, MaxConcurrency
ファイル監視 Watch, Unwatch, FileWatcher, OnChanged
画像の拡大縮小 Resize, Scale, Resample, Width/Height
UI の選択状態 SelectedItem, SelectedIndex, IsSelected
認証/認可 Authenticate, Authorize, JwtToken, Claims

コピペ用スニペット

public interface IClock { DateTimeOffset Now { get; } }
public interface IFileSystem { Task<byte[]> ReadAllBytesAsync(string path, CancellationToken ct = default); }

public sealed class RetryPolicyOptions
{
public int MaxRetryCount { get; init; } = 3;
public TimeSpan Delay { get; init; } = TimeSpan.FromMilliseconds(200);
public bool ShouldJitter { get; init; } = true;
}

public static class Safe
{
public static bool TryGetCached(this IDictionary cache, string key, out T value)
=> cache.TryGetValue(key, out value);
} 

コメント