Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Improving your legacy application with Spring

Improving your legacy application with Spring

Marten Deinum

April 30, 2015
Tweet

More Decks by Marten Deinum

Other Decks in Programming

Transcript

  1. Legacy  Software  /  Code “In  computing  a  legacy  system  is

     an  old  method,  technology,   computer  system,  or  application  program,"of,  relating  to,  or   being  a  previous  or  outdated  computer  system."  Often  a   pejorative  term,  referencing  a  system  as  "legacy"  often  implies   that  the  system  is  out  of  date  or  in  need  of  replacement.” -­‐  Wikipedia
  2. “organiza@ons  which  design  systems  ...  are  constrained  to   produce

     designs  which  are  copies  of  the  communica@on   structures  of  these  organiza@ons Legacy  Software  /  Code -­‐  Melvin  E.  Conway  (April  1968)
  3. „I  think  there  has  been  a  general  abandonment  of  good

      design  and  development  prac@ces  in  the  Java   community.” Legacy  Software  -­‐  Design -­‐  Vaughn  Vernon
  4. 12

  5. Legacy  Software • Has  proven  to  work  (kind  of)  

    • Has  proven  business  value   • It  exists  (in  various  degrees  and  languages)   • Have  to  deal  with  it
  6. Dealing  With  Legacy  Software • Ignore   • Hide  

    • Full  Rebuild   • Gradual  Redesign
  7. “Monolithic  gravity:  large  system  will  aNract  new  features   and

     changes.  In  the  process  it  will  become  larger  and   eventually  collapse.”   Legacy  Software  /  Code -­‐  Eberhard  Wolff  (@ewolff)  on  27  April  2015
  8. Dealing  With  Legacy  Software • Ignore   • Hide  

    • Full  Rebuild   • Gradual  Redesign
  9. Dealing  With  Legacy  Software   • Spring  Remoting   •

    HttpInvoker,  RMI,  Hessian   • JMS,  AMQP,  …   • Spring  WS     • Spring  MVC  Rest  Service   • Spring  Integration   • Anti-­‐Corruption  layer
  10. Dealing  With  Legacy  Software • Ignore   • Hide  

    • Full  Rebuild   • Gradual  Redesign
  11. Dealing  With  Legacy  Software   • Starts  of  nice  greenfield

      • Hidden  features  in  legacy  software   • Sparse  documentation,     • Knowledge  of  legacy  system   • We  don’t  know  how  to  estimate   • Generally  Big  Bang
  12. Dealing  With  Legacy  Software • Ignore   • Hide  

    • Full  Rebuild   • Gradual  Redesign
  13. „If  you  can't  build  a  structured  monolith,  what  makes  you

      think  microservices  are  the  answer?” Dealing  With  Legacy  Software -­‐  Simon  Brown
  14. Recap • Legacy  systems  are  here  and  they  probably  will

      stay   • Refactoring  can  make  your  life,  and  the  ops   teams,  easier
  15. Learn  More.    Stay  Connected. 25 Twitter: twitter.com/mdeinum YouTube: spring.io/video

    LinkedIn: nl.linkedin.com/in/mdeinum GitHub: github.com/mdeinum