関数名(メソッド名)の命名規則まとめ — システム開発の実務レベルで整理 —

関数名はプログラムの“読みやすさ”を大きく左右する重要な要素である。
「関数名の付け方」はチーム開発における品質を大きく左右するため、ここでは現場で最も推奨される命名ルールをまとめる。


1. 関数名に使う基本原則(すべての言語共通)

PR

◆ (1) 動詞から始める(最重要)

関数は「処理(行動)」であるため、動詞から始めるのが基本。

例:

getUser()
updateStatus()
calculateTotalAmount()
sendMail()
PR

◆ (2) 関数名は「何をするか」を正確に表す

悪い例:

doProcess()
runTask()

良い例:

exportOrderData()
validateUserInput()
generateInvoicePdf()
PR

◆ (3) 長すぎず、短すぎず適切な長さにする

calculateMonthlySalesReport   ← 長すぎる  
calcSales                    ← 短すぎる  
calculateSalesReport         ← 適切

◆ (4) 否定形は避ける

悪い例:

isNotValid()

良い例:

isValid()

◆ (5) 論理値を返す関数は is / has / can / should を使う

例:

isActive()
hasPermission()
canAccess()
shouldUpdate()

◆ (6) 動作の種類を統一する(同じ意味で別の動詞を使わない)

NG:

createUser()
makeUser()   ← create と make が混在

OK:

createUser()

2. 関数名でよく使う動詞一覧(業務システムで頻出)

動詞意味
get取得するgetUser()
fetch外部から取得fetchApiData()
find検索するfindCustomerById()
search検索するsearchOrders()
list一覧を返すlistUsers()
create新規作成createOrder()
add追加するaddItem()
update更新するupdateStatus()
edit編集するeditProfile()
delete削除するdeleteUser()
remove削除するremoveTag()
save保存するsaveSettings()
load読み込むloadConfig()
send送信するsendMail()
receive受け取るreceiveMessage()
validateバリデーションvalidateInput()
calculate計算するcalculateTotal()
generate生成するgenerateReport()
convert変換するconvertToCsv()
import取り込むimportData()
export出力するexportPdf()
print印刷するprintLabel()

3. 言語別の関数名命名規則


◆ Java / JavaScript / TypeScript(camelCase)

形式:

camelCase

例:

getUserList()
updateCustomerInfo()
validateForm()

特徴:

  • 先頭は小文字
  • 2単語目以降の先頭を大文字
  • Java / JS / TS ではこれが標準

◆ C#(PascalCase)

形式:

PascalCase

例:

GetUser()
UpdateStatus()
CalculateTotal()

理由:

  • C# の文化ではメソッドも PascalCase
  • クラス名と同じ形式になる(Visual Studio 標準)

◆ Python(snake_case)

形式:

snake_case

例:

get_user()
calculate_total()
validate_input()

理由:

  • PEP8 に「関数は snake_case」と指定されているため必須
  • Python ではキャメルケース禁止

◆ PHP(camelCase または snake_case)

プロジェクト文化によるが、最近は camelCase が多い。

getUserInfo()
createPost()

WordPress や古い PHP は snake_case が混在する。


◆ Go(混在だが基本は PascalCase or camelCase)

Go の特徴:

  • 大文字で公開(Export)
  • 小文字で非公開(Unexport)

例:

GetUser()   // 公開関数
getUser()   // 非公開関数

4. 同じ処理は関数名の語尾で統一する

一覧取得は list か get か最初に決めるべき。

例)一覧取得関数

NG:

getUsers()
fetchUserList()
listAllUsers()

OK(統一):

listUsers()

5. 関数名のアンチパターン(避けるべき例)

悪い例問題点
doTask()何をする関数か分からない
proc()意味不明(レガシー)
a(), b()無意味
judgeStatus()「judge」は母語話者はあまり使わない
processingUser()動詞ではなく名詞
start()何を開始?曖昧

6. 関数名の良い例(業務システム向け)

関数名説明
getUserById(id)IDでユーザー取得
updateInventory(productId)在庫更新
calculateTotalAmount(items)合計金額計算
validateOrderData(order)注文データのバリデーション
generateInvoicePdf(orderId)請求書PDF作成
sendNotification(userId)通知送信

7. REST API Controller の関数名(Webアプリ向け)

HTTP推奨関数名例
GETgetUsers(), getUserById()
POSTcreateUser()
PUTupdateUser()
DELETEdeleteUser()

REST API の命名は HTTP 動詞と揃えると可読性が高い。


8. 非同期(async)関数名のルール

JavaScript/TypeScript の場合、Promise を返す関数は末尾に Async を付けることがある。

fetchUserAsync()
uploadFileAsync()

C# も同じ文化を採用している。


9. まとめ(プロジェクトで採用すべき関数命名ルール)

言語ルール
Java / JS / TScamelCase
C#PascalCase
Pythonsnake_case
Go大文字=公開、小文字=非公開
関数名は動詞で開始get〜, update〜, calculate〜
Booleanは is/has/canisActive(), hasPermission()

✅ 1. 関数名の良い例集(業務システム向け・200例)

目的別に分類し、すぐにコピペして使えるように整理している。


◆ 1-1. データ取得(GET 系)

分類良い関数名
単一取得getUserById(), getOrder(), getProduct()
一覧取得getUserList(), getOrderList(), getProductList()
条件取得getUsersByRole(), getOrdersByDate(), getItemsByCategory()
外部取得fetchApiData(), fetchWeatherInfo(), fetchRemoteConfig()
検索searchUsers(), searchProducts(), searchOrders()
検索精査findUser(), findOrderByNo(), findCustomerByEmail()
複合取得loadUserWithRoles(), loadOrderDetails()

◆ 1-2. 作成/追加(CREATE / ADD 系)

分類良い関数名
新規登録createUser(), createOrder(), createInvoice()
新規データ生成generateInvoicePdf(), generateToken(), generateReport()
追加addItem(), addRoleToUser(), addProductToCart()
作成処理セットbuildUserProfile(), buildSearchIndex()

◆ 1-3. 更新(UPDATE 系)

分類良い関数名
更新updateUser(), updateOrderStatus(), updateSettings()
上書きoverwriteConfig(), overwriteCache()
入替replaceImage(), replaceToken()
加工transformData(), modifyUserProfile()

◆ 1-4. 削除(DELETE 系)

分類良い関数名
削除deleteUser(), deleteOrder(), deleteFile()
削除(物理)removeUser(), removeTempFiles()
無効化disableUser(), deactivateAccount()

◆ 1-5. 検証(VALIDATE 系)

分類良い関数名
入力チェックvalidateInput(), validateOrderData()
ロジックチェックvalidateStock(), validatePermission()
整合性チェックverifyToken(), verifySignature()
妥当性判定isValidUser(), isActive(), canAccess(), hasPermission()

◆ 1-6. 計算(CALCULATE 系)

分類良い関数名
合計calculateTotalAmount(), calculateSum()
税計算calculateTax(), calculatePriceWithTax()
統計calculateAverage(), calculateStdDev()
売上分析calculateRevenue(), calculateMonthlySales()

◆ 1-7. 変換(CONVERT / TO 系)

分類良い関数名
型変換convertToString(), convertToCsv()
データ変換mapUserToDto(), mapOrderToEntity()
出力変換toJson(), toHtml(), toXml()

◆ 1-8. 通信・通知(SEND 系)

分類良い関数名
メール送信sendMail(), sendReportMail()
通知sendNotification(), pushAlert()
API送信postApiRequest(), sendApiRequest()

◆ 1-9. 入出力(IMPORT / EXPORT 系)

分類良い関数名
入力importCsv(), importExcel(), importUserData()
出力exportCsv(), exportPdf(), exportOrderReport()
保存saveUser(), saveConfig(), saveDraft()

◆ 1-10. システム処理(EXECUTE / RUN 系)

分類良い関数名
実行executeBatch(), runBackupProcess(), runScheduler()
再実行retryJob(), retryRequest()
中断abortProcess(), stopService()
初期化initializeCache(), initializeUser()

◆ 1-11. ログ / 履歴

分類良い関数名
ログ書き込みwriteLog(), writeErrorLog()
ログ取得readLog(), loadAccessHistory()

◆ 1-12. UI / 表示制御

分類良い関数名
表示showDialog(), showErrorMessage()
非表示hideDialog(), closePopup()
UI更新updateView(), refreshScreen()


✅ 関数名に使える動詞辞書(日本語の意味つき・200語)

— システム開発で本当に使う動詞だけに厳選 —

以下は、関数名を付けるときに使える 実務向け動詞+日本語の意味一覧
目的別に分類しており、迷ったときにすぐ参照できるようにまとめている。


1. 取得・検索(GET系)40語

英語日本語の意味
get取得する
fetch外部から取得する
find見つける・検索する
search検索する
lookup調べる(辞書検索のニュアンス)
load読み込む
query問い合わせる(DB問い合わせ)
select選択・抽出する
retrieve取り出す・回収する
list一覧で取得する
pull引き出す(外部から取得)
scanスキャンして探す
check確認する
detect検知する
recognize認識する
identify特定する
locate位置を特定する
observe監視する
inspect点検する
monitor監視する
review見直す・確認する
sync同期して取得する
collect集める
aggregate集計する
enumerate列挙する
scrollスクロールして取得する
extract抽出する
capture取得・捕捉する
trace追跡する
read読み取る
receive受け取る
subscribe購読する・購読登録
resolve解決して取得する
explore探索する
filter絞り込む
accessアクセスする
refresh更新して取得する
ping到達確認する
validate妥当性を確認する

2. 作成・追加(CREATE系)40語

英語日本語の意味
create新規作成する
add追加する
insert挿入する
append後ろに追加する
generate生成する
produce生み出す
build組み立てる・構築する
compose構成する
construct組み立てる
make作る
prepare準備する
register登録する
issue発行する
assign割り当てる
attach添付する
link紐付ける
allocate割り当てる
copyコピーする
duplicate複製する
compileコンパイル・構築
assemble組み立てる
initialize初期化する
seed初期データ投入する
draft下書きを作成する
plan計画する
start開始する
spawn生成(スレッドなど)
enable有効化する
activate活性化する
establish確立する
open開く
launch起動する
publish公開する
provision準備・提供する
setUpセットアップする
authorize認可する
bootstrap初期構築する
emitイベントを発火する

3. 更新・変更(UPDATE系)40語

英語日本語の意味
update更新する
edit編集する
modify修正する(部分的)
change変更する
replace入れ替える
revise改訂する
adjust調整する
rebuild再構築する
upgradeアップグレードする
patch修正パッチを当てる
fix修正する
correct正す
improve改善する
optimize最適化する
refresh再読み込みする
rename名前変更する
rewrite書き換える
clean清掃・整理する
purge不要物を削除する
tune調整する
activate有効化する
apply適用する
merge結合する
adapt変換/適応する
reshape形を整える
swap交換する
configure設定する
toggle切り替える
refactorリファクタリングする
transform変換する
convert変換する
resizeサイズ変更する
recalculate再計算する
reload再読み込みする
renew更新する
calibrate調整する
rollback巻き戻す
undo元に戻す
retry再試行する

4. 削除・除去(DELETE系)30語

英語日本語の意味
delete削除する
remove除去する
erase消去する
clearクリアする
drop落とす/削除する
detach切り離す
discard破棄する
eliminate排除する
destroy破壊する
terminate終了する
purge一掃する
wipe消し去る
cleanUp後片付けする
unload除去する
unlink連携解除
kill強制終了する
abort中断する
dismantle分解する
invalidate無効にする
reset初期化する
withdraw取り下げる
deactivate無効化する
disable使用不可にする
stop停止する
collapseたたむ(UIなど)
truncate先頭以外消す/切り捨て
rollback巻き戻す
unsubscribe購読解除する
archiveアーカイブする

5. 検証・判定(VALIDATE系)30語

英語日本語の意味
validate妥当性チェックする
verify正当性を検証する
check確認する
ensure保証する
confirm確認する
assert主張(テストで使用)
compare比較する
detect検知する
testテストする
audit監査する
examine精査する
evaluate評価する
judge判断する
reviewレビューする
scan走査する
qualify適格性を判定する
authenticate認証する
authorize認可する
inspect点検する
measure測定する
assess評価する
filter絞り込む
approve承認する
deny拒否する
identify特定する
classify分類する
benchmark指標で比較する
score点数化する
estimate推定する

6. 計算・分析(CALCULATE系)20語

英語日本語の意味
calculate計算する
compute計算する(数学的)
sum合計する
countカウントする
estimate見積もる
analyze分析する
evaluate評価する
measure測定する
forecast予測する
predict予測する
aggregate集計する
approximateおおよそ計算する
derive導き出す
simulateシミュレーションする
modelモデル化する
optimize最適化する
calibrate調整する
assess評価する
project予測・投影する
rank順位付けする

7. 通信・IO(SEND系)20語

英語日本語の意味
send送信する
receive受信する
post投稿/送信する
uploadアップロードする
downloadダウンロードする
transmit送信する
broadcast放送・一斉送信する
notify通知する
alert警告する
announce公表する
print印刷する
export出力する
import取り込む
emitイベントを出す
forward転送する
sync同期する
fetch取得する
connect接続する
request要求する
reply返信する


関数名の悪い例集(補強版)

— 具体例+改善例+理由つき —

関数名の“悪い例”は、実際の現場でよく見られるものに絞って整理する。
可読性・保守性・チーム開発の観点から、以下のような名前は避けるべきである。


1. 抽象的すぎて意味が分からない系

悪い例問題点改善例
doProcess()何をする処理か全く伝わらないcalculateSales(), importCsv(), updateUserStatus()
run()「実行」では目的が曖昧executeBatch(), startService()
process()意味が広すぎるprocessOrder(), processPayment()
handle()何を扱う?曖昧handleError(), handleLoginRequest()
exec()何を execute?executeInvoiceExport()

2. 目的語なしで動作が不明な系

悪い例問題点改善例
save()何を保存?saveUserInfo(), saveSettings()
delete()何を削除?deleteUser(), deleteCartItem()
update()何を更新?updateOrderStatus()
get()何を取得?getUserById(), getOrderList()

3. 名詞だけで“動作”が分からない系

悪い例誤解を招く理由改善例
user()「ユーザーの何?」getUser(), createUser()
order()「注文をどうする?」updateOrder(), deleteOrder()
log()記録するのか読むのか不明writeLog(), readLog()
status()状態を返す?更新?getStatus(), updateStatus()

4. 処理内容が曖昧・ブラックボックス化している系

悪い例問題点改善例
doIt()ITとは何?命令口調で意味不明retryConnection(), refreshCache()
work()何の作業?updateInventory(), buildReport()
stuff()“いろいろ”では意味がないcleanupTempFiles(), syncUserData()
manageData()manage は範囲が広すぎるvalidateData(), saveData(), mergeData()

5. 文法的に不自然な系(名詞+名詞だけ等)

悪い例問題改善例
userList()関数名が「ユーザー一覧」=名詞getUserList()
emailSend()素直に「sendEmail()」にするべきsendEmail()
errorLog()書く?読む?不明writeErrorLog(), readErrorLog()

6. 状態を返すBoolean関数の命名ミス

悪い例問題点改善例
checkActive()check は boolean の返り値に不向きisActive()
validUser()動詞ではなく名詞=意味不明isValidUser()
existUser()英語的に不自然userExists()
enableFlag()enable は動詞 → boolean向きではないisEnabled()

7. 否定形を使った読みづらい命名

悪い例問題点改善例
isNotActive()二重否定で読みづらいisActive()(値を逆にして返す)
notFoundUser()文法的にも崩れているuserNotFound(), userExists()
isDisable()grammar NGisDisabled()

8. 略語が多すぎて読めない命名

悪い例意味不明度改善例
getUsrInf()user info とは分かるが読みにくいgetUserInfo()
updInvQty()update inventory quantity の略…updateInventoryQuantity()
chkFlg()check flag の略は危険isValidFlag(), validateFlag()

9. 「語順がめちゃくちゃ」系

悪い例理由改善例
amountCalculate()日本語語順 → NGcalculateAmount()
pdfCreateReport()動詞が最後で不自然createReportPdf()
dataMergeUser()主語も目的語も逆mergeUserData()

10. 汎用語を無理に使いすぎる系

悪い例問題点改善
batch()“バッチ”で何を?runBatch(), executeBatch()
service()サービスをどうする?startService(), stopService()
core()中身が不明loadCoreData(), buildCoreIndex()

11. 過去のレガシー癖が入った命名

悪い例解説改善例
subMain()VB時代の癖。意味がないstartApp()
main2(), main3()バージョン番号は関数につけないrefineMain(), splitFunctions()
run2()「2」とは何?runTask(), runBackupProcess()

12. 実務で特に多い“要注意ワード”

以下は関数名にあると 高確率でレビューで指摘される単語

  • do
  • process
  • execute(単体)
  • run(単体)
  • handle(単体)
  • work
  • func
  • util(関数に使うのはNG)
  • logic(意味が広い)
  • manage(範囲が広すぎる)

できるだけ具体的にする:

悪い例:

manageUser()

良い例:

createUser()
updateUser()
deleteUser()
assignUserRole()

13. 「もっと悪い例+改善例」まとめ

以下は読み返すだけで“悪い命名”が直感的に理解できるセット。

悪い命名何が悪い?改善案
doMain()何のmain?startApplication()
utilProcess()名前が広すぎるconvertData(), cleanUpCache()
aaa()ゴミ名(即削除)
k()不明。英語ですらない(即削除)
commonProcess()何が共通?validateUser(), formatDate()
check2()何をチェック?なぜ2?validateOrder(), checkPermission()

14. 関数名レビュー時のチェックリスト(おまけ)

関数名が良いか悪いかを1秒で判断できるチェックリスト。

チェック項目YesならOK
動詞から始まっているか
目的語が明確か
Booleanなら is/has/can を使っているか
処理内容が具体的か
略語を使いすぎていないか
名詞のみの名前になっていないか
否定形や二重否定を避けているか

15. まとめ

悪い命名を避けるコツはシンプル:

🔥「動詞+目的語」の形にする

🔥 略語を避ける

🔥 Booleanは is/has/can

🔥 一貫した語彙を使う

\ITメモが役に立ったら/

ITメモをサポートする!
プログラミング
PR

コメント

タイトルとURLをコピーしました