Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Tomoharu ASAMI
3,788 views
Object-Functional Analysis and Design and Programming温泉
クラウド温泉3.0の資料です。 ディスカッションのネタ提供を目的としています。
Technology
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Downloaded 14 times
1
/ 29
2
/ 29
3
/ 29
4
/ 29
5
/ 29
6
/ 29
7
/ 29
8
/ 29
9
/ 29
10
/ 29
11
/ 29
12
/ 29
13
/ 29
14
/ 29
15
/ 29
16
/ 29
17
/ 29
18
/ 29
19
/ 29
20
/ 29
21
/ 29
22
/ 29
23
/ 29
24
/ 29
25
/ 29
26
/ 29
27
/ 29
28
/ 29
29
/ 29
More Related Content
PDF
Object-Funcational Analysis and design
by
Tomoharu ASAMI
PDF
オブジェクト指向開発におけるObject-Functional Programming
by
Tomoharu ASAMI
PDF
Scalaプログラミング・マニアックス
by
Tomoharu ASAMI
PDF
実務者のためのかんたんScalaz
by
Tomoharu ASAMI
PDF
Scalaz-StreamによるFunctional Reactive Programming
by
Tomoharu ASAMI
PDF
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
by
Tomoharu ASAMI
PDF
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
by
Tomoharu ASAMI
PDF
Scalaでプログラムを作りました
by
Tomoharu ASAMI
Object-Funcational Analysis and design
by
Tomoharu ASAMI
オブジェクト指向開発におけるObject-Functional Programming
by
Tomoharu ASAMI
Scalaプログラミング・マニアックス
by
Tomoharu ASAMI
実務者のためのかんたんScalaz
by
Tomoharu ASAMI
Scalaz-StreamによるFunctional Reactive Programming
by
Tomoharu ASAMI
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
by
Tomoharu ASAMI
オブジェクト・関数型プログラミングからオブジェクト・関数型分析設計へ クラウド時代のモデリングを考える
by
Tomoharu ASAMI
Scalaでプログラムを作りました
by
Tomoharu ASAMI
What's hot
KEY
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
by
Hiromi Ishii
KEY
Algebraic DP: 動的計画法を書きやすく
by
Hiromi Ishii
PPTX
Java使いにとっての関数
by
amkt922
PDF
Thinking in Cats
by
Eugene Yokota
PDF
Scalaで型クラス入門
by
Makoto Fukuhara
PDF
Scalaで萌える関数型プログラミング[完全版]
by
Ra Zon
PDF
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
by
Asami Abe
PDF
Scalaノススメ
by
Yasuyuki Maeda
PDF
Phantom Type in Scala
by
Yasuyuki Maeda
PDF
BOF1-Scala02.pdf
by
Hiroshi Ono
PPTX
Scala勉強会 初心者向けハンズオン前編
by
takeuchi-tk
PPTX
Scalaで学ぶ関数型言語超入門
by
yujiro_t
PDF
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
PDF
あなたのScalaを爆速にする7つの方法(日本語版)
by
x1 ichi
PDF
ScalaMatsuri 2016
by
Yoshitaka Fujii
PDF
Scalaz
by
Kota Mizushima
PDF
Scala2.8への移行
by
guest5f4320
PDF
はてなブックマーク in Scala
by
Lintaro Ina
PDF
なぜリアクティブは重要か #ScalaMatsuri
by
Yuta Okamoto
PDF
Scala の関数型プログラミングを支える技術
by
Naoki Aoyama
How wonderful to be (statically) typed 〜型が付くってスバラシイ〜
by
Hiromi Ishii
Algebraic DP: 動的計画法を書きやすく
by
Hiromi Ishii
Java使いにとっての関数
by
amkt922
Thinking in Cats
by
Eugene Yokota
Scalaで型クラス入門
by
Makoto Fukuhara
Scalaで萌える関数型プログラミング[完全版]
by
Ra Zon
Scala再入門 @2014/02/08 Scala関西ビギナーズ第3回
by
Asami Abe
Scalaノススメ
by
Yasuyuki Maeda
Phantom Type in Scala
by
Yasuyuki Maeda
BOF1-Scala02.pdf
by
Hiroshi Ono
Scala勉強会 初心者向けハンズオン前編
by
takeuchi-tk
Scalaで学ぶ関数型言語超入門
by
yujiro_t
ドメイン駆動設計のためのオブジェクト指向入門
by
増田 亨
あなたのScalaを爆速にする7つの方法(日本語版)
by
x1 ichi
ScalaMatsuri 2016
by
Yoshitaka Fujii
Scalaz
by
Kota Mizushima
Scala2.8への移行
by
guest5f4320
はてなブックマーク in Scala
by
Lintaro Ina
なぜリアクティブは重要か #ScalaMatsuri
by
Yuta Okamoto
Scala の関数型プログラミングを支える技術
by
Naoki Aoyama
Similar to Object-Functional Analysis and Design and Programming温泉
PDF
JavaWorld Day 2009 Scala
by
Tomoharu ASAMI
PDF
磯野ー!関数型言語やろうぜー!
by
Ra Zon
PDF
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
by
Tomoharu ASAMI
PDF
関数モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第8回】
by
Tomoharu ASAMI
PDF
関数型言語テイスティング: Haskell, Scala, Clojure, Elixirを比べて味わう関数型プログラミングの旨さ
by
Kent Ohashi
PDF
関数プログラミング入門
by
Hideyuki Tanaka
PDF
Clojure
by
Uehara Junji
PDF
これからの「言語」の話をしよう ―― 未来を生きるためのツール
by
Nobuhisa Koizumi
PDF
Astah UML/ER/mindmapping modeling tool Introduction
by
Kenji Hiranabe
PDF
たのしい関数型
by
Shinichi Kozake
PDF
すごいH 第12章モノイド
by
Shinta Hatatani
PDF
プログラミング言語Scala
by
TanUkkii
PDF
F#入門 ~関数プログラミングとは何か~
by
Nobuhisa Koizumi
PDF
関数型プログラミング入門 with OCaml
by
Haruka Oikawa
PDF
TAPL 勉強会(紹介編)
by
none_toka
PPT
20150903 jasis2015 生島
by
Takahiro Ikushima
PDF
BOF1-Scala02.pdf
by
Hiroshi Ono
PDF
BOF1-Scala02.pdf
by
Hiroshi Ono
PDF
Scalaで萌える関数型プログラミング[1.1.RC1]
by
Ra Zon
PPTX
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
by
Fujio Kojima
JavaWorld Day 2009 Scala
by
Tomoharu ASAMI
磯野ー!関数型言語やろうぜー!
by
Ra Zon
Monadic Programmingのススメ - Functional Reactive Programmingへのアプローチ
by
Tomoharu ASAMI
関数モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第8回】
by
Tomoharu ASAMI
関数型言語テイスティング: Haskell, Scala, Clojure, Elixirを比べて味わう関数型プログラミングの旨さ
by
Kent Ohashi
関数プログラミング入門
by
Hideyuki Tanaka
Clojure
by
Uehara Junji
これからの「言語」の話をしよう ―― 未来を生きるためのツール
by
Nobuhisa Koizumi
Astah UML/ER/mindmapping modeling tool Introduction
by
Kenji Hiranabe
たのしい関数型
by
Shinichi Kozake
すごいH 第12章モノイド
by
Shinta Hatatani
プログラミング言語Scala
by
TanUkkii
F#入門 ~関数プログラミングとは何か~
by
Nobuhisa Koizumi
関数型プログラミング入門 with OCaml
by
Haruka Oikawa
TAPL 勉強会(紹介編)
by
none_toka
20150903 jasis2015 生島
by
Takahiro Ikushima
BOF1-Scala02.pdf
by
Hiroshi Ono
BOF1-Scala02.pdf
by
Hiroshi Ono
Scalaで萌える関数型プログラミング[1.1.RC1]
by
Ra Zon
最新C#動向と関数型言語haskell ~命令型静的プログラミングから関数型動的プログラミングへのシフト~
by
Fujio Kojima
More from Tomoharu ASAMI
PDF
AI時代のソフトウェア開発 文芸モデル駆動アプローチ : 文芸モデルをDSLとした文芸モデル開発と生成AI連携の知識ベース
by
Tomoharu ASAMI
PDF
ケーススタディ/テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第47回】
by
Tomoharu ASAMI
PDF
ケーススタディ/実装 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第46回】
by
Tomoharu ASAMI
PDF
設計モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第45回】
by
Tomoharu ASAMI
PDF
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
by
Tomoharu ASAMI
PDF
要求モデル/BDD 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第43回】
by
Tomoharu ASAMI
PDF
要求モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第42回】
by
Tomoharu ASAMI
PDF
ビジネス・モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第41回】
by
Tomoharu ASAMI
PDF
ケーススタディ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第40回】
by
Tomoharu ASAMI
PDF
Cloud Native Component Framework 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第39回】
by
Tomoharu ASAMI
PDF
プレゼンテーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第38回】
by
Tomoharu ASAMI
PDF
アプリケーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第37回】
by
Tomoharu ASAMI
PDF
ドメイン・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第36回】
by
Tomoharu ASAMI
PDF
Cloud Native CBD 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第35回】
by
Tomoharu ASAMI
PDF
アプリケーション・アーキテクチャ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第34回】
by
Tomoharu ASAMI
PDF
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
by
Tomoharu ASAMI
PDF
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
by
Tomoharu ASAMI
PDF
実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】
by
Tomoharu ASAMI
PDF
実装(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第30回】
by
Tomoharu ASAMI
PDF
設計/UX/UI 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第29回】
by
Tomoharu ASAMI
AI時代のソフトウェア開発 文芸モデル駆動アプローチ : 文芸モデルをDSLとした文芸モデル開発と生成AI連携の知識ベース
by
Tomoharu ASAMI
ケーススタディ/テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第47回】
by
Tomoharu ASAMI
ケーススタディ/実装 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第46回】
by
Tomoharu ASAMI
設計モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第45回】
by
Tomoharu ASAMI
分析モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第44回】
by
Tomoharu ASAMI
要求モデル/BDD 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第43回】
by
Tomoharu ASAMI
要求モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第42回】
by
Tomoharu ASAMI
ビジネス・モデル 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第41回】
by
Tomoharu ASAMI
ケーススタディ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第40回】
by
Tomoharu ASAMI
Cloud Native Component Framework 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第39回】
by
Tomoharu ASAMI
プレゼンテーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第38回】
by
Tomoharu ASAMI
アプリケーション・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第37回】
by
Tomoharu ASAMI
ドメイン・サブシステム 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第36回】
by
Tomoharu ASAMI
Cloud Native CBD 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第35回】
by
Tomoharu ASAMI
アプリケーション・アーキテクチャ 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第34回】
by
Tomoharu ASAMI
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
by
Tomoharu ASAMI
実装(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第32回】
by
Tomoharu ASAMI
実装(2) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第31回】
by
Tomoharu ASAMI
実装(1) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第30回】
by
Tomoharu ASAMI
設計/UX/UI 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第29回】
by
Tomoharu ASAMI
Object-Functional Analysis and Design and Programming温泉
1.
Object-Functional Analysis and Design and
Programming温泉 2012年年8⽉月18⽇日 浅海智晴
2.
⽂文脈
3.
論論点 • 業務アプリケーションにおける関数型⾔言語 •
どこまでかけるのか • モナドの使い所 • 業務アプリケーションにおけるオブジェクト指向⾔言語 • 本物のオブジェクト指向⾔言語から新たな気づきはないか • 関数型⾔言語とオブジェクト指向⾔言語の選択 • 関数型⾔言語とモデリング技術の連携 • 形式⼿手法とモデリング?
4.
アジェンダ ディスカッションの元ネタを提供します。 関数型プログラミング Object
Functional Programming (OFP) Object Functional Analysis and Design (OFAD)
5.
新しい現実 ハードウェア • メニーコア、⼤大容量量メモリ、SSD • インメモリデータベース •
並列列プログラミング クラウド・プラットフォーム • クラウド・サービス、スマート・デバイス • 故障、遅延 • ⼤大規模データ、⼤大規模演算 • ⾼高頻度度イベント • ⾮非同期、並列列、分散 • NoSQL
6.
アプリケーションの階層と役割 アプリケー
• DSLの作法に従ってビジネスロ ジックを記述 ション • OO、関数型のスキルは最低限 • フレームワークを簡単に使⽤用する DSL ための専⽤用⾔言語 • OO、関数型の⾼高度度なスキル フレーム • ドメインの共通処理理を記述 ワーク • OO、関数型の⾼高度度なスキル
7.
⽤用語 • セッション内でのローカルな⽤用法 • (普通の)オブジェクト指向⾔言語
• Java的なオブジェクト指向⾔言語。オブジェクト+クラス+抽象 データ型+静的型付け+⼿手続き+値。 • 本物のオブジェクト指向⾔言語 • オブジェクトとメッセージから構成される核に何かを加えたも の。 • 関数型⾔言語 • 純粋関数型⾔言語(での利利⽤用も可能) • イミュータブル、参照透過性 • モナドが⼀一級市⺠民 • 型クラス(相当) • モデリング • 業務アプリケーションを分析・設計するためのモデリング⼿手法 • UMLを使ったオブジェクト指向モデリング
8.
関数型プログラミング
9.
関数型⾔言語とは • ⾼高階関数を扱える。 •
関数を値として扱える。 • 関数の引数と返却値に関数を渡せる。 • 関数リテラル(クロージャ)が記述できる。 • 数学(ラムダ計算、圏論論など)的にプログラムを記述でき る。
10.
関数型⾔言語の系譜 浅海私⾒見見。 20年年ほどの空⽩白の後の⾒見見え⽅方、 あるいはOOプログラマが後追い で調べたときの⾒見見え⽅方と考えて ください。
新世代関数型 ⾔言語 • Haskell 伝統的関数型 • Scala(+scalaz) ⾔言語 • ラムダ計算 • Lisp, ML, OCaml • 代数、圏論論 • ラムダ計算 • 型クラス • ⼿手続き、オブジェ • 代数データ型、 元祖関数型⾔言語 クト指向で補完 モナド • pure Lisp • 抽象データ型 • Parametric • Subtype polymorphism • ラムダ計算 polymorphism
11.
関数型⾔言語の⻑⾧長所と短所 ⻑⾧長所 •
⾼高階関数を使った技が使える • List処理理, 関数合成(コンビネータ)、モナドなど • 定理理と証明 • 証明された(動作保証された)定理理(関数)を積み上げてプログラムを 記述できる (← 多少理理想論論も⼊入ってます) 短所 • 関数実⾏行行のオーバーヘッド • 関数オブジェクト • メモリを⼤大量量に消費する • 関数オブジェクト • データの⼤大量量複写 • スタックの使⽤用量量が読めない • 再帰 • 回避する技のノウハウが必要
12.
関数型⾔言語の技術マップ
13.
代数的構造デザインパターン 結合律律 (associative law) •
半群 (semigroup) • モノイド (monoid) (a + b) + c = a + (b + c) • 群 (group) 可換律律 (commutative law) • 可換半群 • 可換モノイド a+b=b+a • 可換群(アーベル群) 分配律律 (distributive law) • 環 (ring) • 体 (field) a * (b + c) = a * b + a * c
14.
圏論論デザインパターン
圏 (category) モナド • Hask圏 (Scala圏?) (monad) • クライスリ圏 (kleisli category) Applicative 射 (arrow, functor morphism) 関⼿手 (functor)
15.
並列列プログラミング • マルチスレッド
• 共有状態 (shared mutability) • 共有状態をロック ← 伝統的⽅方法 • STM (Software Transactional Memory) • アクター • 状態をアクターローカル(スレッドローカル)にする (isolating mutability) • 不不変オブジェクトによるメッセージで通信 • 関数プログラミング⽅方式 • 代数的データ型、永続データ構造 • ⇒ 不不変オブジェクト • 状態変更更ではなく、状態変更更命令令書を計算 • イメージとしてはSQLの⽂文字列列を計算して作成する感じ • モナドのメカニズムを使って並列列処理理(+状態変更更命令令書)を 隠蔽
16.
Object Functional Programming
(OFP)
17.
OFP新三種の神器 トレイト (trait) •
mix-in • 型安全のAOP的な運⽤用 モナド (monad) • 計算⽂文脈をカプセル化する新しい⾔言語概念念 • Monadicプログラミング 型クラス (type class) • 型安全のダブルディスパッチ(?) • Scalaでは、⽂文脈、主体、客体の組でオブジェクトを束縛
18.
オブジェクトと関数の連携(1)
19.
オブジェクトと関数の連携(2)
20.
Arrowを⽤用いたデーターフロー
21.
モナドによる計算⽂文脈
22.
Object Functional Analysis
and Design (OFAP)
23.
オブジェクトモデリング 協調の実装技術 がボトルネック
ドメイン・モデル になっている 状態 機械 協調 静的 アプリケーション 構造 モデル
24.
オブジェクトの世界と関数の世界
25.
ユースケースと関数
26.
メタモデル
27.
SparkとScalding val file =
spark.textFile("hdfs://...") file.flatMap(line => line.split(" ")) .map(word => (word, 1)) Spark .reduceByKey(_ + _) class WordCountJob(args : Args) extends Job(args) { TextLine( args("input") ).read. flatMap('line -> 'word) { line : String => line.split("s+") }. groupBy('word) { _.size }. write( Tsv( args("output") ) ) } Scalding • https://github.com/twitter/scalding • CascadingのScala DSL • Collection APIでHadoop演算
28.
まとめ • 論論点
• 業務アプリケーションにおける関数型⾔言語 • どこまでかけるのか • モナドの使い所 • 業務アプリケーションにおけるオブジェクト指向⾔言語 • 本物のオブジェクト指向⾔言語から新たな気づきはないか • 関数型⾔言語とオブジェクト指向⾔言語の選択 • 関数型⾔言語とモデリング技術の連携 • 形式⼿手法とモデリング?
29.
END
Download