Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

of

DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 1

YouTube videos are no longer supported on SlideShare

View original on YouTube

DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 3 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 4 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 5 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 6 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 7 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 8 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 9 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 10 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 11 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 12 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 13 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 14 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 15 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 16 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 17 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 18 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 19 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 20 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 21 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 22 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 23 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 24 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 25 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 26 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 27 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 28 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 29 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 30 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 31 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 32 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 33 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 34 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 35 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 36 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 37 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 38 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 39 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 40 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 41 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 42 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 43 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 44 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 45 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 46 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 47 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 48 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 49 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 50 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 51 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 52 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 53 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 54 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 55 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 56 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 57 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 58 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 59 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 60 DevLOVE Beautiful Development - 第一幕 陽の巻 Slide 61

19

Share

Download to read offline

DevLOVE Beautiful Development - 第一幕 陽の巻

Download to read offline

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

DevLOVE Beautiful Development - 第一幕 陽の巻

  1. 1. DDD Pt.IIBuilding Blocks ~DDD ~ ( ) - tricreo.jp / Jiemamy Project - jiemamy.org 2011.04.09 @
  2. 2. • (@daisuke_m)• Jiemamy / java-ja• Apache Mahout• Java / OO / DDD•
  3. 3. works• @IT — Jiemamy• • Java • Java• Java: The Good Parts ( )• DDD ( )
  4. 4. DDD http://d.hatena.ne.jp/daisuke-m/20110407/1302156870• Jiemamy Project••• DDD•• Jiemamy version 0.3• baseunits library (timeandmoney)
  5. 5. Jiemamy• ER • Eclipse (UI ) • DB , SQL ( ) • SQL… • XML I/O, DDD ( )
  6. 6. Agenda• DDD overview• Isolating the Domain• Model• LifeCycle
  7. 7. §0 DDD overview• DDD • GoF • PoEAA
  8. 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. 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
  10. 10. ••••( )
  11. 11. • • •
  12. 12. Domain or Not••• HISTORY••••
  13. 13. • UI• DB•• DB
  14. 14. ••••
  15. 15. • →• →• ® • •• ® • •
  16. 16. •••
  17. 17. •• •• Model Driven Design ( ) •
  18. 18. Model or Not• LibHTTP • User• Search • File• FacebookLogin • String• Translation • StringBuilder• FoobarLogic • YearMonth
  19. 19. §1•• • • UI
  20. 20. LAYERED ARCHITECTURE•• ;•
  21. 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 woodstoxSqlExecutor / UUIDProvider XMLInputFactory Infrastructure XMLValidationSchema jiemamy-commons apache commons
  22. 22. THE SMART UI "ANTI-PATTERN"• DDD• •• light MDD
  23. 23. UI DBUser#save(); → DBtoString() ! "<span>...</span>"
  24. 24. §2••• 3 • ENTITY (E) • VALUE OBJECT (VO) • SERVICE
  25. 25. • •• • Table knows Columns / Column knows Table • Emp knows Dept / Dept knows Emps
  26. 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. 27. • Declaration & Reference• Repository
  28. 28. ENTITY (E)••• vs• (SE) vs ( )
  29. 29. • 31 32 31 (File / DB) 32 (On Memory)•• Serialize / Deserialize clone…
  30. 30. ENTITY• Table • Order• Column • Customer• ForeignKey• Employee• Department
  31. 31. ENTITY••• ID• equals hashCode ID
  32. 32. • ENTITY• ID• • •
  33. 33. EColumn col = ...; // ← ENTITYtableFoo.addColumn(col);tableBar.addColumn(col);// somethingtableFoo.getColumn(...).setName("AAA");tableBar
  34. 34. • ID• (v0.2)•
  35. 35. VALUE OBJECT (VO)••• new String("foo") vs new String("foo")• man.getName(): String• equals hashCode property
  36. 36. VALUE OBJECT• Integer• BigDecimal• String• Color• Date / TimePoint• Status (OPEN / PROGRESS / CLOSED)
  37. 37. VALUE OBJ.••• Immutable • Flyweight
  38. 38. SERVICE• E VO• E VO Service • E VO •
  39. 39. SERVICE•• (UL)•• →
  40. 40. • E / VO• E / VO• E / VO • Transaction Script •
  41. 41. • Infrastructure Service ( ) • E-mail •• Application Service • Excel export •• Domain Service ••
  42. 42. MODULE••
  43. 43. Java package•• 1•
  44. 44. 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
  45. 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. 46. §3 LifeCycle• Object • new GC • INSERT DELETE•
  47. 47. §3 LifeCycle
  48. 48. E• LifeCycle Object LifeCycle• User• JVM
  49. 49. AGGREGATE•• …
  50. 50. •• Table• Column Entity• Column Table• ObjColumn → Table
  51. 51. FACTORY••• new• Object Object•
  52. 52. • Obj.• Object LifeCycle• • Object
  53. 53. Obj.• • Obj. • Obj.• Factory Obj.
  54. 54. REPOSITORY• • • • • Repository
  55. 55. • Entity LifeCycle• LC Entity• new • On Memory Collection • Database
  56. 56. Repos. Collection• DB• Repository Collection• store / delete / find (resolve) ...
  57. 57. Declaration & ReferenceCREATE 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
  58. 58. • /• ENTITY / VO / SERVICE• FACTORY / REPOSITRY• DDD
  • takayukiishimoto1

    Nov. 3, 2016
  • ik-fib

    Jun. 15, 2016
  • 7daysbrain

    May. 15, 2016
  • ryuichi-ishitsuka

    Mar. 31, 2015
  • tm8r

    Dec. 15, 2014
  • odango_San

    May. 24, 2014
  • isseyurano

    Feb. 18, 2014
  • garbagetown

    Feb. 14, 2014
  • wshinohara

    Feb. 14, 2014
  • x2x2tone

    Jan. 16, 2014
  • torufuruya7

    Dec. 9, 2013
  • nemurin

    Sep. 30, 2013
  • sergeyzenchenko

    Jan. 4, 2012
  • yukung

    May. 18, 2011
  • KentoInatomi

    Apr. 29, 2011
  • ssuser80f217

    Apr. 29, 2011
  • matsumana0101

    Apr. 12, 2011
  • shiraco

    Apr. 9, 2011
  • yoshikaw

    Apr. 9, 2011

Views

Total views

8,175

On Slideshare

0

From embeds

0

Number of embeds

261

Actions

Downloads

57

Shares

0

Comments

0

Likes

19

×