🎉

【変数名/命名規 ベストプラクティス】JavaScript, Go, TypeScript, Ruby, PHP, Java, Python

2024/04/25に公開
1

厳しい要件。だけどよくある要件。

  • AがBを作成する
  • AがBを削除する
  • AがBをお気に入りにいれる
  • AがBをお気に入りから削除する
  • AがBを、Cというリストに追加する
  • AがBを、Cというリストから削除する
  • AがBを、Cというリストに(いつ, どこで)追加する
  • AがBを、Cというリストから(いつ, どこで)削除する

このような要件に耐久性のある変数名を考える。

jQueryやGoogleのフレームワークはどうなのか?

jQuery
.prepend()
.append()
.prependTo()
.appendTo()
.wrap()
.wrapAll()

Google.Firestore

ベストプラクティス

set, get, update, delete


user.setFollowing(user_id)
user.setList(list_name)
user.deleteList(list_id)
user.setUserToList(user_id, list_id)
user.deleteUserFromList(user_id, list_id)

jQueryのように単数でも複数でも同じメソッド名で処理。
モジュール側がブラックボックス化してその複雑性を吸収する。

user.deleteFollowing(user_id)
user.deleteFollowing([user_id])
const { user, getUser, deleteUser } = useUsers(user_id);
const { users, getUsers, deleteUsers } = useUsers();

プレフィックスを統一すると誰も迷わなくなる

、くらい視認性が上がる。

- List
- ListUsers
- ListUsersFollowed
- ListUsersBlocked
- ListUsersSearching
- ListFavorites
- ListFavoritesOfCommunity
- Image
- ImageClickable
- ImageLoading
- Dialog
- DialogYesOrNo
- DialogWithSelectOfCountry
- DialogWithSelectOfRegion
- Drawer
- DrawerForGlobalMenu
- DrawerToEditProfile
- Overlay
- OverlayToSignin
- OverlayToLogin
- Users
- UsersVisited // 私が訪問したusers
- UsersVisitedYou // 私を訪問したusers

統一は何よりも大事

略すと人によってバラバラになるので、基本的に略さないことをおすすめします。

関数名
x: delUser
o: deleteUser
変数名(フォローしているusers)
x: follows
o: usersFollowing // 本来動名詞もしくは形容詞にするべきである

まとめ

なし

Discussion

llc_starhacksllc_starhacks
react.js
// パターンA:
import useUser from 'xxxxxx';

const { user, getUsers, updateUser, addFollowing, removeFollowing } = useUser(user_id);

///////////////フォローする処理を描いて下さい/////////


- addFollowing().xxxx(to_user_id)
- addFollowing(to_user_id)



// パターンB:
import useUser from 'xxxxxx';
import useFollowings from 'xxxxxx';

const { user, getUsers, updateUser } = useUser(user_id);
const { addFollowing, removeFollowing } = useFollowings();


///////////////フォローする処理を描いて下さい/////////

x: addFollowing(user_id).xxxx(to_user_id)






// パターンC:
import useUser from 'xxxxxx';

const { user, getUsers, updateUser } = useUser(user_id);

///////////////フォローする処理を描いて下さい/////////

user.addFollowing(to_user_id)


user.createList(name)
// user.addUser(user_id).toList(list_id)


xがxを[xに] いつ どこで  [いれる]
xがxにいれる user add in the list
xがxをいれる user add B

user.addFollowing(user_id)
user.setList(user_id, list_id)
user.removeList()

user.setUserToFollowing()
user.removeUserFromList()