SlideShare a Scribd company logo
1 of 53
PARTⅢ




        http://www.flickr.com/photos/penguinbush/2768719983/
(kentaro714)

JavaEE           Clojure




IT
Agenda

• PartⅢ
•
•
• DDD
PartⅢ
Part1




PartⅡ           ParⅢ
1000
20%            …




        1000

30%            50%
500×0.2=100

500




                          000
      500
                          500

            500×0.3=150    500×0.5=250
800


300




      300   500

            200
*+
 $%&'()
          *+#
!"#       ,-.(/#)
          01.(/#)




  2+
            *+78
2+34
          /*+#
2+56
200
             :%&'()*       :+,

        !"# = 1000$    +,# = 200$




12A0,:0,
                                    -+,./
0,12 = A12
0,34 = 20%                       +,# = 40$




12B0,:0,
                                    -+,./
0,12 = B12
0,34 = 30%                       +,# = 60$




12C0,:0,
                                    -+,./
0,12 = C12
0,34 = 50%                       +,# = 100$
…


500       500×0.2-50=50


                             50



                 200

                 700
      500×0.3          500×0.5+50
      =150               =300
,-./01            23

!"#                  23#
$%&'($%(, $%), *+)   45&(6#)
                     78&(6#)




        93
                       23<=
    93:;
                     /23#
    93*+




                       23$%

                     23#
:%&'()*       :+,

        !"# = 1000$    +,# = 700$




12A0,:0,
                                    -+,./
0,12 = A12
0,34 = 20%                       +,# = 90$




12B0,:0,
                                    -+,56
0,12 = B12
0,34 = 30%                       +,# = 150$




12C0,:0,
                                    -+,./
0,12 = C12
0,34 = 50%                       +,# = 400$
Application Service
public 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);
   }
…
500×90/700=64.28..
500




      500                  300

                           800
            500×210/700          500×400/700
              =150               =285.714...
…
Application Service

public 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);
   }
2   …
…
,-./01            23

!"#                  23#
$%&'($%(, $%), *+)   45&(6#)
                     78&(6#)




        93
                       23<=
    93:;
                     /23#
    93*+




                       23$%

                     23#
:1000           100




       20%

                       ¥20
                 50%
100                    ¥30
                             ¥50
      30%
¥70
               ¥50
¥20
      ¥50   ¥150            ¥180
¥30                  ¥300                ¥350




100            500                 600
+,-./                    +,-
                              *
     !"#$(%&)                     0121
     '(#$('(), '(*, %&)           +,-3




                     7+,-./
45+,-./
                   6#(7+,-./)
                   89:7+,-./;
78
       ,-./01
                     78+
)*+
!"#$(!"%, !"&, '()   23#(4+)
                     56#(4+)




      '(.9:;<         =.9:;<




             *                *

        .9:             .9:
      >?@?           >?@?
      .9:A           .9:A
Application Service
public 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);
   }
…
#&'()            !"#$%                   12            3#&'()




        *+#,-.           /0




                              *+#,-.
                                               :;<=>        BCDE
                                40




                                *+#,-.
                                              2789      ?@A<=>
                                5612




                                                         AP
Application Service
public 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);
}
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);
	   }

}
…
#&'()            !"#$%
                                   *   12           3#&'()




        *+#,-.           /0




                              *+#,-.
                                            :;<=>        BCDE
                                40
http://www.flickr.com/photos/94379417@N00/4808475862/in/photostream/
http://www.flickr.com/photos/dmclear/5418495331/
http://www.flickr.com/photos/spcbrass/5451894896/
DDD
Beautiful Development ブレイクスルー体験記

More Related Content

What's hot

Desarrollo de módulos en Drupal e integración con dispositivos móviles
Desarrollo de módulos en Drupal e integración con dispositivos móvilesDesarrollo de módulos en Drupal e integración con dispositivos móviles
Desarrollo de módulos en Drupal e integración con dispositivos móvilesLuis Curo Salvatierra
 
Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"
Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"
Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"Pluribus One
 
Final tagless and cats mtl
Final tagless and cats mtl Final tagless and cats mtl
Final tagless and cats mtl Alexander Zaidel
 
SharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePoint
SharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePointSharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePoint
SharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePointMarc D Anderson
 
JavaScript Objects and OOP Programming with JavaScript
JavaScript Objects and OOP Programming with JavaScriptJavaScript Objects and OOP Programming with JavaScript
JavaScript Objects and OOP Programming with JavaScriptLaurence Svekis ✔
 
Google Visualization API
Google  Visualization  APIGoogle  Visualization  API
Google Visualization APIJason Young
 
Electronic Marketing To Your Fan Base
Electronic Marketing To Your Fan BaseElectronic Marketing To Your Fan Base
Electronic Marketing To Your Fan BaseJeff Risley
 
Ruby-ying Javascript: Avoiding jQuery Spaghetti
Ruby-ying Javascript: Avoiding jQuery SpaghettiRuby-ying Javascript: Avoiding jQuery Spaghetti
Ruby-ying Javascript: Avoiding jQuery SpaghettiForrest Chang
 
Worth the hype - styled components
Worth the hype - styled componentsWorth the hype - styled components
Worth the hype - styled componentskathrinholzmann
 
javascript Model- Render & canvas sample
javascript Model- Render & canvas samplejavascript Model- Render & canvas sample
javascript Model- Render & canvas sampleHika Maeng
 
Salesforce Data Models for Pros: Simplifying The Complexities
Salesforce Data Models for Pros: Simplifying The ComplexitiesSalesforce Data Models for Pros: Simplifying The Complexities
Salesforce Data Models for Pros: Simplifying The ComplexitiesSalesforce Developers
 
Dig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup CairoDig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup CairoMohamed Mosaad
 

What's hot (20)

Desarrollo de módulos en Drupal e integración con dispositivos móviles
Desarrollo de módulos en Drupal e integración con dispositivos móvilesDesarrollo de módulos en Drupal e integración con dispositivos móviles
Desarrollo de módulos en Drupal e integración con dispositivos móviles
 
Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"
Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"
Battista Biggio @ ICML2012: "Poisoning attacks against support vector machines"
 
Final tagless and cats mtl
Final tagless and cats mtl Final tagless and cats mtl
Final tagless and cats mtl
 
SQLAlchemy Seminar
SQLAlchemy SeminarSQLAlchemy Seminar
SQLAlchemy Seminar
 
SharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePoint
SharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePointSharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePoint
SharePoint Saturday Rhode Island 2013 - A jQuery Primer for SharePoint
 
JavaScript Objects and OOP Programming with JavaScript
JavaScript Objects and OOP Programming with JavaScriptJavaScript Objects and OOP Programming with JavaScript
JavaScript Objects and OOP Programming with JavaScript
 
Google Visualization API
Google  Visualization  APIGoogle  Visualization  API
Google Visualization API
 
Electronic Marketing To Your Fan Base
Electronic Marketing To Your Fan BaseElectronic Marketing To Your Fan Base
Electronic Marketing To Your Fan Base
 
Ruby-ying Javascript: Avoiding jQuery Spaghetti
Ruby-ying Javascript: Avoiding jQuery SpaghettiRuby-ying Javascript: Avoiding jQuery Spaghetti
Ruby-ying Javascript: Avoiding jQuery Spaghetti
 
Worth the hype - styled components
Worth the hype - styled componentsWorth the hype - styled components
Worth the hype - styled components
 
javascript Model- Render & canvas sample
javascript Model- Render & canvas samplejavascript Model- Render & canvas sample
javascript Model- Render & canvas sample
 
Wells Fargo Outline
Wells Fargo Outline Wells Fargo Outline
Wells Fargo Outline
 
74 kg greco
74 kg greco74 kg greco
74 kg greco
 
Europea
EuropeaEuropea
Europea
 
[ HackFest.pl 2012] Testing - what for and how
[ HackFest.pl 2012] Testing - what for and how[ HackFest.pl 2012] Testing - what for and how
[ HackFest.pl 2012] Testing - what for and how
 
Xdebug confoo11
Xdebug confoo11Xdebug confoo11
Xdebug confoo11
 
Salesforce Data Models for Pros: Simplifying The Complexities
Salesforce Data Models for Pros: Simplifying The ComplexitiesSalesforce Data Models for Pros: Simplifying The Complexities
Salesforce Data Models for Pros: Simplifying The Complexities
 
Dig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup CairoDig Deeper into WordPress - WD Meetup Cairo
Dig Deeper into WordPress - WD Meetup Cairo
 
[ WrocLoveRb 2012] user perspective testing using ruby
[ WrocLoveRb 2012] user perspective testing using ruby[ WrocLoveRb 2012] user perspective testing using ruby
[ WrocLoveRb 2012] user perspective testing using ruby
 
HCE tutorial
HCE tutorialHCE tutorial
HCE tutorial
 

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

JQuery In Rails
JQuery In RailsJQuery In Rails
JQuery In RailsLouie Zhao
 
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache FelixDynamic Deployment With Apache Felix
Dynamic Deployment With Apache FelixMarcel Offermans
 
Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ EtsyNishan Subedi
 
Creating an Uber Clone - Part XXIV.pdf
Creating an Uber Clone - Part XXIV.pdfCreating an Uber Clone - Part XXIV.pdf
Creating an Uber Clone - Part XXIV.pdfShaiAlmog1
 
Creating an Uber Clone - Part IV.pdf
Creating an Uber Clone - Part IV.pdfCreating an Uber Clone - Part IV.pdf
Creating an Uber Clone - Part IV.pdfShaiAlmog1
 
Curso Symfony - Clase 2
Curso Symfony - Clase 2Curso Symfony - Clase 2
Curso Symfony - Clase 2Javier Eguiluz
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)Oswald Campesato
 
JavaOne2010 Groovy/Spring Roo
JavaOne2010 Groovy/Spring RooJavaOne2010 Groovy/Spring Roo
JavaOne2010 Groovy/Spring RooYasuharu Nakano
 
Version1.0 StartHTML000000232 EndHTML000065057 StartFragment0000.docx
Version1.0 StartHTML000000232 EndHTML000065057 StartFragment0000.docxVersion1.0 StartHTML000000232 EndHTML000065057 StartFragment0000.docx
Version1.0 StartHTML000000232 EndHTML000065057 StartFragment0000.docxtienboileau
 
WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015Fernando Daciuk
 
BDD revolution - or how we came back from hell
BDD revolution - or how we came back from hellBDD revolution - or how we came back from hell
BDD revolution - or how we came back from hellMateusz Zalewski
 
Immutable Libraries for React
Immutable Libraries for ReactImmutable Libraries for React
Immutable Libraries for Reactstbaechler
 
(PHPers Wrocław #5) How to write valuable unit test?
(PHPers Wrocław #5) How to write valuable unit test?(PHPers Wrocław #5) How to write valuable unit test?
(PHPers Wrocław #5) How to write valuable unit test?RST Software Masters
 
circ.db.dbcircleserver(1).py#!usrlocalbinpython3im.docx
circ.db.dbcircleserver(1).py#!usrlocalbinpython3im.docxcirc.db.dbcircleserver(1).py#!usrlocalbinpython3im.docx
circ.db.dbcircleserver(1).py#!usrlocalbinpython3im.docxchristinemaritza
 

Similar to Beautiful Development ブレイクスルー体験記 (20)

JQuery In Rails
JQuery In RailsJQuery In Rails
JQuery In Rails
 
Dynamic Deployment With Apache Felix
Dynamic Deployment With Apache FelixDynamic Deployment With Apache Felix
Dynamic Deployment With Apache Felix
 
Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ Etsy
 
Borrador del blog
Borrador del blogBorrador del blog
Borrador del blog
 
Creating an Uber Clone - Part XXIV.pdf
Creating an Uber Clone - Part XXIV.pdfCreating an Uber Clone - Part XXIV.pdf
Creating an Uber Clone - Part XXIV.pdf
 
Creating an Uber Clone - Part IV.pdf
Creating an Uber Clone - Part IV.pdfCreating an Uber Clone - Part IV.pdf
Creating an Uber Clone - Part IV.pdf
 
Curso Symfony - Clase 2
Curso Symfony - Clase 2Curso Symfony - Clase 2
Curso Symfony - Clase 2
 
Svcc 2013-d3
Svcc 2013-d3Svcc 2013-d3
Svcc 2013-d3
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
 
JavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
JavaCro'14 - JCalc Calculations in Java with open source API – Davor SauerJavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
JavaCro'14 - JCalc Calculations in Java with open source API – Davor Sauer
 
JavaScript Refactoring
JavaScript RefactoringJavaScript Refactoring
JavaScript Refactoring
 
JavaOne2010 Groovy/Spring Roo
JavaOne2010 Groovy/Spring RooJavaOne2010 Groovy/Spring Roo
JavaOne2010 Groovy/Spring Roo
 
Version1.0 StartHTML000000232 EndHTML000065057 StartFragment0000.docx
Version1.0 StartHTML000000232 EndHTML000065057 StartFragment0000.docxVersion1.0 StartHTML000000232 EndHTML000065057 StartFragment0000.docx
Version1.0 StartHTML000000232 EndHTML000065057 StartFragment0000.docx
 
WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015
 
Bacbkone js
Bacbkone jsBacbkone js
Bacbkone js
 
BDD revolution - or how we came back from hell
BDD revolution - or how we came back from hellBDD revolution - or how we came back from hell
BDD revolution - or how we came back from hell
 
Immutable Libraries for React
Immutable Libraries for ReactImmutable Libraries for React
Immutable Libraries for React
 
Clean Javascript
Clean JavascriptClean Javascript
Clean Javascript
 
(PHPers Wrocław #5) How to write valuable unit test?
(PHPers Wrocław #5) How to write valuable unit test?(PHPers Wrocław #5) How to write valuable unit test?
(PHPers Wrocław #5) How to write valuable unit test?
 
circ.db.dbcircleserver(1).py#!usrlocalbinpython3im.docx
circ.db.dbcircleserver(1).py#!usrlocalbinpython3im.docxcirc.db.dbcircleserver(1).py#!usrlocalbinpython3im.docx
circ.db.dbcircleserver(1).py#!usrlocalbinpython3im.docx
 

Recently uploaded

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Recently uploaded (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

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

  • 1. PARTⅢ http://www.flickr.com/photos/penguinbush/2768719983/
  • 2. (kentaro714) JavaEE Clojure IT
  • 5. Part1 PartⅡ ParⅢ
  • 6.
  • 7.
  • 9. 20% … 1000 30% 50%
  • 10. 500×0.2=100 500 000 500 500 500×0.3=150 500×0.5=250
  • 11. 800 300 300 500 200
  • 12.
  • 13. *+ $%&'() *+# !"# ,-.(/#) 01.(/#) 2+ *+78 2+34 /*+# 2+56
  • 14. 200 :%&'()* :+, !"# = 1000$ +,# = 200$ 12A0,:0, -+,./ 0,12 = A12 0,34 = 20% +,# = 40$ 12B0,:0, -+,./ 0,12 = B12 0,34 = 30% +,# = 60$ 12C0,:0, -+,./ 0,12 = C12 0,34 = 50% +,# = 100$
  • 15.
  • 16.
  • 17. … 500 500×0.2-50=50 50 200 700 500×0.3 500×0.5+50 =150 =300
  • 18.
  • 19. ,-./01 23 !"# 23# $%&'($%(, $%), *+) 45&(6#) 78&(6#) 93 23<= 93:; /23# 93*+ 23$% 23#
  • 20. :%&'()* :+, !"# = 1000$ +,# = 700$ 12A0,:0, -+,./ 0,12 = A12 0,34 = 20% +,# = 90$ 12B0,:0, -+,56 0,12 = B12 0,34 = 30% +,# = 150$ 12C0,:0, -+,./ 0,12 = C12 0,34 = 50% +,# = 400$
  • 21. Application Service public 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); }
  • 22.
  • 23.
  • 24. 500×90/700=64.28.. 500 500 300 800 500×210/700 500×400/700 =150 =285.714...
  • 25.
  • 26. Application Service public 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); }
  • 27. 2
  • 28.
  • 29. ,-./01 23 !"# 23# $%&'($%(, $%), *+) 45&(6#) 78&(6#) 93 23<= 93:; /23# 93*+ 23$% 23#
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. :1000 100 20% ¥20 50% 100 ¥30 ¥50 30%
  • 35. ¥70 ¥50 ¥20 ¥50 ¥150 ¥180 ¥30 ¥300 ¥350 100 500 600
  • 36.
  • 37. +,-./ +,- * !"#$(%&) 0121 '(#$('(), '(*, %&) +,-3 7+,-./ 45+,-./ 6#(7+,-./) 89:7+,-./;
  • 38. 78 ,-./01 78+ )*+ !"#$(!"%, !"&, '() 23#(4+) 56#(4+) '(.9:;< =.9:;< * * .9: .9: >?@? >?@? .9:A .9:A
  • 39. Application Service public 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); }
  • 40.
  • 41.
  • 42.
  • 43. #&'() !"#$% 12 3#&'() *+#,-. /0 *+#,-. :;<=> BCDE 40 *+#,-. 2789 ?@A<=> 5612 AP
  • 44. Application Service public 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); }
  • 45. 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); } }
  • 46.
  • 47. #&'() !"#$% * 12 3#&'() *+#,-. /0 *+#,-. :;<=> BCDE 40
  • 48.
  • 52. DDD

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n