Mjvuvxpv

2017-12-05 baco___Created on 2017-12-05 by baco___

所感

  • サイバーマンデーでオススメのKindle本があったら教えてください!
  • 『観察の練習』が書店に売ってないぞ!Amazonも品切れ!なんでや!
  • 業務で2週間ぶりくらいにJavaScriptファイルを開いた気がするぞ...。フロントエンドエンジニアなのにな!

「関数型プログラミングの基礎」 読書メモ

第3章(32%)を読み終わった。3章は、短かった。

  • DRY原則(もちろん知ってる)

    • 見た目が簡潔になる、無駄がない
    • 汎用的なコードになる
    • メンテナンスが容易になる
    • 開発時間が短縮される
  • 抽象化への指向

    • 冗長な処理を抽象化して、理解しやすくする
    • 知る必要のない処理を隠蔽する

例えば、sum関数を定義したいとき、実装の抽象度は「reduce、forEach、for loop」の順。
reduceは、繰り返し処理も結果を格納する変数も不要になる。

  • テストに親しむ

    • 抽象化されたコードは便利だが、仕組みの理解が難しい。
    • テストを書けば、変更箇所の影響範囲を推し量ることが可能になる。
    • DRYなコードにも近く。
  • JavaScriptで関数型を書くにあたり、デメリットとは

    • データの不変性が保証されない
    • 動的型付言語なので、プログラムチェックに型を利用できない
    • シングルスレッドで動作する言語なので、並列処理の有用性を示せない

1番目は、immutable、2番目は、TypeScriptやFlowを使えば解決できる。
3番目は知らん。