Reactハンズオンラーニング

Reactハンズオンラーニング
はじめに:著者が定義したこの本の目的
この本の著者は、
『読者がいち早くReactを使って仕事に取りかかれるようにすること』
を目的としています。
【感想】この本を読んで
この本は12章からなる本ですが、私にとって3章が最も印象的でした。
3章では関数型プログラミングについて書かれています。
Reactには、
関数型プログラミングの考え方が色濃く現れています。
関数型プログラミングは、
宣言型プログラミングというより大きなプログラミングパラダイムの一部です。
宣言型プログラミングにおいては、
『何をするのか』(what)が重要で、
『どのようにするのか』(how)は重要ではありません。
ひたすらwhatを記述することでアプリケーションを構築するプログラミングのスタイルを宣言型と呼びます。
一方で、
従来のプログラミング言語は、
結果を得るための手順(how)を記述します。
これを命令型プログラミングと呼びます。
宣言型プログラミングでは、
whatのみを記述するので、
必然的にコードを見れば何をやりたいのかが明白です。
実装に関する詳細は、
個々の関数により抽象化され、
隠蔽されています。
それらの関数は適切に分割・命名されて組み合わせられることで、
コメントを書かなくても何をやっているのか一目瞭然です。
宣言型プログラミングの価値は、
読みやすいコードにあり、
アプリケーションのコードが読みやすいということは、
スケールが容易であることを表します。
これは、
大規模アプリケーションを作成するのに適しているReactにとって重要なことです。
おまけ1:JavaScriptの関数を書く時に気をつけること
ReactではUIコンポーネントが純粋関数として表現されています。
純粋関数は関数型プログラミングの中心的な概念です。
純粋関数の持つ『アプリケーションの状態を変更しない』という特徴は、
数多くの副次的な利点をもたらすでしょう。
今後、JavaScriptの関数を書く時は、以下のことに注意してください。
1. 関数は少なくともひとつの引数を受け取らなければいけない
2. 関数は値もしくは、他の関数を戻り値として返却しなければならない
3. 関数は引数や関数外で定義された変数に直接変更を加えてはならない。
おまけ2:関数型プログラミングの歴史
関数型プログラミングの誕生は、
1930年代にブリンストン大学のALonzo Churchにより考案されたラムダ計算まで遡ります。
数学における関数の概念はすでに17世紀から存在していましたが、
ラムダ計算では引数として関数を受け取り、
その関数をもとに別の関数を返す、
高階関数という概念が導入されました。
1950年代に入ると、
John McCarthyはこのラムダ計算のコンセプトを適用したLispという新しいプログラミング言語を作りました。
Lispにおいて、
関数は第一級オブジェクトです。
以上。
この本を紹介してくれた中村さんに感謝します!