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.

4

Share

Download to read offline

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

Beautiful Development ブレイクスルー体験記

  1. 1. PARTⅢ http://www.flickr.com/photos/penguinbush/2768719983/
  2. 2. (kentaro714)JavaEE ClojureIT
  3. 3. Agenda• PartⅢ••• DDD
  4. 4. PartⅢ
  5. 5. Part1PartⅡ ParⅢ
  6. 6. 1000
  7. 7. 20% … 100030% 50%
  8. 8. 500×0.2=100500 000 500 500 500×0.3=150 500×0.5=250
  9. 9. 800300 300 500 200
  10. 10. *+ $%&() *+#!"# ,-.(/#) 01.(/#) 2+ *+782+34 /*+#2+56
  11. 11. 200 :%&()* :+, !"# = 1000$ +,# = 200$12A0,:0, -+,./0,12 = A120,34 = 20% +,# = 40$12B0,:0, -+,./0,12 = B120,34 = 30% +,# = 60$12C0,:0, -+,./0,12 = C120,34 = 50% +,# = 100$
  12. 12. …500 500×0.2-50=50 50 200 700 500×0.3 500×0.5+50 =150 =300
  13. 13. ,-./01 23!"# 23#$%&($%(, $%), *+) 45&(6#) 78&(6#) 93 23<= 93:; /23# 93*+ 23$% 23#
  14. 14. :%&()* :+, !"# = 1000$ +,# = 700$12A0,:0, -+,./0,12 = A120,34 = 20% +,# = 90$12B0,:0, -+,560,12 = B120,34 = 30% +,# = 150$12C0,:0, -+,./0,12 = C120,34 = 50% +,# = 400$
  15. 15. Application Servicepublic class SyndicateService { private FacilityRepository facilityRepository; private LoanRepository loanRepository; public void drawDownWithAdjustment(long facilityId, BigDecimal amount, Map<String, BigDecimal> adjustment) { Facility facility = facilityRepository.get(facilityId); Loan loan = facility.getLoan(); for (Investment investment : facility.getInvestments()) { if (adjustment.containsKey(investment.getInvestor().getName())) { BigDecimal share = BigDecimal.valueOf(investment.getPercentage()); BigDecimal variance = adjustment.get(investment.getInvestor() .getName()); LoanAdjustment loanAdjustment = new LoanAdjustment( Money.yen(amount.multiply(share).add(variance))); loan.addLoanInvestment(loanAdjustment); } } loanRepository.save(loan); }
  16. 16.
  17. 17. 500×90/700=64.28..500 500 300 800 500×210/700 500×400/700 =150 =285.714...
  18. 18.
  19. 19. Application Servicepublic class SyndicateService { private FacilityRepository facilityRepository; private LoanRepository loanRepository; public void processPrincipalPayment(long facilityId, BigDecimal amount) { Facility facility = facilityRepository.get(facilityId); Loan loan = facility.getLoan(); for (LoanInvestment investment : loan.getLoanInvestments()) { BigDecimal share = investment.getAmount().divide(loan.getAmount()); Money newAmount = Money.yen(amount.multiply(share)); LoanAdjustment loanAdjustment = new LoanAdjustment(investment .getAmount().minus(newAmount)); loan.addLoanInvestment(loanAdjustment); } loanRepository.save(loan); }
  20. 20. 2 …
  21. 21.
  22. 22. ,-./01 23!"# 23#$%&($%(, $%), *+) 45&(6#) 78&(6#) 93 23<= 93:; /23# 93*+ 23$% 23#
  23. 23. :1000 100 20% ¥20 50%100 ¥30 ¥50 30%
  24. 24. ¥70 ¥50¥20 ¥50 ¥150 ¥180¥30 ¥300 ¥350100 500 600
  25. 25. +,-./ +,- * !"#$(%&) 0121 (#$((), (*, %&) +,-3 7+,-./45+,-./ 6#(7+,-./) 89:7+,-./;
  26. 26. 78 ,-./01 78+)*+!"#$(!"%, !"&, () 23#(4+) 56#(4+) (.9:;< =.9:;< * * .9: .9: >?@? >?@? .9:A .9:A
  27. 27. Application Servicepublic class SyndicateService { private FacilityRepository facilityRepository; private LoanRepository loanRepository; public void drawDownWithAdjustment(long facilityId, BigDecimal amount, Map<String, BigDecimal> adjustment) { Facility facility = facilityRepository.get(facilityId); Loan loan = facility.getLoan(); AmountPie drawDownSharePie = facility.getPie().prorate(amount); AmountPie adjustSharePie = AmountPie.createFrom(adjustment); loan.setPie(drawDownSharePie.plus(adjustSharePie)); loanRepository.save(loan); } public void processPrincipalPayment(long facilityId, BigDecimal amount) { Facility facility = facilityRepository.get(facilityId); Loan loan = facility.getLoan(); SharePie principalSharePie = loan.getPie().prorate(amount); loan.setPie(loan.getPie().minus(principalSharePie)); loanRepository.save(loan); }
  28. 28.
  29. 29. #&() !"#$% 12 3#&() *+#,-. /0 *+#,-. :;<=> BCDE 40 *+#,-. 2789 ?@A<=> 5612 AP
  30. 30. Application Servicepublic void drawDownWithAdjustment(long facilityId, BigDecimal amount, Map<String, BigDecimal> adjustment) { Facility facility = facilityRepository.findById(facilityId); Loan loan = facility.getLoan(); SharePie drawDownSharePie = facility.getSharePie().prorate(amount); SharePie adjustSharePie = AmountPie.createFrom(adjustment); Transaction drawDown = new DrawDown(loan, drawDownSharePie.plus(adjustSharePie)); loan.apply(drawDown); loanRepository.save(loan);}public void processPrincipalPayment(long facilityId, BigDecimal amount) { Facility facility = facilityRepository.get(facilityId); Loan loan = facility.getLoan(); SharePie principalSharePie = loan.getPie().prorate(amount); Transaction principalPayment = new PrincipalPayment(loan, principalSharePie); loan.apply(principalPayment); loanRepository.save(loan);}
  31. 31. public class DrawDown extends Transaction { public DrawDown(Position position, SharePie sharePie) { super(position, sharePie); } @Override public void execute() { SharePie newSharePie = position.getPie().plus(this.sharePie); position.setPie(newSharePie); }}
  32. 32.
  33. 33. #&() !"#$% * 12 3#&() *+#,-. /0 *+#,-. :;<=> BCDE 40
  34. 34. http://www.flickr.com/photos/94379417@N00/4808475862/in/photostream/
  35. 35. http://www.flickr.com/photos/dmclear/5418495331/
  36. 36. http://www.flickr.com/photos/spcbrass/5451894896/
  37. 37. DDD
  • hiroakiwatanabe9862

    Jun. 21, 2015
  • sigma5621

    Dec. 1, 2014
  • makotow

    Apr. 10, 2011
  • restartr

    Apr. 9, 2011

Views

Total views

11,801

On Slideshare

0

From embeds

0

Number of embeds

8,464

Actions

Downloads

44

Shares

0

Comments

0

Likes

4

×