SlideShare une entreprise Scribd logo
1  sur  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 ブレイクスルー体験記

Contenu connexe

Tendances

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
 

Tendances (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
 

Similaire à 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
 

Similaire à 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
 

Dernier

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Dernier (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

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

Notes de l'éditeur

  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