変数名って難しい ~handle〇〇編~
はじめに
変数名って難しいなと思ったことはありますか??
私は自分でコード書く時や、レビューして他人のコードを読む時によく思います。
みんな何かしら思いや考えがあり、実際の業務で触るコードは結構わちゃわちゃな印象です🙀
意味合いが伝わればOKだったり、命名規則などのルールを明記して統一したり、色々見ますがどこまで徹底されているのでしょうか!?
handle〇〇編
アクションをボタンなどのイベントで発火したいケースにおける命名規則を紹介したいと思います。
例
export const HogePresenter: FC<HogeTypes> = (props) => {
const { start } = props
return (
<>
<div>Welcome to Hoge</div>
<button onClick={start}>start</button>
</>
)
}
このケースでstart
というアクション(Container側でdispatch処理がラップされた関数)は、ボタンをクリックしたときに発火されるのは用意に想像できます。
start以外の関数も一緒に発火させたいケースはどう扱えばいいでしょうか??
export const HogePresenter: FC<HogeTypes> = (props) => {
const { start, opneModal } = props
return (
<>
<div>Welcome to Hoge</div>
<button
onClick={() => { start(); opneModal(); }}
>
start
</button>
</>
)
}
onClickにツッコミますか?
それともhandle〇〇みたいな関数を作成しますか?
(handleClick
, handleStart
、handleButton
などなど)
やはり分かり易さが一番じゃい
私としてはこの命名規則を推します!!
handle + Event + 対象
このルールの良いポイントは、何(対象)
のどんなイベント(Event)
を意味しているかが非常に分かりやすい点です。
export const HogePresenter: FC<HogeTypes> = (props) => {
const { start, openModal } = props
// handle + Event名(今回はClick) + 対象(StartButton)
const handleClickStartButton = () => {
start();
openModal();
}
return (
<>
<div>Welcome to Hoge</div>
<button onClick={handleClickStartButton}>作成</button>
</>
)
}
handleClickStartButton
がスタートボタンのクリックイベントがハンドリングされているのが分かります。
そのまんまですね!
どんどんボタンや色々なイベントで発火したいアクションが増えていくと、ごちゃごちゃして読みにくくなりメンテしづらくなるはずです。
そういった負債となり得る状況を作りにくくするために、この命名規則は役に立ってくれます!!
そもそもとして
- Presenter側で関数を組み合わせているけど正しい責任分離なのか?
- start自体にopenModalの責任があるはず!
などなど。。。別の問題も少し見えてきます😅
これらはコンポーネントの設計、関数の責任によって色々変化してくると思います!
最後に
変数名は設計の思想と大きく関係してくると思ってまして、ContainerやPresenterの責任をどう分けるかなど考えることはいくつもあリます。
その中で100%完璧なものは難しいですが、できるだけ今後の負債になりにくく、コードを読んで意図が分かる変数名をつけることはとても大切です。
Author And Source
この問題について(変数名って難しい ~handle〇〇編~), 我々は、より多くの情報をここで見つけました https://zenn.dev/ryohama/articles/e9e26af76489ef著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol