SlideShare a Scribd company logo
meetup #0
     @koriym
19 July 2012, Tokyo
Framework ?
OOP
Object Oriented Programing
2 OOPs
オブジェクト指向プログラミング
とは相互にメッセージ を送りあう
オブジェクト の集まりとしてプロ
グラムを構成する技法である。


      wikipedia -オブジェクト指向プログラミング
カプセル化 (振る舞いの隠蔽とデータ隠蔽)

インヘリタンス (継承)

ポリモフィズム (多態性、多相性)

ダイナミックバインディング (動的束縛)

         wikipedia -オブジェクト指向プログラミング
???
Alan Kay (1940 -)
Bjarne Stroustrup (1950 -)
    ビャーネ・ ストロヴストルップ
メッセージング のオブジェクト指向




私が考えるOOPはメッセージング、状態処理
のローカルでの保有・保護・隠蔽、そして全て
の物に対する強力な遅延束縛、これだけだ。
ユーザー定義型 のオブジェクト指向




1)カプセル化 2)継承 3)多態性

OOPの再定義

メッセージよりクラス



                     winplusの日記
データ構造とオブジェクト指向
Code                Data


       Structured


                    よくある理解

Code
Data   Object Oriented
Tell, Don’t ask.
Procedural code gets information then makes decisions.
   Object-oriented code tells objects to do things.

                    — Alec Sharp
Tell     Logic

       Logic     Object
                        Data
                 Data
Ask   Data
Logic                  Object
                Data
Logic
手続き型プログラミングとオブジェクト指向
プログラミング

それぞれ別のパラダイム

マルチパラダイム言語 (C++, PHP)

一方が得意な事は一方が不得意= 非対称性
Don't ask, don't tell
      (DADT)


           たまにある誤解
          OOP関係ないです
/OOP
MVC ?
MVC

MVC
      MVC ?   Mvc
MVC
        MV    C
MVC is just a way of
separating concerns from each other,
not an "application architecture”
Web MVC ?
Request:Response



        Router /Dispatcher

    Controller


Model                        View
Router /Dispatcher


             Controller
  method
invocation

             Data                Data




Model
Router /Dispatcher

ontroller

                     View
                       Model
                          Data
Tell ? or Ask ?
Let’s see again.
Request:Response



        Router /Dispatcher

    Controller


Model                        View
Request:Response



                 Router /Dispatcher

            Controller    App
                         Logic



          Data                        Data




Model
 Domain
                                      View   View
  Logic                                      Logic
Tell ? or Ask ?
Then, a resource.
Static HTML
Request:Response




Static HTML
Request:Response

  アドレス可能性
(Addressability)
  ステートレス性
Static HTML
(Statelessness)
  接続性
(Connectedness)
  統一インターフェイス
(Uniform Interface)
BEAR.Sunday
Request:Response
UI




     Resource
        (view)
UI            Request:Response




          Resource
                (view)


Resource                 Resource
     (view)                      (view)
UI        Request:Response


                             HTML
     Page Resource
        (html view)


 Application Resource
      (partial html view)
UI      Request:Response


                           API
     App Resource
       (JSON view)


     App Resource
Router /Dispatcher


             Controller
  method
invocation

             Data                Data




Model
Page Res
 VERB + URI

              Resource Object



App Res
Request         Response
get app://self/news




                 (Resource Object)

          Resource
Public Properties
“Public props”

 Code      Headers



        Body



 View          Links
resource ≠ object ?
Request Interface
Headers

                  Get


                 Post

Body
                  Put


                 Delete

        Links
State to Representation
 (Resource Renderer)
Body




Renderer


 View             Li
Template Engine ?
Body


@Inject
          Template Engine
                 Renderer


                   View            Li
Request Links
Links

rel         rel


      URI
rel        rel




                 “Friend”
“Profile”




                       Linked
                      Resource
Resource                 Resource
                  REL

                                           REL

                                                 Resou
      REL

                        REL          REL




            Resource

                                    Resource
Resource as API
Mobile
DB
          ROA
                     URI


          Resource
                      URI
             as                Web
KVS         API
                     URI




 Future                     Future X
   DB
Because
Everything is
A
Resource.

More Related Content

Similar to BEAR.Sunday.meetup #0

BEAR.Sunday Note
BEAR.Sunday NoteBEAR.Sunday Note
BEAR.Sunday Note
Akihito Koriyama
 
リソースフレームワークBEARのススメ(PHP勉強会#51)
リソースフレームワークBEARのススメ(PHP勉強会#51)リソースフレームワークBEARのススメ(PHP勉強会#51)
リソースフレームワークBEARのススメ(PHP勉強会#51)
stellaqua
 
Data API + AWS = (CMS どうでしょう 札幌編)
Data API + AWS =  (CMS どうでしょう 札幌編)Data API + AWS =  (CMS どうでしょう 札幌編)
Data API + AWS = (CMS どうでしょう 札幌編)
Yuji Takayama
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介Shotaro Suzuki
 
Windows Azure ではじめる Windows ストアアプリ開発
Windows Azure ではじめる Windows ストアアプリ開発Windows Azure ではじめる Windows ストアアプリ開発
Windows Azure ではじめる Windows ストアアプリ開発
Shotaro Suzuki
 
backbone.jsの使用例 その1
backbone.jsの使用例 その1backbone.jsの使用例 その1
backbone.jsの使用例 その1Makoto Haruyama
 
LOD技術の概要と LinkData.orgを用いたLOD公開
LOD技術の概要とLinkData.orgを用いたLOD公開LOD技術の概要とLinkData.orgを用いたLOD公開
LOD技術の概要と LinkData.orgを用いたLOD公開
Kouji Kozaki
 
Cloudian presentation for OSCA
Cloudian presentation for OSCA Cloudian presentation for OSCA
Cloudian presentation for OSCA
CLOUDIAN KK
 
Swift bondさわってみた
Swift bondさわってみたSwift bondさわってみた
Swift bondさわってみた
Motoki Narita
 
Tokyowebmining5 yokkuns
Tokyowebmining5 yokkunsTokyowebmining5 yokkuns
Tokyowebmining5 yokkunsYohei Sato
 
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
インフラジスティックス・ジャパン株式会社
 
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介NilOne Ltd.
 
Scim and or graph
Scim and or graphScim and or graph
Scim and or graph
Naohiro Fujie
 
Restful Web Service Ch2
Restful Web Service Ch2Restful Web Service Ch2
Restful Web Service Ch2
kunit
 
CloudSpiral 2014年度 Webアプリ講義(1日目)
CloudSpiral 2014年度 Webアプリ講義(1日目)CloudSpiral 2014年度 Webアプリ講義(1日目)
CloudSpiral 2014年度 Webアプリ講義(1日目)
Shin Matsumoto
 

Similar to BEAR.Sunday.meetup #0 (20)

BEAR.Sunday Note
BEAR.Sunday NoteBEAR.Sunday Note
BEAR.Sunday Note
 
リソースフレームワークBEARのススメ(PHP勉強会#51)
リソースフレームワークBEARのススメ(PHP勉強会#51)リソースフレームワークBEARのススメ(PHP勉強会#51)
リソースフレームワークBEARのススメ(PHP勉強会#51)
 
Data API + AWS = (CMS どうでしょう 札幌編)
Data API + AWS =  (CMS どうでしょう 札幌編)Data API + AWS =  (CMS どうでしょう 札幌編)
Data API + AWS = (CMS どうでしょう 札幌編)
 
Linked Data in Japan/Semantic Conference In Japan 2010
Linked Data in Japan/Semantic Conference In Japan 2010Linked Data in Japan/Semantic Conference In Japan 2010
Linked Data in Japan/Semantic Conference In Japan 2010
 
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips   Prism 4.5 & Kona project 等のご紹介
XAML と C# を使った Windows ストアアプリ(LOB)構築のためのtips Prism 4.5 & Kona project 等のご紹介
 
Windows Azure ではじめる Windows ストアアプリ開発
Windows Azure ではじめる Windows ストアアプリ開発Windows Azure ではじめる Windows ストアアプリ開発
Windows Azure ではじめる Windows ストアアプリ開発
 
Linked Open Dataとは
Linked Open DataとはLinked Open Dataとは
Linked Open Dataとは
 
backbone.jsの使用例 その1
backbone.jsの使用例 その1backbone.jsの使用例 その1
backbone.jsの使用例 その1
 
LOD技術の概要と LinkData.orgを用いたLOD公開
LOD技術の概要とLinkData.orgを用いたLOD公開LOD技術の概要とLinkData.orgを用いたLOD公開
LOD技術の概要と LinkData.orgを用いたLOD公開
 
勉強会資料①
勉強会資料①勉強会資料①
勉強会資料①
 
Cloudian presentation for OSCA
Cloudian presentation for OSCA Cloudian presentation for OSCA
Cloudian presentation for OSCA
 
Swift bondさわってみた
Swift bondさわってみたSwift bondさわってみた
Swift bondさわってみた
 
Datomic&datalog紹介
Datomic&datalog紹介Datomic&datalog紹介
Datomic&datalog紹介
 
Tokyowebmining5 yokkuns
Tokyowebmining5 yokkunsTokyowebmining5 yokkuns
Tokyowebmining5 yokkuns
 
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
Web アプリケーションにおけるクライアントサイドのデータハンドリングと可視化の実現
 
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介中規模Androidアプリ開発の過程に生じた問題と対策の紹介
中規模Androidアプリ開発の過程に生じた問題と対策の紹介
 
Linked Open Dataとは
Linked Open DataとはLinked Open Dataとは
Linked Open Dataとは
 
Scim and or graph
Scim and or graphScim and or graph
Scim and or graph
 
Restful Web Service Ch2
Restful Web Service Ch2Restful Web Service Ch2
Restful Web Service Ch2
 
CloudSpiral 2014年度 Webアプリ講義(1日目)
CloudSpiral 2014年度 Webアプリ講義(1日目)CloudSpiral 2014年度 Webアプリ講義(1日目)
CloudSpiral 2014年度 Webアプリ講義(1日目)
 

More from Akihito Koriyama

BEAR.Sunday $app
BEAR.Sunday $appBEAR.Sunday $app
BEAR.Sunday $app
Akihito Koriyama
 
PHP: Dis Is It
PHP: Dis Is ItPHP: Dis Is It
PHP: Dis Is It
Akihito Koriyama
 
The new era of PHP web development.
The new era of PHP web development.The new era of PHP web development.
The new era of PHP web development.
Akihito Koriyama
 
BEAR DI
BEAR DIBEAR DI
BEAR v0.9 (Saturday)
BEAR v0.9 (Saturday)BEAR v0.9 (Saturday)
BEAR v0.9 (Saturday)
Akihito Koriyama
 

More from Akihito Koriyama (7)

BEAR.Sunday $app
BEAR.Sunday $appBEAR.Sunday $app
BEAR.Sunday $app
 
BEAR.Sunday Offline Talk
BEAR.Sunday Offline TalkBEAR.Sunday Offline Talk
BEAR.Sunday Offline Talk
 
PHP: Dis Is It
PHP: Dis Is ItPHP: Dis Is It
PHP: Dis Is It
 
The new era of PHP web development.
The new era of PHP web development.The new era of PHP web development.
The new era of PHP web development.
 
BEAR (Suday) design
BEAR (Suday) designBEAR (Suday) design
BEAR (Suday) design
 
BEAR DI
BEAR DIBEAR DI
BEAR DI
 
BEAR v0.9 (Saturday)
BEAR v0.9 (Saturday)BEAR v0.9 (Saturday)
BEAR v0.9 (Saturday)
 

Recently uploaded

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 

Recently uploaded (8)

ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 

BEAR.Sunday.meetup #0