SlideShare a Scribd company logo
DDD                        Pt.II


Building Blocks
 ~DDD                                                        ~


        (   ) - tricreo.jp / Jiemamy Project - jiemamy.org
    2011.04.09 @
•               (@daisuke_m)

• Jiemamy / java-ja
• Apache Mahout
• Java / OO / DDD
•
works
• @IT — Jiemamy
•
  • Java
  • Java
• Java: The Good Parts (           )

•                          DDD (       )
DDD
      http://d.hatena.ne.jp/daisuke-m/20110407/1302156870


• Jiemamy Project
•
•
•         DDD
•
• Jiemamy version 0.3
• baseunits library (timeandmoney)
Jiemamy
•           ER

    • Eclipse        (UI         )

    • DB          , SQL (            )

     •                      SQL…

    • XML I/O, DDD (         )
Agenda
• DDD overview
• Isolating the Domain
• Model
• LifeCycle
§0 DDD overview

• DDD
 • GoF
 • PoEAA
DDD PATTERNS
•   STRATEGY                              •   OPEN HOST SERVICE

•   COMPOSITE                             •   CORE DOMAIN

•   BOUNDED CONTEXT                       •   GENERIC SUBDOMAINS

•   CONTINUOUS INTEGRATION                •   DOMAIN VISION STATEMENT

•   CONTEXT MAP                           •   HIGHLIGHTED CORE

•   SHARED KERNEL                         •   COHESIVE MECHANISMS

•   CUSTOMER/SUPPLIER DEVELOPMENT TEAMS   •   SUGGESTED CORE

•   CONFORMIST                            •   ABSTRACT CORE

•   ANTICORRUPTION LAYER                  •   EVOLVING ORDER

•   SEPARATE WAYS                         •   SYSTEM METAPHOR

•   OPEN HOST SERVICE                     •   RESPONSIVILITY LAYERS

•   PUBLISHED LANGUAGE                    •   KNOWLEDGE LEVEL

•   INTEGRATION                           •   PLUGGABLE COMPONENT FRAMEWORK
DDD PATTERNS
•   UBIQUITOUS LANGUAGE           •   FACTRIES

•   MODEL-DRIVEN DESIGN           •   REPOSITORIES

•   HANDS-ON MODELERS             •   SPECIFICATION

•   LAYERED ARCHITECTURE          •   INTENTION-REVEALING
                                      INTERFACES
•   THE SMART UI "ANTI-PATTERN"
                                  •   SIDE-EFFECT-FREE
                                      FUNCTION
•   ENTITIES

•   VALUE OBJECTS                 •   ASSERTIONS

•   SERVICES                      •   CONCEPTUAL CONTOURS

•   MODULES                       •   STANDALONE CLASSES

•   AGGREGATES                    •   CLOSURE OF OPERATIONS
•
•
•
•(   )
•
    •
    •
Domain or Not
•
•
•        HISTORY
•
•
•
•
• UI
• DB
•
•      DB
•

•

•
•
•               →
•                →
•           ®

    •
    •
•       ®

    •
    •
•
•
•
•
•
    •
• Model Driven Design (   )


    •
Model or Not
•   LibHTTP         •   User

•   Search          •   File

•   FacebookLogin   •   String

•   Translation     •   StringBuilder

•   FoobarLogic     •   YearMonth
§1

•

•
    •
    •   UI
LAYERED
    ARCHITECTURE
•

•    ;




•
Jiemamy
      DiagramEditor
        TableView
     DbObjectEditPart            maven-jiemamy-plugin                 UI
 jiemamy eclipse plugin                           ExecuteMojo     Application


       jiemamy-diagram                JmDiagram
                                 JmNode / JmConnection

     SqlStatement        jiemamy-sql                               Domain
         Token                              JmTable / JmView
                                               JmColumn
                        jiemamy-core     JmForeignKeyConstraint

                                   woodstox
SqlExecutor / UUIDProvider
                                   XMLInputFactory                 Infrastructure
                                  XMLValidationSchema
   jiemamy-commons
                              apache commons
THE SMART UI
        "ANTI-PATTERN"
• DDD
•
  •

•          light   MDD
UI   DB




User#save(); → DB
toString() ! "<span>...</span>"
§2
•
•
•                         3

    • ENTITY (E)
    • VALUE OBJECT (VO)
    • SERVICE
•
    •
•
    • Table knows Columns / Column knows Table
    • Emp knows Dept / Dept knows Emps
class Emp {       class Dept {
  String name;      String name;
  Dept dept;        List<Emp> members;
}                 }

   Dept tech = new Dept("         ");
   Emp kato = new Emp("     ");
   kato.setDept(tech);
   tech.addMember(kato);
• Declaration & Reference
• Repository
ENTITY (E)

•
•
•        vs

•   (SE) vs   (   )
• 31                   32
                             31
                             (File / DB)


                             32
                            (On Memory)


•
• Serialize / Deserialize                  clone…
ENTITY
•   Table         •   Order

•   Column        •   Customer

•   ForeignKey



•   Employee

•   Department
ENTITY

•
•
• ID
• equals   hashCode ID
•      ENTITY

• ID
•
  •
  •
E
Column col = ...; // ← ENTITY
tableFoo.addColumn(col);
tableBar.addColumn(col);
// something
tableFoo.getColumn(...).setName("AAA");

tableBar
•   ID

•        (v0.2)

•
VALUE OBJECT (VO)
•

•
• new String("foo") vs new String("foo")
• man.getName(): String
• equals hashCode property
VALUE OBJECT
• Integer
• BigDecimal
• String
• Color
• Date / TimePoint
• Status (OPEN / PROGRESS / CLOSED)
VALUE OBJ.

•
•
• Immutable
  •            Flyweight
SERVICE
•                              E   VO


•       E       VO
                     Service

    •       E    VO

    •
SERVICE
•
•             (UL)

•

•        →
•                          E / VO
•       E / VO
•         E / VO
    •              Transaction Script
    •
• Infrastructure Service (      )
  • E-mail
  •
• Application Service
  •                   Excel export
  •
• Domain Service
  •
•
MODULE


•
•
Java package
•
•        1



•
MVC
• com.example.foobar •com.example.foobar
 • model              • foo
   • FooModel           • FooModel
   • BarModel           • FooView
 • view          UL     • FooController
   • FooView          • bar
   • BarView            • BarModel
 • controller           • BarView
   • FooController      • BarController
   • BarController
MVC
• com.example.foobar •com.example.foobar
 • model              • foo
   • FooModel           • FooModel
   • BarModel           • FooView
 • view          UL     • FooController
   • FooView          • bar
   • BarView            • BarModel
 • controller           • BarView
   • FooController      • BarController
   • BarController
§3 LifeCycle

•        Object

    • new GC
    • INSERT DELETE
•
§3 LifeCycle
E
•       LifeCycle   Object    LifeCycle

•                            User




• JVM
AGGREGATE


•
•               …
•
• Table
• Column                 Entity

• Column         Table

•       ObjColumn
         →    Table
FACTORY
•
•
•                     new

•   Object   Object

•
• Obj.
• Object    LifeCycle

•
  •        Object
Obj.
•
    • Obj.

    •         Obj.

•       Factory      Obj.
REPOSITORY
•
    •
    •
        •
    • Repository
• Entity      LifeCycle

• LC          Entity

•        new

  • On Memory Collection
  • Database
Repos.            Collection
•                              DB



• Repository
    Collection

• store / delete / find (resolve) ...
Declaration & Reference
CREATE TABLE FOOBAR (
     FOO INTEGER,
     BAR VARCHAR(32),              Decl. = Entity
     PRIMARY KEY (FOO),
     FOREIGN KEY (BAR)              Ref. = VO
                                      (ID)
       REFERECE BAZ (QUX)
);

         Table has-a Column(s) and ...
      PrimaryKey has-a ColumnReference
•                     /
•
    ENTITY / VO / SERVICE
•
    FACTORY / REPOSITRY
• DDD
DevLOVE Beautiful Development - 第一幕 陽の巻

More Related Content

What's hot

Code for Startup MVP (Ruby on Rails) Session 2
Code for Startup MVP (Ruby on Rails) Session 2Code for Startup MVP (Ruby on Rails) Session 2
Code for Startup MVP (Ruby on Rails) Session 2
Henry S
 
From Ruby to Scala
From Ruby to ScalaFrom Ruby to Scala
From Ruby to Scala
tod esking
 
第二回Salesforce勉強会
第二回Salesforce勉強会第二回Salesforce勉強会
第二回Salesforce勉強会
株式会社インサイト
 
Webinar: What's new in the .NET Driver
Webinar: What's new in the .NET DriverWebinar: What's new in the .NET Driver
Webinar: What's new in the .NET Driver
MongoDB
 
UT on Rails3 2010- Week 2
UT on Rails3 2010- Week 2UT on Rails3 2010- Week 2
UT on Rails3 2010- Week 2
Richard Schneeman
 
Hibernate ORM: Tips, Tricks, and Performance Techniques
Hibernate ORM: Tips, Tricks, and Performance TechniquesHibernate ORM: Tips, Tricks, and Performance Techniques
Hibernate ORM: Tips, Tricks, and Performance Techniques
Brett Meyer
 
Creating Dynamic Charts With JFreeChart
Creating Dynamic Charts With JFreeChartCreating Dynamic Charts With JFreeChart
Creating Dynamic Charts With JFreeChart
David Keener
 
โปรแกรม Dreamweaver 8
โปรแกรม Dreamweaver 8โปรแกรม Dreamweaver 8
โปรแกรม Dreamweaver 8kruple
 

What's hot (10)

Code for Startup MVP (Ruby on Rails) Session 2
Code for Startup MVP (Ruby on Rails) Session 2Code for Startup MVP (Ruby on Rails) Session 2
Code for Startup MVP (Ruby on Rails) Session 2
 
From Ruby to Scala
From Ruby to ScalaFrom Ruby to Scala
From Ruby to Scala
 
第二回Salesforce勉強会
第二回Salesforce勉強会第二回Salesforce勉強会
第二回Salesforce勉強会
 
Webinar: What's new in the .NET Driver
Webinar: What's new in the .NET DriverWebinar: What's new in the .NET Driver
Webinar: What's new in the .NET Driver
 
UT on Rails3 2010- Week 2
UT on Rails3 2010- Week 2UT on Rails3 2010- Week 2
UT on Rails3 2010- Week 2
 
Avik_RailsTutorial
Avik_RailsTutorialAvik_RailsTutorial
Avik_RailsTutorial
 
Hibernate ORM: Tips, Tricks, and Performance Techniques
Hibernate ORM: Tips, Tricks, and Performance TechniquesHibernate ORM: Tips, Tricks, and Performance Techniques
Hibernate ORM: Tips, Tricks, and Performance Techniques
 
jQuery-1-Ajax
jQuery-1-AjaxjQuery-1-Ajax
jQuery-1-Ajax
 
Creating Dynamic Charts With JFreeChart
Creating Dynamic Charts With JFreeChartCreating Dynamic Charts With JFreeChart
Creating Dynamic Charts With JFreeChart
 
โปรแกรม Dreamweaver 8
โปรแกรม Dreamweaver 8โปรแกรม Dreamweaver 8
โปรแกรม Dreamweaver 8
 

Viewers also liked

「攻めのIt」を実現するアーキテクチャーとdev opsの関係
「攻めのIt」を実現するアーキテクチャーとdev opsの関係「攻めのIt」を実現するアーキテクチャーとdev opsの関係
「攻めのIt」を実現するアーキテクチャーとdev opsの関係
Yukei Wachi
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布sleipnir002
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA
 
(SEC402) Enterprise Cloud Security via DevSecOps 2.0
(SEC402) Enterprise Cloud Security via DevSecOps 2.0(SEC402) Enterprise Cloud Security via DevSecOps 2.0
(SEC402) Enterprise Cloud Security via DevSecOps 2.0
Amazon Web Services
 
ドメイン駆動設計 実践ガイド
ドメイン駆動設計 実践ガイドドメイン駆動設計 実践ガイド
ドメイン駆動設計 実践ガイド
増田 亨
 
مجلة ابن رشد الاصدار الثاني
مجلة ابن رشد الاصدار الثانيمجلة ابن رشد الاصدار الثاني
مجلة ابن رشد الاصدار الثاني
ibnrushd1434
 
Lviv Outsourcing Forum 2016 Максим Іцкович “iOS & Android : What happened dur...
Lviv Outsourcing Forum 2016 Максим Іцкович “iOS & Android : What happened dur...Lviv Outsourcing Forum 2016 Максим Іцкович “iOS & Android : What happened dur...
Lviv Outsourcing Forum 2016 Максим Іцкович “iOS & Android : What happened dur...
Lviv Startup Club
 
Casa administrativo
Casa   administrativoCasa   administrativo
Casa administrativo
Christiano Morais
 
【Jt】closhe 分層 プレゼン (1)
【Jt】closhe 分層 プレゼン (1)【Jt】closhe 分層 プレゼン (1)
【Jt】closhe 分層 プレゼン (1)
久美歩 石郷
 
Opne data @ Big data & Analytics day 2016-11-15
Opne data @ Big data & Analytics day  2016-11-15Opne data @ Big data & Analytics day  2016-11-15
Opne data @ Big data & Analytics day 2016-11-15
Livar Bergheim
 
Kaleidoscopic organization Characteristics - Author Senthil
Kaleidoscopic organization Characteristics - Author SenthilKaleidoscopic organization Characteristics - Author Senthil
Kaleidoscopic organization Characteristics - Author Senthil
Senthil Kumar, PhD.
 
Inteligencia emocional para el liderazgo v1.0 ago 2015
Inteligencia emocional para el liderazgo v1.0 ago 2015Inteligencia emocional para el liderazgo v1.0 ago 2015
Inteligencia emocional para el liderazgo v1.0 ago 2015
Juan Carlos Zúñiga Montalvo
 
Bullying intimidación y maltrato entre el alumnado (j maria avilés martínez)
Bullying intimidación y maltrato entre el alumnado (j maria avilés martínez)Bullying intimidación y maltrato entre el alumnado (j maria avilés martínez)
Bullying intimidación y maltrato entre el alumnado (j maria avilés martínez)Lalvmun
 
Let's Get Physical
Let's Get PhysicalLet's Get Physical
Let's Get Physical
Joel Lord
 
O futuro do Bitcoin está nas mãos da China?
O futuro do Bitcoin está nas mãos da China?O futuro do Bitcoin está nas mãos da China?
O futuro do Bitcoin está nas mãos da China?
Edilson Osorio Junior
 
Documento de finanzas corporativas de 50 ejercicios (1)
Documento de finanzas corporativas de 50 ejercicios (1)Documento de finanzas corporativas de 50 ejercicios (1)
Documento de finanzas corporativas de 50 ejercicios (1)
Gian Guzman
 
What is Modernization Infographic
What is Modernization InfographicWhat is Modernization Infographic
What is Modernization Infographic
Uniface
 
Time Theft: How Hidden and Unplanned Work Commit the Perfect Crime
Time Theft: How Hidden and Unplanned Work Commit the Perfect CrimeTime Theft: How Hidden and Unplanned Work Commit the Perfect Crime
Time Theft: How Hidden and Unplanned Work Commit the Perfect Crime
LeanKit
 

Viewers also liked (19)

「攻めのIt」を実現するアーキテクチャーとdev opsの関係
「攻めのIt」を実現するアーキテクチャーとdev opsの関係「攻めのIt」を実現するアーキテクチャーとdev opsの関係
「攻めのIt」を実現するアーキテクチャーとdev opsの関係
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 
(SEC402) Enterprise Cloud Security via DevSecOps 2.0
(SEC402) Enterprise Cloud Security via DevSecOps 2.0(SEC402) Enterprise Cloud Security via DevSecOps 2.0
(SEC402) Enterprise Cloud Security via DevSecOps 2.0
 
ドメイン駆動設計 実践ガイド
ドメイン駆動設計 実践ガイドドメイン駆動設計 実践ガイド
ドメイン駆動設計 実践ガイド
 
مجلة ابن رشد الاصدار الثاني
مجلة ابن رشد الاصدار الثانيمجلة ابن رشد الاصدار الثاني
مجلة ابن رشد الاصدار الثاني
 
Lviv Outsourcing Forum 2016 Максим Іцкович “iOS & Android : What happened dur...
Lviv Outsourcing Forum 2016 Максим Іцкович “iOS & Android : What happened dur...Lviv Outsourcing Forum 2016 Максим Іцкович “iOS & Android : What happened dur...
Lviv Outsourcing Forum 2016 Максим Іцкович “iOS & Android : What happened dur...
 
Casa administrativo
Casa   administrativoCasa   administrativo
Casa administrativo
 
【Jt】closhe 分層 プレゼン (1)
【Jt】closhe 分層 プレゼン (1)【Jt】closhe 分層 プレゼン (1)
【Jt】closhe 分層 プレゼン (1)
 
Terms of Reference for Selection of Auditors Audit Reports and Audit Review
Terms of Reference for Selection of Auditors Audit Reports and Audit ReviewTerms of Reference for Selection of Auditors Audit Reports and Audit Review
Terms of Reference for Selection of Auditors Audit Reports and Audit Review
 
Opne data @ Big data & Analytics day 2016-11-15
Opne data @ Big data & Analytics day  2016-11-15Opne data @ Big data & Analytics day  2016-11-15
Opne data @ Big data & Analytics day 2016-11-15
 
Kaleidoscopic organization Characteristics - Author Senthil
Kaleidoscopic organization Characteristics - Author SenthilKaleidoscopic organization Characteristics - Author Senthil
Kaleidoscopic organization Characteristics - Author Senthil
 
Inteligencia emocional para el liderazgo v1.0 ago 2015
Inteligencia emocional para el liderazgo v1.0 ago 2015Inteligencia emocional para el liderazgo v1.0 ago 2015
Inteligencia emocional para el liderazgo v1.0 ago 2015
 
Bullying intimidación y maltrato entre el alumnado (j maria avilés martínez)
Bullying intimidación y maltrato entre el alumnado (j maria avilés martínez)Bullying intimidación y maltrato entre el alumnado (j maria avilés martínez)
Bullying intimidación y maltrato entre el alumnado (j maria avilés martínez)
 
Let's Get Physical
Let's Get PhysicalLet's Get Physical
Let's Get Physical
 
O futuro do Bitcoin está nas mãos da China?
O futuro do Bitcoin está nas mãos da China?O futuro do Bitcoin está nas mãos da China?
O futuro do Bitcoin está nas mãos da China?
 
Documento de finanzas corporativas de 50 ejercicios (1)
Documento de finanzas corporativas de 50 ejercicios (1)Documento de finanzas corporativas de 50 ejercicios (1)
Documento de finanzas corporativas de 50 ejercicios (1)
 
What is Modernization Infographic
What is Modernization InfographicWhat is Modernization Infographic
What is Modernization Infographic
 
Time Theft: How Hidden and Unplanned Work Commit the Perfect Crime
Time Theft: How Hidden and Unplanned Work Commit the Perfect CrimeTime Theft: How Hidden and Unplanned Work Commit the Perfect Crime
Time Theft: How Hidden and Unplanned Work Commit the Perfect Crime
 

Similar to DevLOVE Beautiful Development - 第一幕 陽の巻

コードで学ぶドメイン駆動設計入門
コードで学ぶドメイン駆動設計入門コードで学ぶドメイン駆動設計入門
コードで学ぶドメイン駆動設計入門
潤一 加藤
 
Java EE revisits design patterns
Java EE revisits design patterns Java EE revisits design patterns
Java EE revisits design patterns
Alex Theedom
 
Java EE revisits design patterns
Java EE revisits design patternsJava EE revisits design patterns
Java EE revisits design patterns
Alex Theedom
 
SE2016 - Java EE revisits design patterns 2016
SE2016 - Java EE revisits design patterns 2016SE2016 - Java EE revisits design patterns 2016
SE2016 - Java EE revisits design patterns 2016
Alex Theedom
 
Java EE Revisits Design Patterns
Java EE Revisits Design PatternsJava EE Revisits Design Patterns
Java EE Revisits Design Patterns
Alex Theedom
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
Kevin Webber
 
Client-side MVC with Backbone.js
Client-side MVC with Backbone.js Client-side MVC with Backbone.js
Client-side MVC with Backbone.js
iloveigloo
 
Masterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsMasterin Large Scale Java Script Applications
Masterin Large Scale Java Script Applications
Fabian Jakobs
 
Nuxeo World Session: CMIS - What's Next?
Nuxeo World Session: CMIS - What's Next?Nuxeo World Session: CMIS - What's Next?
Nuxeo World Session: CMIS - What's Next?
Nuxeo
 
初心者向けGAE/Java説明資料
初心者向けGAE/Java説明資料初心者向けGAE/Java説明資料
初心者向けGAE/Java説明資料
Shinichi Ogawa
 
Simplify integrations-final-pdf
Simplify integrations-final-pdfSimplify integrations-final-pdf
Simplify integrations-final-pdf
Christian Posta
 
ITB2017 - Slaying the ORM dragons with cborm
ITB2017 - Slaying the ORM dragons with cbormITB2017 - Slaying the ORM dragons with cborm
ITB2017 - Slaying the ORM dragons with cborm
Ortus Solutions, Corp
 
Learning to run
Learning to runLearning to run
Learning to run
dominion
 
Killing Shark-Riding Dinosaurs with ORM
Killing Shark-Riding Dinosaurs with ORMKilling Shark-Riding Dinosaurs with ORM
Killing Shark-Riding Dinosaurs with ORM
Ortus Solutions, Corp
 
MongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overviewMongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overview
Antonio Pintus
 
Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門Wen-Tien Chang
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
J V
 
Octocatは技術的負債の夢を見るか?
Octocatは技術的負債の夢を見るか?Octocatは技術的負債の夢を見るか?
Octocatは技術的負債の夢を見るか?
treby
 

Similar to DevLOVE Beautiful Development - 第一幕 陽の巻 (20)

JS Essence
JS EssenceJS Essence
JS Essence
 
コードで学ぶドメイン駆動設計入門
コードで学ぶドメイン駆動設計入門コードで学ぶドメイン駆動設計入門
コードで学ぶドメイン駆動設計入門
 
Java EE revisits design patterns
Java EE revisits design patterns Java EE revisits design patterns
Java EE revisits design patterns
 
Java EE revisits design patterns
Java EE revisits design patternsJava EE revisits design patterns
Java EE revisits design patterns
 
SE2016 - Java EE revisits design patterns 2016
SE2016 - Java EE revisits design patterns 2016SE2016 - Java EE revisits design patterns 2016
SE2016 - Java EE revisits design patterns 2016
 
Java EE Revisits Design Patterns
Java EE Revisits Design PatternsJava EE Revisits Design Patterns
Java EE Revisits Design Patterns
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
 
Client-side MVC with Backbone.js
Client-side MVC with Backbone.js Client-side MVC with Backbone.js
Client-side MVC with Backbone.js
 
Masterin Large Scale Java Script Applications
Masterin Large Scale Java Script ApplicationsMasterin Large Scale Java Script Applications
Masterin Large Scale Java Script Applications
 
Nuxeo World Session: CMIS - What's Next?
Nuxeo World Session: CMIS - What's Next?Nuxeo World Session: CMIS - What's Next?
Nuxeo World Session: CMIS - What's Next?
 
初心者向けGAE/Java説明資料
初心者向けGAE/Java説明資料初心者向けGAE/Java説明資料
初心者向けGAE/Java説明資料
 
Simplify integrations-final-pdf
Simplify integrations-final-pdfSimplify integrations-final-pdf
Simplify integrations-final-pdf
 
ITB2017 - Slaying the ORM dragons with cborm
ITB2017 - Slaying the ORM dragons with cbormITB2017 - Slaying the ORM dragons with cborm
ITB2017 - Slaying the ORM dragons with cborm
 
Learning to run
Learning to runLearning to run
Learning to run
 
Killing Shark-Riding Dinosaurs with ORM
Killing Shark-Riding Dinosaurs with ORMKilling Shark-Riding Dinosaurs with ORM
Killing Shark-Riding Dinosaurs with ORM
 
JavaOne_2010
JavaOne_2010JavaOne_2010
JavaOne_2010
 
MongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overviewMongoDB: a gentle, friendly overview
MongoDB: a gentle, friendly overview
 
Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門Ruby on Rails : 簡介與入門
Ruby on Rails : 簡介與入門
 
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
Deep Dive: Alfresco Core Repository (... embedded in a micro-services style a...
 
Octocatは技術的負債の夢を見るか?
Octocatは技術的負債の夢を見るか?Octocatは技術的負債の夢を見るか?
Octocatは技術的負債の夢を見るか?
 

More from 都元ダイスケ Miyamoto

認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
都元ダイスケ Miyamoto
 
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
都元ダイスケ Miyamoto
 
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
都元ダイスケ Miyamoto
 
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
都元ダイスケ Miyamoto
 
AWSクラウドデータストレージ総論
AWSクラウドデータストレージ総論AWSクラウドデータストレージ総論
AWSクラウドデータストレージ総論
都元ダイスケ Miyamoto
 
20170312 F.K様向け ライフパートナーM.M様のご提案
20170312 F.K様向け ライフパートナーM.M様のご提案20170312 F.K様向け ライフパートナーM.M様のご提案
20170312 F.K様向け ライフパートナーM.M様のご提案
都元ダイスケ Miyamoto
 
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
都元ダイスケ Miyamoto
 
マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016
都元ダイスケ Miyamoto
 
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座
都元ダイスケ Miyamoto
 
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
都元ダイスケ Miyamoto
 
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
都元ダイスケ Miyamoto
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05都元ダイスケ Miyamoto
 
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編都元ダイスケ Miyamoto
 
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...都元ダイスケ Miyamoto
 
20121206 VOYAGE LT - 名前重要って言うけどさ
20121206 VOYAGE LT - 名前重要って言うけどさ20121206 VOYAGE LT - 名前重要って言うけどさ
20121206 VOYAGE LT - 名前重要って言うけどさ都元ダイスケ Miyamoto
 
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回都元ダイスケ Miyamoto
 
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategyjava-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy都元ダイスケ Miyamoto
 
DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
DevelopersSummit2011 【17-E-1】 DBも変化せよ - JiemamyDevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy都元ダイスケ Miyamoto
 

More from 都元ダイスケ Miyamoto (20)

認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
認証の標準的な方法は分かった。では認可はどう管理するんだい? #cmdevio
 
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
アプリケーション動作ログ、
ERRORで出すか? WARNで出すか? #cmdevio2019
 
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDayマイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
マイクロサービス時代の認証と認可 - AWS Dev Day Tokyo 2018 #AWSDevDay
 
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
クラスメソッドにおける Web API エンジニアリングの基本的な考え方と標準定義 - Developers.IO 2018 (2018-10-05)
 
AWSクラウドデータストレージ総論
AWSクラウドデータストレージ総論AWSクラウドデータストレージ総論
AWSクラウドデータストレージ総論
 
20170312 F.K様向け ライフパートナーM.M様のご提案
20170312 F.K様向け ライフパートナーM.M様のご提案20170312 F.K様向け ライフパートナーM.M様のご提案
20170312 F.K様向け ライフパートナーM.M様のご提案
 
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
 
マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016
 
Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座Single Command Deployのための gradle-aws-plugin講座
Single Command Deployのための gradle-aws-plugin講座
 
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
20150908 ”時間の流れ” という無限リストを扱うAWS Lambda
 
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
体で覚えるSQS! DEVIO-MTUP11-TOKYO-007
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
 
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
20140315 JAWS DAYS 2014 ACEに聞け! CloudFormation編
 
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
20131210 CM re:Growth - Infrastructure as Code から Full Reproducible Infrastru...
 
20130516 cm課外授業8-aws
20130516 cm課外授業8-aws20130516 cm課外授業8-aws
20130516 cm課外授業8-aws
 
20121215 DevLOVE2012 Mahout on AWS
20121215 DevLOVE2012 Mahout on AWS20121215 DevLOVE2012 Mahout on AWS
20121215 DevLOVE2012 Mahout on AWS
 
20121206 VOYAGE LT - 名前重要って言うけどさ
20121206 VOYAGE LT - 名前重要って言うけどさ20121206 VOYAGE LT - 名前重要って言うけどさ
20121206 VOYAGE LT - 名前重要って言うけどさ
 
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
 
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategyjava-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
java-ja 第1回 チキチキ『( ゜ェ゜)・;'.、ゴフッ』 - Strategy
 
DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
DevelopersSummit2011 【17-E-1】 DBも変化せよ - JiemamyDevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
DevelopersSummit2011 【17-E-1】 DBも変化せよ - Jiemamy
 

Recently uploaded

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 

DevLOVE Beautiful Development - 第一幕 陽の巻

  • 1. DDD Pt.II Building Blocks ~DDD ~ ( ) - tricreo.jp / Jiemamy Project - jiemamy.org 2011.04.09 @
  • 2. (@daisuke_m) • Jiemamy / java-ja • Apache Mahout • Java / OO / DDD •
  • 3. works • @IT — Jiemamy • • Java • Java • Java: The Good Parts ( ) • DDD ( )
  • 4. DDD http://d.hatena.ne.jp/daisuke-m/20110407/1302156870 • Jiemamy Project • • • DDD • • Jiemamy version 0.3 • baseunits library (timeandmoney)
  • 5. Jiemamy • ER • Eclipse (UI ) • DB , SQL ( ) • SQL… • XML I/O, DDD ( )
  • 6. Agenda • DDD overview • Isolating the Domain • Model • LifeCycle
  • 7. §0 DDD overview • DDD • GoF • PoEAA
  • 8. DDD PATTERNS • STRATEGY • OPEN HOST SERVICE • COMPOSITE • CORE DOMAIN • BOUNDED CONTEXT • GENERIC SUBDOMAINS • CONTINUOUS INTEGRATION • DOMAIN VISION STATEMENT • CONTEXT MAP • HIGHLIGHTED CORE • SHARED KERNEL • COHESIVE MECHANISMS • CUSTOMER/SUPPLIER DEVELOPMENT TEAMS • SUGGESTED CORE • CONFORMIST • ABSTRACT CORE • ANTICORRUPTION LAYER • EVOLVING ORDER • SEPARATE WAYS • SYSTEM METAPHOR • OPEN HOST SERVICE • RESPONSIVILITY LAYERS • PUBLISHED LANGUAGE • KNOWLEDGE LEVEL • INTEGRATION • PLUGGABLE COMPONENT FRAMEWORK
  • 9. DDD PATTERNS • UBIQUITOUS LANGUAGE • FACTRIES • MODEL-DRIVEN DESIGN • REPOSITORIES • HANDS-ON MODELERS • SPECIFICATION • LAYERED ARCHITECTURE • INTENTION-REVEALING INTERFACES • THE SMART UI "ANTI-PATTERN" • SIDE-EFFECT-FREE FUNCTION • ENTITIES • VALUE OBJECTS • ASSERTIONS • SERVICES • CONCEPTUAL CONTOURS • MODULES • STANDALONE CLASSES • AGGREGATES • CLOSURE OF OPERATIONS
  • 11. • •
  • 12. Domain or Not • • • HISTORY • • • •
  • 15. → • → • ® • • • ® • •
  • 17. • • • • Model Driven Design ( ) •
  • 18. Model or Not • LibHTTP • User • Search • File • FacebookLogin • String • Translation • StringBuilder • FoobarLogic • YearMonth
  • 19. §1 • • • • UI
  • 20. LAYERED ARCHITECTURE • • ; •
  • 21. Jiemamy DiagramEditor TableView DbObjectEditPart maven-jiemamy-plugin UI jiemamy eclipse plugin ExecuteMojo Application jiemamy-diagram JmDiagram JmNode / JmConnection SqlStatement jiemamy-sql Domain Token JmTable / JmView JmColumn jiemamy-core JmForeignKeyConstraint woodstox SqlExecutor / UUIDProvider XMLInputFactory Infrastructure XMLValidationSchema jiemamy-commons apache commons
  • 22. THE SMART UI "ANTI-PATTERN" • DDD • • • light MDD
  • 23. UI DB User#save(); → DB toString() ! "<span>...</span>"
  • 24. §2 • • • 3 • ENTITY (E) • VALUE OBJECT (VO) • SERVICE
  • 25. • • • Table knows Columns / Column knows Table • Emp knows Dept / Dept knows Emps
  • 26. class Emp { class Dept { String name; String name; Dept dept; List<Emp> members; } } Dept tech = new Dept(" "); Emp kato = new Emp(" "); kato.setDept(tech); tech.addMember(kato);
  • 27. • Declaration & Reference • Repository
  • 28. ENTITY (E) • • • vs • (SE) vs ( )
  • 29.
  • 30. • 31 32 31 (File / DB) 32 (On Memory) • • Serialize / Deserialize clone…
  • 31. ENTITY • Table • Order • Column • Customer • ForeignKey • Employee • Department
  • 33. ENTITY • ID • • •
  • 34. E Column col = ...; // ← ENTITY tableFoo.addColumn(col); tableBar.addColumn(col); // something tableFoo.getColumn(...).setName("AAA"); tableBar
  • 35. ID • (v0.2) •
  • 36. VALUE OBJECT (VO) • • • new String("foo") vs new String("foo") • man.getName(): String • equals hashCode property
  • 37. VALUE OBJECT • Integer • BigDecimal • String • Color • Date / TimePoint • Status (OPEN / PROGRESS / CLOSED)
  • 39. SERVICE • E VO • E VO Service • E VO •
  • 40. SERVICE • • (UL) • • →
  • 41. E / VO • E / VO • E / VO • Transaction Script •
  • 42. • Infrastructure Service ( ) • E-mail • • Application Service • Excel export • • Domain Service • •
  • 45. MVC • com.example.foobar •com.example.foobar • model • foo • FooModel • FooModel • BarModel • FooView • view UL • FooController • FooView • bar • BarView • BarModel • controller • BarView • FooController • BarController • BarController
  • 46. MVC • com.example.foobar •com.example.foobar • model • foo • FooModel • FooModel • BarModel • FooView • view UL • FooController • FooView • bar • BarView • BarModel • controller • BarView • FooController • BarController • BarController
  • 47. §3 LifeCycle • Object • new GC • INSERT DELETE •
  • 49. E • LifeCycle Object LifeCycle • User • JVM
  • 51. • • Table • Column Entity • Column Table • ObjColumn → Table
  • 52. FACTORY • • • new • Object Object •
  • 53. • Obj. • Object LifeCycle • • Object
  • 54. Obj. • • Obj. • Obj. • Factory Obj.
  • 55. REPOSITORY • • • • • Repository
  • 56. • Entity LifeCycle • LC Entity • new • On Memory Collection • Database
  • 57. Repos. Collection • DB • Repository Collection • store / delete / find (resolve) ...
  • 58. Declaration & Reference CREATE TABLE FOOBAR ( FOO INTEGER, BAR VARCHAR(32), Decl. = Entity PRIMARY KEY (FOO), FOREIGN KEY (BAR) Ref. = VO (ID) REFERECE BAZ (QUX) ); Table has-a Column(s) and ... PrimaryKey has-a ColumnReference
  • 59. / • ENTITY / VO / SERVICE • FACTORY / REPOSITRY • DDD