プログラミング入門 どっちのコードが読みやすい?

以下のコードをみてください
以下のコードを10秒間で読んでください。
const convertStr = str => {
let upper = str.toUpperCase()
let newArr = []
for(let i = 0; i<upper.length; i++){
if(!newArr.includes(upper[i])){
newArr.push(upper[i])
}
}
let newStr = newArr.join('')
return `${newStr} Hello`
}
console.log(convertStr('hogeeeh'))
どんな処理か分かったでしょうか。
次に、同様に以下のコードを10秒間で読んでみてください。
const u = addHello(excludeDuplicate(toUpper('hogeeeh')))
console.log(u)
どちらも同じ処理が書かれていますが、二つ目のコードの方が何が書かれているか分かりやすかったと思います。
実は二つ目のコードはこれですべてではありません。実際は以下のような複数の関数に分かれています。
const toUpper = str => {
return str.toUpperCase();
}
const excludeDuplicate = str => {
const result = [...str].reduce((prev, current) => {
if(!prev.includes(current)) return [...prev, current]
return prev
}, []);
return result.join("");
}
const addHello = str => {
return `${str} Hello`;
}
コードの合計量をみると、二つ目のコードの方が多いですが、二つ目のコードはそれぞれの役割で分かれているため、それぞれを理解するのが容易です。
さらに、何をやっているのかを知るだけであれば、はじめに見せた以下で十分です。
addHello(excludeDuplicate(toUpper('hogeeeh')))
もし詳しく知りたいのであれば、さらに各関数を読めば良いのです。
まとめ
処理を細かくわけることで、コードの可読性が上がります。
また、分けた各関数はシンプルな処理になるので、再利用もしやすくなります。
ディスカッション
コメント一覧
まだ、コメントがありません