試験公開中

このエントリーをはてなブックマークに追加

関数型デザイン

アスキードワンゴ

3,344円 (3,040円+税)

関数型とオブジェクト指向の対立を解消する!本書の目的は、関数型プログラミングとオブジェクト指向プログラミングの利点を学ぶことで、より優れたプログラマーになることを読者に促すというものだ。

関連サイト

本書の関連ページが用意されています。

内容紹介

◆関数型とオブジェクト指向の対立を解消する!

本書では、関数型言語のClojureとオブジェクト指向言語のJavaを比較しながら、ソフトウェア設計の原則や手法の違いを解説している。また、これまでオブジェクト指向特有のものと思われてきたUML、SOLID原則、デザインパターンなどを関数型言語に適用することで、両者は必ずしも対立する概念ではなく、共通点がいくつもあり、補完し合える関係にあることを明らかにしようとしている。最終的には、両者を融合したものが「ソフトウェアの本来あるべき姿」だと主張するに至っている。

書誌情報

  • 著者: Robert C. Martin(著), 角 征典(訳)
  • 発行日:
  • 最終更新日: 2024-05-31
  • バージョン: 1.0.0
  • ページ数: 328ページ(PDF換算)
  • 対応フォーマット: PDF, EPUB
  • 出版社: アスキードワンゴ

対象読者

著者について

Robert C. Martin

Robert C. Martin(アンクル・ボブ)は1970年からプログラマーである。Uncle Bob Consulting, LLCの創業者であり、息子のミカ・マーチンと共同でThe Clean Coders, LLCを創業した。さまざまな業界誌に寄稿し、国際的なカンファレンスや展示会でも頻繁に講演している。数多くの書籍の執筆・編集を担当しており、主な書籍には『Designing Object Oriented C++ Applications Using the Booch Method』『Pattern Languages of Program Design 3』『More C++ Gems』『Extreme Programming in Practice(邦訳:XPエクストリーム・プログラミング実践記―開発現場からのレポート)』『Agile Software Development(邦訳:アジャイルソフトウェア開発の奥義)』『UML for Java Programmers(邦訳:JavaプログラマのためのUML)』『Clean Code(邦訳:Clean Code―アジャイルソフトウェア達人の技)』『The Clean Coder(邦訳:Clean Coder―プロフェッショナルプログラマへの道)』『Clean Architecture(邦訳:Clean Architecture―達人に学ぶソフトウェアの構造と設計)』『Clean Craftsmanship(邦訳:Clean Craftsmanship―規律、基準、倫理)』『Clean Agile(邦訳:Clean Agile―基本に立ち戻れ)』などがある。ソフトウェア開発業界のリーダーとして「C++ Report」の編集長を3年間務め、Agile Allianceの初代委員長でもあった。

角 征典

ワイクル株式会社代表取締役。東京工業大学環境・社会理工学院特任講師。アジャイル開発やリーンスタートアップに関する書籍の翻訳を数多く担当し、それらの手法のコンサルティングに従事。主な訳書に『リーダブルコード』(オライリー・ジャパン)、『エクストリームプログラミング』(オーム社)、『Clean Craftsmanship』(アスキードワンゴ)、『プロダクトリサーチ・ルールズ』(BNN)、共著書に『エンジニアのためのデザイン思考入門』(翔泳社)がある。

目次

まえがき

序文

  • 関数型プログラミングと手続き型プログラミングの簡単な歴史
  • Clojureについて
  • アーキテクチャと設計について
  • オブジェクト指向について
  • 「関数型」について

謝辞

著者について

第I部 関数型の基礎

第1章 不変性

  • 関数型プログラミングとは何か?
  • 代入の問題点
  • なぜ関数型と呼ぶのか?
  • 状態が変わらない?
  • 不変性

第2章 永続的データ

  • チートについて
  • コピーを作成する
  • 構造の共有

第3章 再帰と反復

  • 反復
  • 再帰

第4章 遅延

  • 遅延の累積
  • でも、どうして遅延させるの?
  • 終わりに

第5章 ステートフル

  • 変更が必要なとき
  • STM
  • 人生は難しい、ソフトウェアはさらに難しい

第II部 比較分析

第6章 素因数分解

  • Javaのバージョン
  • Clojureのバージョン
  • 結論

第7章 ボウリングゲーム

  • Javaのバージョン
  • Clojureのバージョン
  • 結論

第8章 ゴシップ好きなバスの運転手

  • Javaのバージョン
  • Clojureのバージョン
  • 結論

第9章 オブジェクト指向プログラミング

  • 関数型の給与計算
  • 名前空間とソースファイル
  • 結論

第10章 型

  • 結論

第III部 関数型デザイン

第11章 データフロー

第12章 SOLID

  • 単一責任の原則(SRP)
  • オープン・クローズドの原則(OCP)
  • リスコフの置換原則(LSP)
  • インターフェイス分離の原則(ISP)
  • 依存関係逆転の原則(DIP)

第IV部 関数型の実践

第13章 テスト

  • だが、REPLはどうか?
  • モックはどうか?
  • プロパティベーステスト
  • 診断のテクニック
  • 関数型

第14章 GUI

  • Quilのタートルグラフィックス

第15章 並行性

  • 結論

第V部 デザインパターン

第16章 デザインパターンの評価

  • 関数型プログラミングのパターン
  • Abstract Server
  • Adapter
  • Command
  • Composite
  • Decorator
  • Visitor
  • Abstract Factory
  • 結論
  • 追記:オブジェクト指向の毒?

第VI部 ケーススタディ

第17章 Wa-Tor

  • かゆいところに手を届かせる
  • シャワーが問題を解決する
  • 繁殖の時期
  • サメは?
  • 結論

あとがき

Home 書籍一覧 関数型デザイン ▲ ページトップへ戻る