SlideShare una empresa de Scribd logo
1 de 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 ブレイクスルー体験記

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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 a 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 a 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
 

Último

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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
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
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Último (20)

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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
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)
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
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...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
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...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

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

Notas del editor

  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