SlideShare ist ein Scribd-Unternehmen logo
1 von 15
CODE REUSABILITY
…in a real world scenario



Danijel Malik

Twitter: @DanijelMalik
Email: danijel@artifis.si   LEVEL 400
AGENDA

• How to design reusable components
• Implementation
• Deploy in an elegant fashion
ABOUT ME
REMEMBER THE LEGO?
WHAT WE KNOW ABOUT CODE
REUSABILITY?


 • It’s complex to design, hard to write
   and almost impossible to maintain
 • It breaks when you need it the most
 • It always ends up as framework
A PROBLEM OR A CHALLENGE?


 • What’s the story?
 • Two manufacturing systems
 • Deadline approaching fast

 • …but we had an idea 
ARCHITECTURE
ToolId                                                           CustomerId

             Customer Specific Tables
Descriptio                                                       FirstName
n                                                                …
…                                                                 CustomX




                                                 Common Tables
                                                                      ML

ToolId                                                           ProductId
Descriptio                                                       Name
n                                       System                   …
                                                                  XM
…                                                                 CustomX
                                                                   L
                                                                     ML
ContainerI
d                                                                InvoiceId
                                                                 Number
Descriptio
                                                                 …
n                                                                 CustomX
…                                                                    ML
ARCHITECTURE

PROS                CONS

• No schema         • Inability to use
  changes             standard tools for
• More reuse of a     querying +
  base system         reporting
                    • Performance
                      issues around
                      serializing
                      (solvable)
ARCHITECTURE

             Customer User Interface



      Customer
      Business
         Customer      Business Facade
                       Business Facade
       Facade

      Customer
        Customer
      Business         Business Facade
                        Business Logic
       Logic

      Customer
        Data                 Data Access
       Access

                     SQL
                                Oracle     Db2
                    Server
YEAH BABY! NOW WE’VE GOT OUR
OWN FRAMEWORK TOO
• It is focused on a business problem
  eg. Manufacturing Execution Systems
• It is extensible as much as you need
LET’S SEE IT RUNNING




DEMO
HOW ABOUT NEW VERSIONS KID,
HUH?
• Source Control (TFS)
• We have everything, but?
• Ever heard about NuGet?
• NuGet Server
LET’S SEE IT RUNNING




DEMO
SUMMARY

• We have seen how to design reusable
  components
• Great example of implementation in a
  new system
• An elegant way to package & deploy
  them
THANK YOU!

Weitere ähnliche Inhalte

Ähnlich wie Code Reusability

SQL Server SQL Server
SQL Server SQL ServerSQL Server SQL Server
SQL Server SQL Serverwebhostingguy
 
SQL Server SQL Server
SQL Server SQL ServerSQL Server SQL Server
SQL Server SQL Serverwebhostingguy
 
Easy Data Object Relational Mapping Tool
Easy Data Object Relational Mapping ToolEasy Data Object Relational Mapping Tool
Easy Data Object Relational Mapping ToolHasitha Guruge
 
Pacific strategy group 27th april 2012
Pacific strategy group  27th april 2012Pacific strategy group  27th april 2012
Pacific strategy group 27th april 2012ctrlsblog
 
NoSQL – Beyond the Key-Value Store
NoSQL – Beyond the Key-Value StoreNoSQL – Beyond the Key-Value Store
NoSQL – Beyond the Key-Value StoreDATAVERSITY
 
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRTITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRTITCamp
 
German in 7 Million Shared Objects
German in 7 Million  Shared ObjectsGerman in 7 Million  Shared Objects
German in 7 Million Shared ObjectsESUG
 
Event-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesEvent-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesIstvan Rath
 
source{d} Engine - your code as data
source{d} Engine - your code as datasource{d} Engine - your code as data
source{d} Engine - your code as datasource{d}
 
Architecture As Language
Architecture As LanguageArchitecture As Language
Architecture As Languageguest2e0b3a
 
VectorDB Schema Design 101 - Considerations for Building a Scalable and Perfo...
VectorDB Schema Design 101 - Considerations for Building a Scalable and Perfo...VectorDB Schema Design 101 - Considerations for Building a Scalable and Perfo...
VectorDB Schema Design 101 - Considerations for Building a Scalable and Perfo...Zilliz
 
Babak Hosseinzadeh IT Portfolio Management In Shared Services & CC
Babak Hosseinzadeh   IT Portfolio Management In Shared Services & CCBabak Hosseinzadeh   IT Portfolio Management In Shared Services & CC
Babak Hosseinzadeh IT Portfolio Management In Shared Services & CCBabak Hosseinzadeh
 
Task Factory - Pragmatic Works
Task Factory - Pragmatic WorksTask Factory - Pragmatic Works
Task Factory - Pragmatic WorksRobert Peters
 
Data stores: beyond relational databases
Data stores: beyond relational databasesData stores: beyond relational databases
Data stores: beyond relational databasesJavier García Magna
 
VLSI Systems & Design
VLSI Systems & DesignVLSI Systems & Design
VLSI Systems & DesignAakash Mishra
 
Vote NO for MySQL
Vote NO for MySQLVote NO for MySQL
Vote NO for MySQLUlf Wendel
 

Ähnlich wie Code Reusability (20)

SQL Server SQL Server
SQL Server SQL ServerSQL Server SQL Server
SQL Server SQL Server
 
SQL Server SQL Server
SQL Server SQL ServerSQL Server SQL Server
SQL Server SQL Server
 
Easy Data Object Relational Mapping Tool
Easy Data Object Relational Mapping ToolEasy Data Object Relational Mapping Tool
Easy Data Object Relational Mapping Tool
 
FPGA @ UPB-BGA
FPGA @ UPB-BGAFPGA @ UPB-BGA
FPGA @ UPB-BGA
 
Pacific strategy group 27th april 2012
Pacific strategy group  27th april 2012Pacific strategy group  27th april 2012
Pacific strategy group 27th april 2012
 
NoSQL – Beyond the Key-Value Store
NoSQL – Beyond the Key-Value StoreNoSQL – Beyond the Key-Value Store
NoSQL – Beyond the Key-Value Store
 
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRTITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
ITCamp 2012 - Raffaele Rialdi - Introduction to WinRT
 
German in 7 Million Shared Objects
German in 7 Million  Shared ObjectsGerman in 7 Million  Shared Objects
German in 7 Million Shared Objects
 
Event-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling LanguagesEvent-driven Model Transformations in Domain-specific Modeling Languages
Event-driven Model Transformations in Domain-specific Modeling Languages
 
Lecture1
Lecture1Lecture1
Lecture1
 
source{d} Engine - your code as data
source{d} Engine - your code as datasource{d} Engine - your code as data
source{d} Engine - your code as data
 
Architecture As Language
Architecture As LanguageArchitecture As Language
Architecture As Language
 
VectorDB Schema Design 101 - Considerations for Building a Scalable and Perfo...
VectorDB Schema Design 101 - Considerations for Building a Scalable and Perfo...VectorDB Schema Design 101 - Considerations for Building a Scalable and Perfo...
VectorDB Schema Design 101 - Considerations for Building a Scalable and Perfo...
 
PIM4Cloud
PIM4CloudPIM4Cloud
PIM4Cloud
 
Babak Hosseinzadeh IT Portfolio Management In Shared Services & CC
Babak Hosseinzadeh   IT Portfolio Management In Shared Services & CCBabak Hosseinzadeh   IT Portfolio Management In Shared Services & CC
Babak Hosseinzadeh IT Portfolio Management In Shared Services & CC
 
Task Factory - Pragmatic Works
Task Factory - Pragmatic WorksTask Factory - Pragmatic Works
Task Factory - Pragmatic Works
 
Data stores: beyond relational databases
Data stores: beyond relational databasesData stores: beyond relational databases
Data stores: beyond relational databases
 
VLSI Systems & Design
VLSI Systems & DesignVLSI Systems & Design
VLSI Systems & Design
 
Vote NO for MySQL
Vote NO for MySQLVote NO for MySQL
Vote NO for MySQL
 
Data In Cloud
Data In CloudData In Cloud
Data In Cloud
 

Mehr von Danijel Malik

What's new in Visual Studio 2013 & TFS 2013
What's new in Visual Studio 2013 & TFS 2013What's new in Visual Studio 2013 & TFS 2013
What's new in Visual Studio 2013 & TFS 2013Danijel Malik
 
Advanced Debugging with Visual Studio 2013 Preview
Advanced Debugging with Visual Studio 2013 PreviewAdvanced Debugging with Visual Studio 2013 Preview
Advanced Debugging with Visual Studio 2013 PreviewDanijel Malik
 
Team Foundation Service
Team Foundation ServiceTeam Foundation Service
Team Foundation ServiceDanijel Malik
 
Visual Studio 2012 ALM
Visual Studio 2012 ALMVisual Studio 2012 ALM
Visual Studio 2012 ALMDanijel Malik
 
Visual Studio 11 & TFS 11 in Practice
Visual Studio 11 & TFS 11 in PracticeVisual Studio 11 & TFS 11 in Practice
Visual Studio 11 & TFS 11 in PracticeDanijel Malik
 
Visual Studio LightSwitch
Visual Studio LightSwitchVisual Studio LightSwitch
Visual Studio LightSwitchDanijel Malik
 
In the Clouds with Windows Phone 7
In the Clouds with Windows Phone 7In the Clouds with Windows Phone 7
In the Clouds with Windows Phone 7Danijel Malik
 
Pregled novosti v Visual Studio 2012 ALM
Pregled novosti v Visual Studio 2012 ALMPregled novosti v Visual Studio 2012 ALM
Pregled novosti v Visual Studio 2012 ALMDanijel Malik
 

Mehr von Danijel Malik (10)

What's new in Visual Studio 2013 & TFS 2013
What's new in Visual Studio 2013 & TFS 2013What's new in Visual Studio 2013 & TFS 2013
What's new in Visual Studio 2013 & TFS 2013
 
Advanced Debugging with Visual Studio 2013 Preview
Advanced Debugging with Visual Studio 2013 PreviewAdvanced Debugging with Visual Studio 2013 Preview
Advanced Debugging with Visual Studio 2013 Preview
 
Testing Bootcamp
Testing BootcampTesting Bootcamp
Testing Bootcamp
 
Team Foundation Service
Team Foundation ServiceTeam Foundation Service
Team Foundation Service
 
Visual Studio 2012 ALM
Visual Studio 2012 ALMVisual Studio 2012 ALM
Visual Studio 2012 ALM
 
ASP.NET MVC 4
ASP.NET MVC 4ASP.NET MVC 4
ASP.NET MVC 4
 
Visual Studio 11 & TFS 11 in Practice
Visual Studio 11 & TFS 11 in PracticeVisual Studio 11 & TFS 11 in Practice
Visual Studio 11 & TFS 11 in Practice
 
Visual Studio LightSwitch
Visual Studio LightSwitchVisual Studio LightSwitch
Visual Studio LightSwitch
 
In the Clouds with Windows Phone 7
In the Clouds with Windows Phone 7In the Clouds with Windows Phone 7
In the Clouds with Windows Phone 7
 
Pregled novosti v Visual Studio 2012 ALM
Pregled novosti v Visual Studio 2012 ALMPregled novosti v Visual Studio 2012 ALM
Pregled novosti v Visual Studio 2012 ALM
 

Kürzlich hochgeladen

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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
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
 
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
 
🐬 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
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
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
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
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
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Kürzlich hochgeladen (20)

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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
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
 
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
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
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
 
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...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.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
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
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
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Code Reusability

  • 1. CODE REUSABILITY …in a real world scenario Danijel Malik Twitter: @DanijelMalik Email: danijel@artifis.si LEVEL 400
  • 2. AGENDA • How to design reusable components • Implementation • Deploy in an elegant fashion
  • 5. WHAT WE KNOW ABOUT CODE REUSABILITY? • It’s complex to design, hard to write and almost impossible to maintain • It breaks when you need it the most • It always ends up as framework
  • 6. A PROBLEM OR A CHALLENGE? • What’s the story? • Two manufacturing systems • Deadline approaching fast • …but we had an idea 
  • 7. ARCHITECTURE ToolId CustomerId Customer Specific Tables Descriptio FirstName n … … CustomX Common Tables ML ToolId ProductId Descriptio Name n System … XM … CustomX L ML ContainerI d InvoiceId Number Descriptio … n CustomX … ML
  • 8. ARCHITECTURE PROS CONS • No schema • Inability to use changes standard tools for • More reuse of a querying + base system reporting • Performance issues around serializing (solvable)
  • 9. ARCHITECTURE Customer User Interface Customer Business Customer Business Facade Business Facade Facade Customer Customer Business Business Facade Business Logic Logic Customer Data Data Access Access SQL Oracle Db2 Server
  • 10. YEAH BABY! NOW WE’VE GOT OUR OWN FRAMEWORK TOO • It is focused on a business problem eg. Manufacturing Execution Systems • It is extensible as much as you need
  • 11. LET’S SEE IT RUNNING DEMO
  • 12. HOW ABOUT NEW VERSIONS KID, HUH? • Source Control (TFS) • We have everything, but? • Ever heard about NuGet? • NuGet Server
  • 13. LET’S SEE IT RUNNING DEMO
  • 14. SUMMARY • We have seen how to design reusable components • Great example of implementation in a new system • An elegant way to package & deploy them