SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
code.talks  commerce  
19/20.04.2016  
  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   2  
About  me  
2  
Fabian  Wesner  
CTO  Spryker  Systems  
  
Twi-er  
hAps://twiAer.com/FabianWesner  
  
Spryker  Techblog  
hAps://tech.spryker.com  
  
  
This  presentaHon  is  available  on  Slideshare:  
hAp://de.slideshare.net/FabianWesner  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   3  
MoHvaHon  
Why  do  we  need  an  (e)commerce  framework?  
Shop  system  usage  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   4  
StaHsta  
askhivemind  
Although  there  are  lots  of  shop  systems,  many  merchants  decide  to  
build  their  own?  Why?  
Standard  Shop-­‐soQware  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   5  
Standard  shop  soQware  offer  many  features  that  can  be  configured  and  
some  hooks  for  extensions.  
è Enough  for  the  long  tail  of  merchants.  
  
  
But  …  
Framework  vs  Shop-­‐soQware  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   6  
Standardized  shop  soQware  offer  many  features  that  can  be  configured  
and  some  hooks  for  extensions.  
è Enough  for  the  long  tail  of  merchants.  
  
  
But  that  doesn’t  fit  for  ambi1ous  projects!  
If  your  business  model  is  not  standardized,  a  standard  shop  so=ware  does  not  help  you!  
The  framework  approach  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   7  
  
  
Instead  an  out-­‐of-­‐the-­‐box  shop  soQware  ambiHous  projects  need  a  
framework,  that  op8mizes  the  developers’  produc8vity.  
  
How?  
Increased  developer’s  producHvity  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   8  
✔  Clean  and  SOLID  code  
✔  Consistent  soQware  design  
✔  Strict  modularizaHon  
✔  Generic  set  of  features  (like  state  machines)  
✔  High  performance  and  scalability  
✔  DeterminisHc  behavior  
✔  Tested  and  measured  code  
✔  Avoidance  of  bad  pracHces    
Like  full  page  cache,  EAV,  event-­‐dispatcher,  AOP,  code  configuraHon  in  database,  dependency-­‐
container  magic,  …  
  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   9  
IntroducHon  
Spryker  Bird’s  eye  view  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   10  
Performance  &  Scalability  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   11  
Lightweight  shop  frontend  Yves  executes  in  30  -­‐  100ms    
•  No  full  page  cache  needed!  
•  Redis  and  ElasHcsearch  are  easily  scalable  
•  No  direct  access  to  SQL  database  from  frontend  (to  avoid  the  boAleneck)  
Code  principles  and  quality  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   12  
Spryker  follows  the    
SOLID-­‐  and  
Packaging-­‐Principles.  
Spryker  implements  
Clean  Code!  
Project  boilerplate  
Core  -­‐  Bundles  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   13  
SoQware  design  
First  sketch  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   14  
Architectural  thinking  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   15  
Single  applica8on  approach  
•  Runs  on  every  laptop  
•  “Just  a  PHP  applicaHon”  
•  Quick  and  simple  deployment  
  
  
Service  approach  
•  High  producHvity  with  large  teams  with  big  
projects  
•  Update,  replace  or  extend  parts  of  the  
applicaHon  
  
  
Architectural  thinking  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   16  
Single  applica8on  approach  
•  Runs  on  every  laptop  
•  “Just  a  PHP  applicaHon”  
•  Quick  and  simple  deployment  
  
  
Service  approach  
•  High  producHvity  with  large  teams  with  big  
projects  
•  Update,  replace  or  extend  parts  of  the  
applicaHon  
  
  Not  required/wanted:  
•  Technology  zoo  
•  Overhead  of  distribuHon  and  asynchronous  communicaHon  
•  MulHple  database  without  transacHons  and  consistency  
Monolith?  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   17  
Modular  ApplicaHon  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   18  
Bundles  which  have  a  single  responsibility  with  well-­‐defined  
relaHonships.  
Each  bundle  consists  of  (up  to)  4  layers  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   19  
ApplicaHons,  bundles  and  layers  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   20  
Each  bundle  has  an  internal  API  (~  Facade)  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   21  
Bundle  to  Bundle  communicaHon  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   22  
Strict  modularizaHon  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   23  
A  bundle  is  a  “funcHonal  unit”.  
  
Bundles  are  loose  coupled,  coherent  and  have  explicit  
dependencies.  
  
They  follow  the  packaging  principles!  
  
Currently  there  are  >  100  bundles.  
  
Main  benefit:  Code  keeps  well-­‐structured  even  
in  big  projects  with  large  development  teams.  
  
Atomic  Releases  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   24  
Each  bundle  has  it’s  own  (semanHc)  version  
number  and  own  (split)  repository.  
  
We  know:  Migra8on  to  a  new  version  can  be  
painful!  
  
That’s  why:  all  releases  only  affect  one  or  some  
bundles  (Isolated  changes).  
  
Spryker  offers  a  con8nuous  delivery  of    
Atomic  Releases.  
  
  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   25  
Programming  with  Spryker  
Dependency  injecHon  with  factories  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   26  
+  Explicit  injecHon  without  background  magic.  IDE-­‐friendly  
+  Separated  factories  per  bundle/layer.  No  big  DI-­‐container.  
Extension  with  plugins  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   27  
Project  extension  via  object  composiHon  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   28  
+  You  can  extend  every  class  by  composiHon  (recommended)  or  inheritance.  
Transfer  objects  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   29  
+  Internal  data  transfer  with  objects,  not  anonymous  arrays.  
+  Clear  separaHon  of  data  and  logic  
Usage  DefiniHon  
State  machines  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   30  
Visual  programming  
with  state  machines  
•  Graph  in  XML  
•  Commands  and  
CondiHons  in  PHP  
  
Perfect  use  case    
Automated  processing  of  
orders.  
Avoid  bulky  ERP  as  much  as  possible.  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   31  
Run  Spryker  –  Now  
      
Installa8on  guide:  
hAp://start.spryker.com  
InstallaHon  with  Vagrant  VM    
takes  20-­‐30  minutes  
  
All  Github  repositories  are  public:  
hAps://github.com/spryker  
  
More  Spryker  links  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   32  
Documenta8on  –  Spryker  has  comprehensive  documentaHon  
hAp://spryker.github.io  
  
Forum  –  Ask  any  quesHon  to  the  Spryker  team  
hAp://discuss.spryker.com  
  
Techblog  –  Get  deep  insights  from  the  core  team  
hAps://tech.spryker.com  
  
Scru8nizer  (Yves)  –  Check  the  code  quality  metrics  
hAps://scruHnizer-­‐ci.com/g/spryker/demoshop  
  
2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   33  
A  proven  technology  built  in  real-­‐
world  projects  for  ambiHous  and  
non-­‐standard  business  models.    
Spryker  Systems  GmbH  
Julie-­‐WolQhorn-­‐Strasse  1  
10115  Berlin  
Germany  
info@spryker.com    
Phone:  +49  40  328  929  631  
Fax:  +49  40  328  929  699  
www.spryker.com      
tech.spryker.com  
github.com/spryker  
  
34  2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016  

Más contenido relacionado

La actualidad más candente

Microservices - BFF architecture and implementation
Microservices - BFF architecture and implementationMicroservices - BFF architecture and implementation
Microservices - BFF architecture and implementationKnoldus Inc.
 
Real-Life Use Cases & Architectures for Event Streaming with Apache Kafka
Real-Life Use Cases & Architectures for Event Streaming with Apache KafkaReal-Life Use Cases & Architectures for Event Streaming with Apache Kafka
Real-Life Use Cases & Architectures for Event Streaming with Apache KafkaKai Wähner
 
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)Kai Wähner
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
What Makes a Great Open API?
What Makes a Great Open API?What Makes a Great Open API?
What Makes a Great Open API?John Musser
 
Azure API Management
Azure API ManagementAzure API Management
Azure API ManagementDaniel Toomey
 
Rapid Innovation: The Business Case for Modern Application Development (SRV20...
Rapid Innovation: The Business Case for Modern Application Development (SRV20...Rapid Innovation: The Business Case for Modern Application Development (SRV20...
Rapid Innovation: The Business Case for Modern Application Development (SRV20...Amazon Web Services
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principlesSanjoy Kumar Roy
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecturetyrantbrian
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architectureThe Software House
 
Aws Architecture Fundamentals | Dallas
Aws Architecture Fundamentals | DallasAws Architecture Fundamentals | Dallas
Aws Architecture Fundamentals | DallasNicole Maus
 
Microservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | EdurekaMicroservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | EdurekaEdureka!
 
Serverless Computing and Serverless Patterns .pdf
Serverless Computing and Serverless Patterns .pdfServerless Computing and Serverless Patterns .pdf
Serverless Computing and Serverless Patterns .pdfJohn Brian Ngugi Njuguna
 

La actualidad más candente (20)

Microservices - BFF architecture and implementation
Microservices - BFF architecture and implementationMicroservices - BFF architecture and implementation
Microservices - BFF architecture and implementation
 
Real-Life Use Cases & Architectures for Event Streaming with Apache Kafka
Real-Life Use Cases & Architectures for Event Streaming with Apache KafkaReal-Life Use Cases & Architectures for Event Streaming with Apache Kafka
Real-Life Use Cases & Architectures for Event Streaming with Apache Kafka
 
Serverless Computing
Serverless ComputingServerless Computing
Serverless Computing
 
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
Apache Kafka vs. Integration Middleware (MQ, ETL, ESB)
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
What Makes a Great Open API?
What Makes a Great Open API?What Makes a Great Open API?
What Makes a Great Open API?
 
Apigee Demo: API Platform Overview
Apigee Demo: API Platform OverviewApigee Demo: API Platform Overview
Apigee Demo: API Platform Overview
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Architecture: Microservices
Architecture: MicroservicesArchitecture: Microservices
Architecture: Microservices
 
Azure API Management
Azure API ManagementAzure API Management
Azure API Management
 
Guide to an API-first Strategy
Guide to an API-first StrategyGuide to an API-first Strategy
Guide to an API-first Strategy
 
Rapid Innovation: The Business Case for Modern Application Development (SRV20...
Rapid Innovation: The Business Case for Modern Application Development (SRV20...Rapid Innovation: The Business Case for Modern Application Development (SRV20...
Rapid Innovation: The Business Case for Modern Application Development (SRV20...
 
Microservice architecture design principles
Microservice architecture design principlesMicroservice architecture design principles
Microservice architecture design principles
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
 
Aws Architecture Fundamentals | Dallas
Aws Architecture Fundamentals | DallasAws Architecture Fundamentals | Dallas
Aws Architecture Fundamentals | Dallas
 
Introduction to AWS Security
Introduction to AWS SecurityIntroduction to AWS Security
Introduction to AWS Security
 
Microservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | EdurekaMicroservices Design Patterns Explained | Edureka
Microservices Design Patterns Explained | Edureka
 
Serverless Computing and Serverless Patterns .pdf
Serverless Computing and Serverless Patterns .pdfServerless Computing and Serverless Patterns .pdf
Serverless Computing and Serverless Patterns .pdf
 

Similar a Spryker in a nutshell

Crouzet Automation brand presentation
Crouzet Automation brand presentationCrouzet Automation brand presentation
Crouzet Automation brand presentationCrouzet
 
Oracle Commerce as a Secure, Scalable Hybrid Cloud Service, webinar slides
Oracle Commerce as a Secure,  Scalable Hybrid Cloud Service, webinar slidesOracle Commerce as a Secure,  Scalable Hybrid Cloud Service, webinar slides
Oracle Commerce as a Secure, Scalable Hybrid Cloud Service, webinar slidesGrid Dynamics
 
Agile ALM with Traceability: Release of codeBeamer 5.5
Agile ALM with Traceability: Release of codeBeamer 5.5 Agile ALM with Traceability: Release of codeBeamer 5.5
Agile ALM with Traceability: Release of codeBeamer 5.5 Intland Software GmbH
 
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationvue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationDivante
 
Introducción a Docker - LibreCon 2016
Introducción a Docker - LibreCon 2016Introducción a Docker - LibreCon 2016
Introducción a Docker - LibreCon 2016LibreCon
 
SICUR 2016 - Appvision Presentation febrero 2016
SICUR 2016 - Appvision Presentation   febrero 2016SICUR 2016 - Appvision Presentation   febrero 2016
SICUR 2016 - Appvision Presentation febrero 2016Oswaldo Lechuga
 
Linked in multi tier, multi-tenant, multi-problem kafka
Linked in multi tier, multi-tenant, multi-problem kafkaLinked in multi tier, multi-tenant, multi-problem kafka
Linked in multi tier, multi-tenant, multi-problem kafkaNitin Kumar
 
Multi tier, multi-tenant, multi-problem kafka
Multi tier, multi-tenant, multi-problem kafkaMulti tier, multi-tenant, multi-problem kafka
Multi tier, multi-tenant, multi-problem kafkaTodd Palino
 
Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...
Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...
Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...Seeling Cheung
 
Microcontroladores: programación de microcontroladores PIC de 8 bits en C
Microcontroladores: programación de microcontroladores PIC de 8 bits en CMicrocontroladores: programación de microcontroladores PIC de 8 bits en C
Microcontroladores: programación de microcontroladores PIC de 8 bits en CSANTIAGO PABLO ALBERTO
 
Siebel CRM Strategy & Roadmap
Siebel CRM Strategy & Roadmap Siebel CRM Strategy & Roadmap
Siebel CRM Strategy & Roadmap crm2life
 
Gen7176 siebel crm strategy and roadmap (1)
Gen7176   siebel crm strategy and roadmap (1)Gen7176   siebel crm strategy and roadmap (1)
Gen7176 siebel crm strategy and roadmap (1)crm2life
 
How the Bosch Group is making use of OSGi for IoT - Kai Hackbarth
How the Bosch Group is making use of OSGi for IoT - Kai HackbarthHow the Bosch Group is making use of OSGi for IoT - Kai Hackbarth
How the Bosch Group is making use of OSGi for IoT - Kai Hackbarthmfrancis
 
Batch Management: Overview and What’s New and
Batch Management: Overview and What’s New andBatch Management: Overview and What’s New and
Batch Management: Overview and What’s New andRockwell Automation
 

Similar a Spryker in a nutshell (20)

Crouzet Automation brand presentation
Crouzet Automation brand presentationCrouzet Automation brand presentation
Crouzet Automation brand presentation
 
Oracle Commerce as a Secure, Scalable Hybrid Cloud Service, webinar slides
Oracle Commerce as a Secure,  Scalable Hybrid Cloud Service, webinar slidesOracle Commerce as a Secure,  Scalable Hybrid Cloud Service, webinar slides
Oracle Commerce as a Secure, Scalable Hybrid Cloud Service, webinar slides
 
Agile ALM with Traceability: Release of codeBeamer 5.5
Agile ALM with Traceability: Release of codeBeamer 5.5 Agile ALM with Traceability: Release of codeBeamer 5.5
Agile ALM with Traceability: Release of codeBeamer 5.5
 
Industry 4.0
Industry 4.0Industry 4.0
Industry 4.0
 
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationvue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
 
Where is cold fusion headed
Where is cold fusion headedWhere is cold fusion headed
Where is cold fusion headed
 
Introducción a Docker - LibreCon 2016
Introducción a Docker - LibreCon 2016Introducción a Docker - LibreCon 2016
Introducción a Docker - LibreCon 2016
 
SICUR 2016 - Appvision Presentation febrero 2016
SICUR 2016 - Appvision Presentation   febrero 2016SICUR 2016 - Appvision Presentation   febrero 2016
SICUR 2016 - Appvision Presentation febrero 2016
 
About_Imaginea
About_ImagineaAbout_Imaginea
About_Imaginea
 
ESA Catalogue
ESA CatalogueESA Catalogue
ESA Catalogue
 
C2M - App design
C2M - App designC2M - App design
C2M - App design
 
Linked in multi tier, multi-tenant, multi-problem kafka
Linked in multi tier, multi-tenant, multi-problem kafkaLinked in multi tier, multi-tenant, multi-problem kafka
Linked in multi tier, multi-tenant, multi-problem kafka
 
Multi tier, multi-tenant, multi-problem kafka
Multi tier, multi-tenant, multi-problem kafkaMulti tier, multi-tenant, multi-problem kafka
Multi tier, multi-tenant, multi-problem kafka
 
Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...
Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...
Fiducia & GAD IT AG: From Fraud Detection to Big Data Platform: Bringing Hado...
 
Microcontroladores: programación de microcontroladores PIC de 8 bits en C
Microcontroladores: programación de microcontroladores PIC de 8 bits en CMicrocontroladores: programación de microcontroladores PIC de 8 bits en C
Microcontroladores: programación de microcontroladores PIC de 8 bits en C
 
Siebel CRM Strategy & Roadmap
Siebel CRM Strategy & Roadmap Siebel CRM Strategy & Roadmap
Siebel CRM Strategy & Roadmap
 
Gen7176 siebel crm strategy and roadmap (1)
Gen7176   siebel crm strategy and roadmap (1)Gen7176   siebel crm strategy and roadmap (1)
Gen7176 siebel crm strategy and roadmap (1)
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
How the Bosch Group is making use of OSGi for IoT - Kai Hackbarth
How the Bosch Group is making use of OSGi for IoT - Kai HackbarthHow the Bosch Group is making use of OSGi for IoT - Kai Hackbarth
How the Bosch Group is making use of OSGi for IoT - Kai Hackbarth
 
Batch Management: Overview and What’s New and
Batch Management: Overview and What’s New andBatch Management: Overview and What’s New and
Batch Management: Overview and What’s New and
 

Último

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 

Último (20)

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 

Spryker in a nutshell

  • 2. 2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   2   About  me   2   Fabian  Wesner   CTO  Spryker  Systems     Twi-er   hAps://twiAer.com/FabianWesner     Spryker  Techblog   hAps://tech.spryker.com       This  presentaHon  is  available  on  Slideshare:   hAp://de.slideshare.net/FabianWesner  
  • 3. 2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   3   MoHvaHon   Why  do  we  need  an  (e)commerce  framework?  
  • 4. Shop  system  usage   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   4   StaHsta   askhivemind   Although  there  are  lots  of  shop  systems,  many  merchants  decide  to   build  their  own?  Why?  
  • 5. Standard  Shop-­‐soQware   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   5   Standard  shop  soQware  offer  many  features  that  can  be  configured  and   some  hooks  for  extensions.   è Enough  for  the  long  tail  of  merchants.       But  …  
  • 6. Framework  vs  Shop-­‐soQware   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   6   Standardized  shop  soQware  offer  many  features  that  can  be  configured   and  some  hooks  for  extensions.   è Enough  for  the  long  tail  of  merchants.       But  that  doesn’t  fit  for  ambi1ous  projects!   If  your  business  model  is  not  standardized,  a  standard  shop  so=ware  does  not  help  you!  
  • 7. The  framework  approach   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   7       Instead  an  out-­‐of-­‐the-­‐box  shop  soQware  ambiHous  projects  need  a   framework,  that  op8mizes  the  developers’  produc8vity.     How?  
  • 8. Increased  developer’s  producHvity   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   8   ✔  Clean  and  SOLID  code   ✔  Consistent  soQware  design   ✔  Strict  modularizaHon   ✔  Generic  set  of  features  (like  state  machines)   ✔  High  performance  and  scalability   ✔  DeterminisHc  behavior   ✔  Tested  and  measured  code   ✔  Avoidance  of  bad  pracHces     Like  full  page  cache,  EAV,  event-­‐dispatcher,  AOP,  code  configuraHon  in  database,  dependency-­‐ container  magic,  …    
  • 9. 2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   9   IntroducHon  
  • 10. Spryker  Bird’s  eye  view   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   10  
  • 11. Performance  &  Scalability   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   11   Lightweight  shop  frontend  Yves  executes  in  30  -­‐  100ms     •  No  full  page  cache  needed!   •  Redis  and  ElasHcsearch  are  easily  scalable   •  No  direct  access  to  SQL  database  from  frontend  (to  avoid  the  boAleneck)  
  • 12. Code  principles  and  quality   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   12   Spryker  follows  the     SOLID-­‐  and   Packaging-­‐Principles.   Spryker  implements   Clean  Code!   Project  boilerplate   Core  -­‐  Bundles  
  • 13. 2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   13   SoQware  design  
  • 14. First  sketch   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   14  
  • 15. Architectural  thinking   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   15   Single  applica8on  approach   •  Runs  on  every  laptop   •  “Just  a  PHP  applicaHon”   •  Quick  and  simple  deployment       Service  approach   •  High  producHvity  with  large  teams  with  big   projects   •  Update,  replace  or  extend  parts  of  the   applicaHon      
  • 16. Architectural  thinking   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   16   Single  applica8on  approach   •  Runs  on  every  laptop   •  “Just  a  PHP  applicaHon”   •  Quick  and  simple  deployment       Service  approach   •  High  producHvity  with  large  teams  with  big   projects   •  Update,  replace  or  extend  parts  of  the   applicaHon      Not  required/wanted:   •  Technology  zoo   •  Overhead  of  distribuHon  and  asynchronous  communicaHon   •  MulHple  database  without  transacHons  and  consistency  
  • 17. Monolith?   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   17  
  • 18. Modular  ApplicaHon   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   18   Bundles  which  have  a  single  responsibility  with  well-­‐defined   relaHonships.  
  • 19. Each  bundle  consists  of  (up  to)  4  layers   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   19  
  • 20. ApplicaHons,  bundles  and  layers   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   20  
  • 21. Each  bundle  has  an  internal  API  (~  Facade)   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   21  
  • 22. Bundle  to  Bundle  communicaHon   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   22  
  • 23. Strict  modularizaHon   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   23   A  bundle  is  a  “funcHonal  unit”.     Bundles  are  loose  coupled,  coherent  and  have  explicit   dependencies.     They  follow  the  packaging  principles!     Currently  there  are  >  100  bundles.     Main  benefit:  Code  keeps  well-­‐structured  even   in  big  projects  with  large  development  teams.    
  • 24. Atomic  Releases   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   24   Each  bundle  has  it’s  own  (semanHc)  version   number  and  own  (split)  repository.     We  know:  Migra8on  to  a  new  version  can  be   painful!     That’s  why:  all  releases  only  affect  one  or  some   bundles  (Isolated  changes).     Spryker  offers  a  con8nuous  delivery  of     Atomic  Releases.      
  • 25. 2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   25   Programming  with  Spryker  
  • 26. Dependency  injecHon  with  factories   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   26   +  Explicit  injecHon  without  background  magic.  IDE-­‐friendly   +  Separated  factories  per  bundle/layer.  No  big  DI-­‐container.  
  • 27. Extension  with  plugins   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   27  
  • 28. Project  extension  via  object  composiHon   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   28   +  You  can  extend  every  class  by  composiHon  (recommended)  or  inheritance.  
  • 29. Transfer  objects   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   29   +  Internal  data  transfer  with  objects,  not  anonymous  arrays.   +  Clear  separaHon  of  data  and  logic   Usage  DefiniHon  
  • 30. State  machines   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   30   Visual  programming   with  state  machines   •  Graph  in  XML   •  Commands  and   CondiHons  in  PHP     Perfect  use  case     Automated  processing  of   orders.   Avoid  bulky  ERP  as  much  as  possible.  
  • 31. 2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   31   Run  Spryker  –  Now         Installa8on  guide:   hAp://start.spryker.com   InstallaHon  with  Vagrant  VM     takes  20-­‐30  minutes     All  Github  repositories  are  public:   hAps://github.com/spryker    
  • 32. More  Spryker  links   2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   32   Documenta8on  –  Spryker  has  comprehensive  documentaHon   hAp://spryker.github.io     Forum  –  Ask  any  quesHon  to  the  Spryker  team   hAp://discuss.spryker.com     Techblog  –  Get  deep  insights  from  the  core  team   hAps://tech.spryker.com     Scru8nizer  (Yves)  –  Check  the  code  quality  metrics   hAps://scruHnizer-­‐ci.com/g/spryker/demoshop    
  • 33. 2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016   33   A  proven  technology  built  in  real-­‐ world  projects  for  ambiHous  and   non-­‐standard  business  models.    
  • 34. Spryker  Systems  GmbH   Julie-­‐WolQhorn-­‐Strasse  1   10115  Berlin   Germany   info@spryker.com     Phone:  +49  40  328  929  631   Fax:  +49  40  328  929  699   www.spryker.com       tech.spryker.com   github.com/spryker     34  2016  Spryker  Systems  GmbH  /  code.talks  commerce  2016