一般的には、関数の再利用性を高め、テストしやすくするために、関数外で入力値を取得し、それを関数のパラメータとして渡す方法が推奨されます。
ChatGPT
前回の記事で、「関数内でフォーム要素から値を直接取ってくる形がちょっと望ましくないと思った」ことと、それを修正したことを取り上げた。
![過去記事のスクショ](https://i0.wp.com/tenka.blog/wp-content/uploads/2024/05/sreenshot-of-past-article.png?resize=1200%2C420&ssl=1)
これは「そのようにしたほうがのちのち楽だ」というこれまでの経験に基づいた行動だが、安心するために、ChatGPTに賛同を求めようと思う。その際、どうもChatGPTに誘導尋問に合わせてくれる嫌いがあるようだから、あえて「こっちがいいよね?」という聞き方ではなく、「どっちがいい?」という中立的な聞き方をしてみた。
![ChatGPTにフォーム要素の取得は関数の外ですべきかについて質問。](https://i0.wp.com/tenka.blog/wp-content/uploads/2024/05/q-get-form-elements-outside-function-1.png?resize=1200%2C151&ssl=1)
![ChatGPTが「単一責任の原則」について教えてくれる。](https://i0.wp.com/tenka.blog/wp-content/uploads/2024/05/a-get-form-elements-outside-function-1.png?resize=736%2C1130&ssl=1)
上記回答でわかるように、関数内でフォーム入力値を取得するのと、引数として渡すのとに、それぞれ利点と欠点がある。けど、再利用性を高め、テストしやすくするために、関数外で入力値を取得し、それを関数のパラメータとして渡す方法が推奨されているとのことである。
「住所変換機」は大規模アプリケーションではないが、理想的な形に仕上げていくために、なお多くのテストが必要と思われる。引数としてフォーム入力値を関数に渡したほうが、そういったテストを楽にするであろう。
今回は以上だ。