Enviar pesquisa
Carregar
ジェネレーティブプログラミングの世界
•
14 gostaram
•
6,489 visualizações
Atsuhiro Kubo
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 41
Baixar agora
Baixar para ler offline
Recomendados
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
gree_tech
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
중선 곽
さくらのVPSに来た攻撃観察記
さくらのVPSに来た攻撃観察記
ozuma5119
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
min woog kim
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
Kenji Tanaka
go generate 完全入門
go generate 完全入門
yaegashi
Everyday Life with clojure.spec
Everyday Life with clojure.spec
Kent Ohashi
Recomendados
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
Docker と ECS と WebSocket で最強のマルチプレイ・ゲームサーバを構築
gree_tech
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
중선 곽
さくらのVPSに来た攻撃観察記
さくらのVPSに来た攻撃観察記
ozuma5119
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
min woog kim
節子、それViewControllerやない...、FatViewControllerや...。
節子、それViewControllerやない...、FatViewControllerや...。
Kenji Tanaka
go generate 完全入門
go generate 完全入門
yaegashi
Everyday Life with clojure.spec
Everyday Life with clojure.spec
Kent Ohashi
さくらのVPSに来る悪い人を観察する その2
さくらのVPSに来る悪い人を観察する その2
ozuma5119
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
Yuichi Sakuraba
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai
async/await のしくみ
async/await のしくみ
信之 岩永
〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
Akihiro Kitada
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
RENDERING 最適化「禍つヴァールハイト」
RENDERING 最適化「禍つヴァールハイト」
KLab Inc. / Tech
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
Atsuo Ishimoto
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
JustSystems Corporation
テストを書こう!!
テストを書こう!!
拓 小林
Javaバイトコード入門
Javaバイトコード入門
Kota Mizushima
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
【Unite Tokyo 2018】チームラボ × Unity ~Unityで制作するデジタルアートの世界~
【Unite Tokyo 2018】チームラボ × Unity ~Unityで制作するデジタルアートの世界~
UnityTechnologiesJapan002
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
Java Just-In-Timeコンパイラ
Java Just-In-Timeコンパイラ
Kazuaki Ishizaki
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用
Lorex L. Yang
Constexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzz
京大 マイコンクラブ
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
Akihiko Matuura
Mais conteúdo relacionado
Mais procurados
さくらのVPSに来る悪い人を観察する その2
さくらのVPSに来る悪い人を観察する その2
ozuma5119
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
Yuichi Sakuraba
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Shuto Suzuki
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
Yoshifumi Kawai
async/await のしくみ
async/await のしくみ
信之 岩永
〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
Akihiro Kitada
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
normalian
RENDERING 最適化「禍つヴァールハイト」
RENDERING 最適化「禍つヴァールハイト」
KLab Inc. / Tech
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
増田 亨
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
Atsuo Ishimoto
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
JustSystems Corporation
テストを書こう!!
テストを書こう!!
拓 小林
Javaバイトコード入門
Javaバイトコード入門
Kota Mizushima
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
【Unite Tokyo 2018】チームラボ × Unity ~Unityで制作するデジタルアートの世界~
【Unite Tokyo 2018】チームラボ × Unity ~Unityで制作するデジタルアートの世界~
UnityTechnologiesJapan002
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Junya Hayashi
Java Just-In-Timeコンパイラ
Java Just-In-Timeコンパイラ
Kazuaki Ishizaki
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用
Lorex L. Yang
Mais procurados
(20)
さくらのVPSに来る悪い人を観察する その2
さくらのVPSに来る悪い人を観察する その2
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Cognitive Complexity でコードの複雑さを定量的に計測しよう
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
async/await のしくみ
async/await のしくみ
〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
〜僕の初めてのリアクティブプログラミング Reactor を使ってリアクティブに昇龍拳を繰り出してみた!
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
RENDERING 最適化「禍つヴァールハイト」
RENDERING 最適化「禍つヴァールハイト」
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
NumPyの歴史とPythonの並行処理【PyData.tokyo One-day Conference 2018】
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
ジャストシステムJava100本ノックのご紹介
ジャストシステムJava100本ノックのご紹介
テストを書こう!!
テストを書こう!!
Javaバイトコード入門
Javaバイトコード入門
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
【Unite Tokyo 2018】チームラボ × Unity ~Unityで制作するデジタルアートの世界~
【Unite Tokyo 2018】チームラボ × Unity ~Unityで制作するデジタルアートの世界~
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
Java Just-In-Timeコンパイラ
Java Just-In-Timeコンパイラ
北護大/FHIR 開發簡介與應用
北護大/FHIR 開發簡介與應用
Destaque
Constexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzz
京大 マイコンクラブ
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
Akihiko Matuura
Boostのあるプログラミング生活
Boostのあるプログラミング生活
Akira Takahashi
闇魔術を触ってみた
闇魔術を触ってみた
Satoshi Sato
覚えておきたいプログラミング作法
覚えておきたいプログラミング作法
Junya Shimazu
クロージャデザインパターン
クロージャデザインパターン
Moriharu Ohzu
Visual C++で使えるC++11
Visual C++で使えるC++11
nekko1119
Template Meta Programming入門から応用まで
Template Meta Programming入門から応用まで
yoshihikoozaki5
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
Shigenori Sagawa
ネイティブ開発アンチパターン
ネイティブ開発アンチパターン
Yuki Tamura
Final LINQ Extensions II
Final LINQ Extensions II
Kouji Matsui
Final LINQ Extensions
Final LINQ Extensions
Kouji Matsui
C++の黒魔術
C++の黒魔術
Daichi OBINATA
Final LINQ extensions III
Final LINQ extensions III
Kouji Matsui
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
egtra
いまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitした
Kouji Matsui
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
Shunji Konishi
これからの「async/await」の話をしよう
これからの「async/await」の話をしよう
Kouji Matsui
async/awaitダークサイド is 何
async/awaitダークサイド is 何
Kouji Matsui
async/await不要論
async/await不要論
bleis tift
Destaque
(20)
Constexprとtemplateでコンパイル時にfizz buzz
Constexprとtemplateでコンパイル時にfizz buzz
C++ Template Meta Programming の紹介@社内勉強会
C++ Template Meta Programming の紹介@社内勉強会
Boostのあるプログラミング生活
Boostのあるプログラミング生活
闇魔術を触ってみた
闇魔術を触ってみた
覚えておきたいプログラミング作法
覚えておきたいプログラミング作法
クロージャデザインパターン
クロージャデザインパターン
Visual C++で使えるC++11
Visual C++で使えるC++11
Template Meta Programming入門から応用まで
Template Meta Programming入門から応用まで
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
ネイティブ開発アンチパターン
ネイティブ開発アンチパターン
Final LINQ Extensions II
Final LINQ Extensions II
Final LINQ Extensions
Final LINQ Extensions
C++の黒魔術
C++の黒魔術
Final LINQ extensions III
Final LINQ extensions III
エクストリームC++11/14プログラミング
エクストリームC++11/14プログラミング
いまさら恥ずかしくてAsyncをawaitした
いまさら恥ずかしくてAsyncをawaitした
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
これからの「async/await」の話をしよう
これからの「async/await」の話をしよう
async/awaitダークサイド is 何
async/awaitダークサイド is 何
async/await不要論
async/await不要論
Semelhante a ジェネレーティブプログラミングの世界
意図を表現するプログラミング
意図を表現するプログラミング
Atsuhiro Kubo
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tye
Yuta Matsumura
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
Atsuhiro Kubo
C#ユーザー会 //build/ まとめ(サーバー編)
C#ユーザー会 //build/ まとめ(サーバー編)
Keiji Kamebuchi
初めてのWebプログラミング講座
初めてのWebプログラミング講座
DIVE INTO CODE Corp.
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Yasuaki Matsuda
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
DIVE INTO CODE Corp.
WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会
Yusuke Naka
明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化
Taiji Tsuchiya
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
v6app
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
Atsuhiro Kubo
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
You&I
Azure App Service Overview LT
Azure App Service Overview LT
Keiji Kamebuchi
Microsoft Copilot Studio.pdf
Microsoft Copilot Studio.pdf
Tomokazu Kizawa
Power shell で DSL
Power shell で DSL
urasandesu
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Atsushi Nakamura
Spring I/O 2018 報告会
Spring I/O 2018 報告会
NTT Software Innovation Center
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Takuya Iwatsuka
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.
Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発
m ishizaki
Semelhante a ジェネレーティブプログラミングの世界
(20)
意図を表現するプログラミング
意図を表現するプログラミング
マイクロサービス開発が捗る Project Tye
マイクロサービス開発が捗る Project Tye
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
C#ユーザー会 //build/ まとめ(サーバー編)
C#ユーザー会 //build/ まとめ(サーバー編)
初めてのWebプログラミング講座
初めてのWebプログラミング講座
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
Azure Function GAした!Visual Studio Tools for Azure Functions もプレビューだ!
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
WebRTCを始めよう! HTML5fun 第一回勉強会
WebRTCを始めよう! HTML5fun 第一回勉強会
明日からはじめるネットワーク運用自動化
明日からはじめるネットワーク運用自動化
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
20141023 IPv6 Summit in FUKUOKA 2014 IPv6対応Webサービスの作り方
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
Azure App Service Overview LT
Azure App Service Overview LT
Microsoft Copilot Studio.pdf
Microsoft Copilot Studio.pdf
Power shell で DSL
Power shell で DSL
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Visual Studio 2019で始める「WPF on .NET Core 3.0」開発
Spring I/O 2018 報告会
Spring I/O 2018 報告会
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
Spring I/O 2018 報告 RESTDocs RAML, Cloud Contract
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
Visual Studio Code で C# でのアプリ開発
Visual Studio Code で C# でのアプリ開発
Mais de Atsuhiro Kubo
MPD Osaka Extra 5
MPD Osaka Extra 5
Atsuhiro Kubo
Enaction, Not Design on MPD Osaka Extra 1
Enaction, Not Design on MPD Osaka Extra 1
Atsuhiro Kubo
Enaction, Not Design on Symfony Meetup Kansai 2
Enaction, Not Design on Symfony Meetup Kansai 2
Atsuhiro Kubo
The Birth of FormalBears - A new META for BEAR.Sunday applications
The Birth of FormalBears - A new META for BEAR.Sunday applications
Atsuhiro Kubo
Lean Architecture / DCI Evening Report
Lean Architecture / DCI Evening Report
Atsuhiro Kubo
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Atsuhiro Kubo
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Atsuhiro Kubo
Software Development with Symfony
Software Development with Symfony
Atsuhiro Kubo
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
Introduction to Continuous Testing
Introduction to Continuous Testing
Atsuhiro Kubo
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
Atsuhiro Kubo
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
How To Create Custom DSLs By PHP
How To Create Custom DSLs By PHP
Atsuhiro Kubo
Piece Framework 2.0 Background
Piece Framework 2.0 Background
Atsuhiro Kubo
Mais de Atsuhiro Kubo
(15)
MPD Osaka Extra 5
MPD Osaka Extra 5
Enaction, Not Design on MPD Osaka Extra 1
Enaction, Not Design on MPD Osaka Extra 1
Enaction, Not Design on Symfony Meetup Kansai 2
Enaction, Not Design on Symfony Meetup Kansai 2
The Birth of FormalBears - A new META for BEAR.Sunday applications
The Birth of FormalBears - A new META for BEAR.Sunday applications
Lean Architecture / DCI Evening Report
Lean Architecture / DCI Evening Report
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Software Development with Symfony
Software Development with Symfony
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Introduction to Continuous Testing
Introduction to Continuous Testing
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
How To Create Custom DSLs By PHP
How To Create Custom DSLs By PHP
Piece Framework 2.0 Background
Piece Framework 2.0 Background
ジェネレーティブプログラミングの世界
1.
2014/2/15(土) 第29回 IT勉強宴会in名古屋 ジェネレーティブプログラミング の世界 PHPメンターズ 久保敦啓 (KUBO
Atsuhiro)
2.
久保敦啓 (KUBO Atsuhiro) ● Twitter
@iteman ● GitHub https://github.com/iteman ● 株式会社アイテマン ● PHPメンターズ ● Piece Framework ● 関西IT勉強宴会 Copyright (c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
3.
PHPメンターズ ● PHPプログラマーを対象とするサービス – – ● トレーニング、技術サポート、メンタリング プログラミング道場 メンター – 久保敦啓 @iteman – 後藤秀宣 @hidenorigoto Copyright
(c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
4.
PHPメンターズ ● Twitter @phpmentors ● GitHub https://github.com/phpmentors-jp ● Webサイト・ブログ http://phpmentors.jp/ Copyright
(c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
5.
Piece Framework ● PHPフレームワーク、ツール – MakeGood – Stagehand_TestRunner – Stagehane_FSM ... ● オープンソースソフトウェア ● Piece Project Copyright
(c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
6.
Piece Framework ● Twitter @piece_framework ● GitHub
https://github.com/piece Copyright (c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
7.
ジェネレーティブプログラミング (GP: Generative Programming) Copyright
(c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
8.
ジェネレーティブプログラミング ● ● ソフトウェアシステムファミリのモデリングに 基づくソフトウェア工学のパラダイム[1] 与えられた特定の要求仕様を元に、構成の知識 を生かし、再利用可能な基本部分を使って、カ スタム化かつ最適化された中間または最終製品 を自動的に生成[1] Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
9.
従来のソフトウェア開発 Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
10.
Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
11.
ジェネレーティブプログラミング に基づくソフトウェア開発 Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
12.
Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
13.
ドメイン ● ● 知識、影響、または活動の領域[2] 限定されたエリア、もしくは関心のある領域 [4] ● 知識分野[1] ● 例:販売管理システム、状態マシン Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
14.
ドメインの相互関係 ● ドメインは一般的に複数のドメインから構成される ● 例:販売管理システムのドメイン – – ● 売上、在庫、仕入、… Webアプリケーション、データベース、… 相互関係の種類:[1] – 包含(サブドメイン) – 使用(サポートドメイン) – 類似(類似ドメイン) Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
15.
問題ドメイン(problem domain) ● 問題領域、アプリケーションドメイン(application domain)、問題空間(problem space) ● ユーザー(ドメインエキスパート含む)の活動領域 ● ドメイン知識(domain
knowledge) ● 成果物:問題ドメインモデル ドメインの定義、ドメイン辞書、概念モデル、ユース ケースモデル、… Copyright (c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
16.
ドメイン知識(domain knowledge) ● ● ● ● ユーザーの関心が寄せられている知識の体系 [4] 分析するビジネスを構成するプロセス、エン ティティ、そして制約[3] 実践者によって共通に理解される概念と用語の 集まり[1] その分野のソフトウェアシステム(またはシス テムの一部)の構築に関する知識[1] Copyright (c)
2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
17.
解決ドメイン(solution domain) ● ● ● ● 解決領域、解決空間(solution space) ソフトウェアに関わる人間(主に開発者)の活 動領域 実装者の関心が中心になるが、システムユーザ にとってもその界面部分は関心事項[4] 成果物:解決ドメインモデル アーキテクチャ、基本コンポーネント、フレーム ワーク、ドメイン特化言語、… Copyright
(c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
18.
Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
19.
ドメインモデル “ドメインモデルとは特定の図ではなく、図が 伝えようとしている考え方である。これはドメ インエキスパートの頭の中にある単なる知識で はなく、その知識が厳密に構成され、選び抜か れて抽象化されたものなのだ。” ー『エリック・エヴァンスのドメイン駆動設 計』[2] Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
20.
ドメインモデル “事業を眺めて、事業を要約する。こういう書 きかたでは、絶対にモデルにならない。なぜ か。「解釈」のほうが先を歩いているからだ。 モデルは、「論理」によって、つまり論理規則 によって、構成をととのえていなければならな い。” ー 佐藤正美さんのツイート https://twitter.com/satou_masami/status/384687177302437889 Copyright (c)
2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
21.
ドメインモデル ● ● ● 問題ドメインのドメイン知識を入力とし、解決 ドメインにおいて構成された抽象 モデリング(モデル化、モデル制作)による成 果物 論理規則によって形式化されるのが望ましい Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
22.
ドメイン特化言語 ● DSL: Domain-Specific Languages ● ドメイン固有言語、アプリケーション固有言語 ● ● ● 特定の問題に焦点を当てたプログラミング言語 [3] 特定のドメインの特定のモデル用にあつらえたプ ログラミング言語[4] ドメイン知識をユーザーのニーズに合わせた詳細 レベルで記述するための言語 Copyright
(c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
23.
Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
24.
ドメイン特化言語 “ドメイン固有言語は、システムファミリの具 体的なメンバを「発注」するのに使い、ゆえに ジェネレーティブプログラミングにおいて重要 な役割を果たします。” ー『ジェネレーティブプログラミング』[1] Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
25.
意図性(Intentionality) "意図的な記述は、何が必要なのかを直接かつ 明確に示し、余計ながらくたや不要な実装の詳 細を避けます。これらは、理解しやすさ、分析 しやすさ、修正しやすさ、保守のしやすさなど の、良いコードが持つすべての属性を備えてい ます。ドメインに固有な表記法により、意図性 を達成します。" ー『ジェネレーティブプログラミング』[1] Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
26.
グラフィカルDSL Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
27.
テキストDSL ... PHPMentorsTrainingCourseRegistrationDomainDataRegistration: getters: paymentMethod: - NotBlank: {
message: "選択してください" } lastName: &mandatoryText - NotBlank: ¬BlankText message: "入力してください" - MaxLength: &maxLengthText limit: 255 message: "{{ limit }} 文字以下で入力してください" firstName: *mandatoryText email: - NotBlank: *notBlankText - Email: { message: "正しいメールアドレスを入力してください" } .. Copyright (c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
28.
ジェネレーター ● ● ● ソフトウェア部品の高レベルな仕様から、その 実装を生成するプログラム[1] ドメイン特化言語で記述されたドメイン知識を 解決ドメインモデルの組み合わせに変換するプ ログラム 実行可能な形式(オブジェクト、バイトコー ド)やソースコード、その他の形式を生成 Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
29.
Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
30.
ドメイン工学 ● ● 特定のドメインのシステムまたはシステムの一部の構築に関 する過去の経験を再利用可能な資産として集めて、まとめ て、蓄積すること[1] SCV – スコープ(scope) – 共通性(commonality) – 可変性(variability) – ドメイン間の関係(relationship)、SCV + R[4] ● システムファミリ ● マルチパラダイムデザイン[4]はドメイン工学の一形態 Copyright
(c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
31.
ドメインスコープ ● 垂直ドメイン(vertical domain) 単一システムドメイン、アプリケーションドメイン 例:販売管理システム ● 水平ドメイン(horizontal domain) システムカテゴリドメイン 例:状態マシン Copyright
(c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
32.
共通性、可変性 ● ● 分析の形式[4] ほとんどすべての設計手法の根底に存在する直 観的な概念[4] ● 人間の思考が抽象を生み出すやり方の本質[4] ● システムファミリの共通部分と可変部分 Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
33.
システムファミリ ● ● ● ● ソフトウェアファミリ 共通な資産から作るに十分な特徴を共有するシステ ム集合[1] 構造(structure)、名前(name)、振る舞い (behavior)といった評価基準に基づいて、データ 構造と機能(function)をグルーピングされた、何 らかの関連性を持つグループ[4] 構造化プログラミングの提唱者であるダイクストラ (Dijkstra)を起源とする概念 Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
34.
ドメイン工学 に基づくソフトウェア開発 Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
35.
ドメイン工学に基づくソフトウェア開発 ー『ジェネレーティブプログラミング』[1] Copyright (c)
2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
36.
ドメイン工学+ドメイン駆動設計 Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
37.
Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
38.
ジェネレーティブプログラミング に基づくソフトウェア開発 Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
39.
Copyright (c) 2014
KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
40.
関連パラダイム ● インテンショナルプログラミング(Intentional Programming) ● ジェネレーティブプログラミング(GP: Generative
Programming) ● ソフトウェアファクトリ(Software Factories) ● ソフトウェアプロダクトライン(SPL: Software Product Lines) ● ドメイン特化モデリング(DSM: Domain Specific Modeling) ● ドメイン特化言語(DSL: Domain-Specific Languages) ● ドメイン駆動設計(DDD: Domain-Driven Design) ● マルチパラダイムデザイン(Multi-Paradigm Design) ● メタプログラミング(Metaprogramming) ● モデル駆動開発(MDD: Model Driven Development) ● 宣言的プログラミング(Declarative Programming) ● 言語ワークベンチ(Language Workbenches) ● 言語指向プログラミング(LOP: Language-Oriented Programming) Copyright (c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
41.
参考文献 1. クシシュトフ・チャルネッキ、ウールリシュ・W・アイセンアッカー 著/津田
義史、今関 剛、朝比奈 勲 訳『ジェネレーティブプログラミング』翔泳社、2008(原著 Krzysztof Czarnecki, Ulrich Eisenecker, “Generative Programming: Methods, Tools, and Applications”, Addison-Wesley Professional, 2000) 2. エリック・エヴァンス 著/今関 剛、和智 右桂、牧野 祐子 訳『エリック・エヴァンスのドメイン駆動 設計』翔泳社、2011(原著 Eric Evans, "Domain-Driven Design: Tackling Complexity in the Heart of Software", Addison-Wesley Professional, 2003) 3. Debasish Ghosh 著/佐藤 竜一 訳『実践プログラミングDSL』翔泳社、2012(原著 Debasish Ghosh, "DSLs in Action", Manning Publications, 2010) 4. ジェームス・O・コプリン 著/平鍋 健児、金澤 典子、羽生田 栄一 訳『新装版マルチパラダイムデ ザイン』ピアソン・エデュケーション、2009(原著 James O. Coplien, “Multi-Paradigm Design for C++”, Addison-Wesley Professional, 1998) 5. Magnus Christerson, Henk Kolk, "Domain Expert DSLs", 2008, http://www.slideshare.net/deimos/magnus-christerson-henk-kolk-domain-expert-ds-ls Copyright (c) 2014 KUBO Atsuhiro <kubo@iteman.jp>, All rights reserved.
Baixar agora