SlideShare une entreprise Scribd logo
1  sur  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!

Contenu connexe

Similaire à Code Reusability

SQL Server SQL Server
SQL Server SQL ServerSQL Server SQL Server
SQL Server SQL Server
webhostingguy
 
SQL Server SQL Server
SQL Server SQL ServerSQL Server SQL Server
SQL Server SQL Server
webhostingguy
 
Pacific strategy group 27th april 2012
Pacific strategy group  27th april 2012Pacific strategy group  27th april 2012
Pacific strategy group 27th april 2012
ctrlsblog
 
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
ITCamp
 
Architecture As Language
Architecture As LanguageArchitecture As Language
Architecture As Language
guest2e0b3a
 
VLSI Systems & Design
VLSI Systems & DesignVLSI Systems & Design
VLSI Systems & Design
Aakash Mishra
 

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

Plus de Danijel Malik

Plus de 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
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Dernier (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 

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