SlideShare a Scribd company logo
1 of 68
Download to read offline
Albert Einstein
Learn from yesterday,
live for today,
hope for tomorrow.
The important thing
is not to stop questioning.
„
Test Driven

Development
Behavior Driven
Development
Domain Driven

Design
Test Driven

Development
Behavior Driven
Development
Domain Driven

Design
Don’t think about
that now
Architecture
Inspired by Shrek (and drugs ;)
Ogres
and Applications
are like onions
• Domain
• Application
• Infrastructure
• User Interface
They both have layers!
A long time ago in a bar
far, far away…
It is all about
Recipe
Let’s make
an App

for that
but…
explore
the domain
first!
48 hours later…
Version 1.0 features
• recipes search engine
• recipe drink photos
• ingredients list
• possibility to add new recipes (admin only)
• comments
• social media stufff
Domain
1
Examples
Feature: Create new drink recipe
Scenario: Create new drink recipe

Scenario: Attempt to create new drink recipe using too many liquids

Scenario: Attempt to create new drink without glass

Scenario: Attempt to add step about pouring to shaker without shaker

Scenario: Attempt to remove significant step from the recipe
/**
* @When I decide to create new recipe called :name
*/
public function iDecideToCreateNewRecipeCalled($name)
{
$this->recipe = new Recipe(new Name($name));
}
/**
* @When as first step I add: prepare :name glass with :capacity ml capacity
*/
public function asFirstStepIAddPrepareHighballGlassWithMlCapacity($name, $capacity)
{
$this->recipe->prepareTheGlass(new Name($name), new Capacity($capacity));
}
Modeling by examples
Im not sure
but something
is wrong here
Let’s try
with SPECS
RecipeSpec.php
it_has_a_name();
it_requires_preparing_a_glass_as_a_first_step();
it_allows_pouring_into_prepared_glass();
it_allows_filling_prepared_glass();
it_allowes_adding_ingredients_into_glass();
it_does_not_have_any_description_by_default();
GlassSpec.php
it_has_a_name();
it_is_standalone_by_default();
it_has_a_capacity();
it_can_be_filled_with_liquids();
it_cant_be_over_filled();
it_allows_to_stir_liquids();
IngredientSpec.php
CapacitySpec.php
AmountSpec.php
RecipeDescriptionSpec.php
Other SPECS
• Value Objects
• Entities
• Services
• Aggregates
Make it
SOLID
Single responsibility principle |
Open/closed principle | Liskov
substitution principle | Interface
segregation principle |
Dependency inversion principle |
Single responsibility principle |
Open/closed principle | Liskov
substitution principle | Interface
segregation principle |
Dependency inversion principle |
Single responsibility principle |
Open/closed principle | Liskov
substitution principle | Interface
segregation principle |
Dependency inversion principle |
Single responsibility principle |
Open/closed principle | Liskov
substitution principle | Interface
segregation principle |
Dependency inversion principle |
Single responsibility principle |
Open/closed principle | Liskov
substitution principle | Interface
segregation principle |
Dependency inversion principle |
Make it
Unbreakable
Domain (model)
2 Application
Think like a
programmer
Talk to me
• CreateNewRecipeCommand.php
• AddRecipeStepCommand.php
• RemoveRecipeStepCommand.php
• UpdateRecipeDescriptionCommand.php
• UploadRecipePhotoCommand.php
• PublishRecipeCommand.php
• Create New Recipe
• Add Recipe Step
• Remove Recipe Step
• Update Recipe Description
• Upload Recipe Photo
• Publish Recipe
• CreateNewRecipeCommand.php
• AddRecipeStepCommand.php
• RemoveRecipeStepCommand.php
• UpdateRecipeDescriptionCommand.php
• UploadRecipePhotoCommand.php
• PublishRecipeCommand.php
• Search Engine
• Autocomplete (Ingredients)
• Recipes Collection (Repository)
Well, sometimes
you have to ask…?
• Command Bus
• Command Handlers
• Recipe Serializer
Other things
• Filesystem
• SlugGenerator
<?php
class CreateNewRecipeCommand
{
/**
* @var string
*/
private $name;
/**
* @param string $name
*/
public function __construct($name)
{
$this->name = $name;
}
/**
* @return string
*/
public function name()
{
return $this->name;
}
}
Immutable
commands
<?php
class CreateNewRecipeHandler
{
private $recipes;
private $recipeFactory;
public function __construct(Recipes $recipes, Factory $recipeFactory)
{
$this->recipes = $recipes;
$this->recipeFactory = $recipeFactory;
}
public function handle(CreateNewRecipeCommand $command)
{
$recipe = $this->recipeFactory->createRecipe($command->name());
if ($this->recipes->hasRecipeWithName($recipe->getName())) {
throw new RecipeAlreadyExistsException();
}
$this->recipes->add($recipe);
}
}
Wait
a minute…
<?php
/**
* @When I decide to create new recipe called :name
*/
public function iDecideToCreateNewRecipeCalled($name)
{
$command = new CreateNewRecipeCommand();
$command->name = $name;
$this->commandBus->handle($command);
$this->currentRecipeName = new Name($name);
}
/**
* @When as first step I add: prepare :name glass with :capacity ml capacity
*/
public function asFirstStepIAddPrepareHighballGlassWithMlCapacity($name, $capacity)
{
$command = new AddRecipeStepCommand();
$command->slug = $this->slugGenerator->generateFrom($this->currentRecipeName);
$command->action = RecipeActions::PREPARE_GLASS;
$command->name = $name;
$command->capacity = (int) $capacity;
$this->commandBus->handle($command);
}
Well done!
Application
3 Infrastructure
Just implement
interfaces
• FlySystemFilesystem
• InMemoryRepository
• FilesystemRepository
• SlugifySlugGenerator
• JsonSerializer
• ElasticSearchEngineAdapter
• DummySearchEngineAdapter
Interface
LEGO
Power Functions - Engine
Implementation
Literally nothing
for testing purpose only
Dummy 

implementation
4 User Interface
Connection
between
user and
application
Framework
based
• ROUTING
• TEMPLATING ENGINE
• SERVICE LOCATOR
• FORMS
• VALIDATION
• REQUEST RESPONSE WRAPPERS
Symfony 2
Laravel

Zend 2
Hybride?
Symfony 2 + Laravel?
Maybe with
shared service locator
• WEB APPLICATION
• CONSOLE APPLICATION
• REST API
• SOAP API
• GUI
Examples
User Interface
5 System
DOMAIN
APPLICATION
USER INTERFACE
I
N
F
R
A
S
T
R
U
C
T
U
R
E
System
My Drinks v 1.0
160 working hours
1 developer
A walk through
system layers
Story written by alcohol
http://twitter.com/norzechowicz

http://github.com/norzechowicz

norbert@orzechowicz.pl

http://phpers.pl
Norbert
Orzechowicz
https://github.com/norzechowicz/mydrinks
My Drinks Repository
http://zawarstwaabstrakcji.pl
Questions?

More Related Content

What's hot

ActionBar and Holo in Android 2+
ActionBar and Holo in Android 2+ActionBar and Holo in Android 2+
ActionBar and Holo in Android 2+Michal Pavlasek
 
Calabash Andoird + Calabash iOS
Calabash Andoird + Calabash iOSCalabash Andoird + Calabash iOS
Calabash Andoird + Calabash iOSAnadea
 
Inspect The Uninspected
Inspect The UninspectedInspect The Uninspected
Inspect The Uninspectedcgack
 
Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamJoe Ferguson
 

What's hot (6)

ActionBar and Holo in Android 2+
ActionBar and Holo in Android 2+ActionBar and Holo in Android 2+
ActionBar and Holo in Android 2+
 
Using Cocoapods
Using CocoapodsUsing Cocoapods
Using Cocoapods
 
Calabash Andoird + Calabash iOS
Calabash Andoird + Calabash iOSCalabash Andoird + Calabash iOS
Calabash Andoird + Calabash iOS
 
Selenium for Jobseekers
Selenium for JobseekersSelenium for Jobseekers
Selenium for Jobseekers
 
Inspect The Uninspected
Inspect The UninspectedInspect The Uninspected
Inspect The Uninspected
 
Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small team
 

Viewers also liked

Mysqlnd, an unknown powerful PHP extension
Mysqlnd, an unknown powerful PHP extensionMysqlnd, an unknown powerful PHP extension
Mysqlnd, an unknown powerful PHP extensionjulien pauli
 
Boudourides et al., Transitions and Trajectories in Temporal Networks with Ov...
Boudourides et al., Transitions and Trajectories in Temporal Networks with Ov...Boudourides et al., Transitions and Trajectories in Temporal Networks with Ov...
Boudourides et al., Transitions and Trajectories in Temporal Networks with Ov...Moses Boudourides
 
Dye family room furniture selections
Dye family room furniture selectionsDye family room furniture selections
Dye family room furniture selectionsErica Peale
 
The natural leadership talents of women
The natural leadership talents of womenThe natural leadership talents of women
The natural leadership talents of womenKenia Alvarez-Tio
 
Goo Create: Interface Overview
Goo Create: Interface OverviewGoo Create: Interface Overview
Goo Create: Interface OverviewGoo Technologies
 
Multilayerity within multilayerity? On multilayer assortativity in social net...
Multilayerity within multilayerity? On multilayer assortativity in social net...Multilayerity within multilayerity? On multilayer assortativity in social net...
Multilayerity within multilayerity? On multilayer assortativity in social net...Moses Boudourides
 
Dye family room furniture selections
Dye family room furniture selectionsDye family room furniture selections
Dye family room furniture selectionsErica Peale
 
Hasil pengamatan gum xantan
Hasil pengamatan gum xantanHasil pengamatan gum xantan
Hasil pengamatan gum xantanDn Ssd
 
纯电动方程式赛车赞助企划书
纯电动方程式赛车赞助企划书纯电动方程式赛车赞助企划书
纯电动方程式赛车赞助企划书Tom Smith
 

Viewers also liked (19)

Save Repository From Save
Save Repository From SaveSave Repository From Save
Save Repository From Save
 
PhpSpec extension points
PhpSpec extension pointsPhpSpec extension points
PhpSpec extension points
 
Mysqlnd, an unknown powerful PHP extension
Mysqlnd, an unknown powerful PHP extensionMysqlnd, an unknown powerful PHP extension
Mysqlnd, an unknown powerful PHP extension
 
Boudourides et al., Transitions and Trajectories in Temporal Networks with Ov...
Boudourides et al., Transitions and Trajectories in Temporal Networks with Ov...Boudourides et al., Transitions and Trajectories in Temporal Networks with Ov...
Boudourides et al., Transitions and Trajectories in Temporal Networks with Ov...
 
Dye family room furniture selections
Dye family room furniture selectionsDye family room furniture selections
Dye family room furniture selections
 
Introduction to Lights
Introduction to LightsIntroduction to Lights
Introduction to Lights
 
The natural leadership talents of women
The natural leadership talents of womenThe natural leadership talents of women
The natural leadership talents of women
 
French vocab rehab
French vocab rehabFrench vocab rehab
French vocab rehab
 
Alternativas
AlternativasAlternativas
Alternativas
 
Goo Create: Interface Overview
Goo Create: Interface OverviewGoo Create: Interface Overview
Goo Create: Interface Overview
 
Letters From Kay
Letters From KayLetters From Kay
Letters From Kay
 
Multilayerity within multilayerity? On multilayer assortativity in social net...
Multilayerity within multilayerity? On multilayer assortativity in social net...Multilayerity within multilayerity? On multilayer assortativity in social net...
Multilayerity within multilayerity? On multilayer assortativity in social net...
 
Dye family room furniture selections
Dye family room furniture selectionsDye family room furniture selections
Dye family room furniture selections
 
Hasil pengamatan gum xantan
Hasil pengamatan gum xantanHasil pengamatan gum xantan
Hasil pengamatan gum xantan
 
[Up! Essência] Produtos
[Up! Essência] Produtos[Up! Essência] Produtos
[Up! Essência] Produtos
 
纯电动方程式赛车赞助企划书
纯电动方程式赛车赞助企划书纯电动方程式赛车赞助企划书
纯电动方程式赛车赞助企划书
 
Physical activity
Physical  activityPhysical  activity
Physical activity
 
Vivian Murciano Media Sales Director
Vivian Murciano Media Sales DirectorVivian Murciano Media Sales Director
Vivian Murciano Media Sales Director
 
Stmt trisakati kel.1
Stmt trisakati kel.1Stmt trisakati kel.1
Stmt trisakati kel.1
 

Similar to A walk through system layers

Automated Acceptance Testing from Scratch
Automated Acceptance Testing from ScratchAutomated Acceptance Testing from Scratch
Automated Acceptance Testing from ScratchExcella
 
CakePHP 2.0 - PHP Matsuri 2011
CakePHP 2.0 - PHP Matsuri 2011CakePHP 2.0 - PHP Matsuri 2011
CakePHP 2.0 - PHP Matsuri 2011Graham Weldon
 
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...DevDay.org
 
Emerging chef patterns and practices
Emerging chef patterns and practicesEmerging chef patterns and practices
Emerging chef patterns and practicesOwain Perry
 
Phpworks enterprise-php-1227605806710884-9
Phpworks enterprise-php-1227605806710884-9Phpworks enterprise-php-1227605806710884-9
Phpworks enterprise-php-1227605806710884-9PrinceGuru MS
 
Invoke-Obfuscation nullcon 2017
Invoke-Obfuscation nullcon 2017Invoke-Obfuscation nullcon 2017
Invoke-Obfuscation nullcon 2017Daniel Bohannon
 
Build Your First EE2 Site
Build Your First EE2 SiteBuild Your First EE2 Site
Build Your First EE2 SiteRuthie BenDor
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Software, Inc.
 
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...Daniel Gallego Vico
 
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012Steven Pousty
 
Tool Up Your LAMP Stack
Tool Up Your LAMP StackTool Up Your LAMP Stack
Tool Up Your LAMP StackLorna Mitchell
 
Invoke-Obfuscation DerbyCon 2016
Invoke-Obfuscation DerbyCon 2016Invoke-Obfuscation DerbyCon 2016
Invoke-Obfuscation DerbyCon 2016Daniel Bohannon
 
Extracting Plugins And Gems From Rails Apps
Extracting Plugins And Gems From Rails AppsExtracting Plugins And Gems From Rails Apps
Extracting Plugins And Gems From Rails AppsJosh Nichols
 
Cypress report
Cypress reportCypress report
Cypress reportAdarsh
 
Automation with OS X
Automation with OS XAutomation with OS X
Automation with OS XKirschen Seah
 
OSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy HawkinsOSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy HawkinsNETWAYS
 
Refactoring Legacy Code - true story
Refactoring Legacy Code - true storyRefactoring Legacy Code - true story
Refactoring Legacy Code - true storyAki Salmi
 

Similar to A walk through system layers (20)

Automated Acceptance Testing from Scratch
Automated Acceptance Testing from ScratchAutomated Acceptance Testing from Scratch
Automated Acceptance Testing from Scratch
 
CakePHP 2.0 - PHP Matsuri 2011
CakePHP 2.0 - PHP Matsuri 2011CakePHP 2.0 - PHP Matsuri 2011
CakePHP 2.0 - PHP Matsuri 2011
 
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
 
Emerging chef patterns and practices
Emerging chef patterns and practicesEmerging chef patterns and practices
Emerging chef patterns and practices
 
Continuous feature-development
Continuous feature-developmentContinuous feature-development
Continuous feature-development
 
Phpworks enterprise-php-1227605806710884-9
Phpworks enterprise-php-1227605806710884-9Phpworks enterprise-php-1227605806710884-9
Phpworks enterprise-php-1227605806710884-9
 
Invoke-Obfuscation nullcon 2017
Invoke-Obfuscation nullcon 2017Invoke-Obfuscation nullcon 2017
Invoke-Obfuscation nullcon 2017
 
Build Your First EE2 Site
Build Your First EE2 SiteBuild Your First EE2 Site
Build Your First EE2 Site
 
Chef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of ChefChef Fundamentals Training Series Module 1: Overview of Chef
Chef Fundamentals Training Series Module 1: Overview of Chef
 
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
Droidcon Spain 2105 - One app to rule them all: Methodologies, Tools & Tricks...
 
OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012OpenShift with Eclipse Tooling - EclipseCon 2012
OpenShift with Eclipse Tooling - EclipseCon 2012
 
Tool up your lamp stack
Tool up your lamp stackTool up your lamp stack
Tool up your lamp stack
 
Tool Up Your LAMP Stack
Tool Up Your LAMP StackTool Up Your LAMP Stack
Tool Up Your LAMP Stack
 
Invoke-Obfuscation DerbyCon 2016
Invoke-Obfuscation DerbyCon 2016Invoke-Obfuscation DerbyCon 2016
Invoke-Obfuscation DerbyCon 2016
 
Extracting Plugins And Gems From Rails Apps
Extracting Plugins And Gems From Rails AppsExtracting Plugins And Gems From Rails Apps
Extracting Plugins And Gems From Rails Apps
 
Cypress report
Cypress reportCypress report
Cypress report
 
Design p atterns
Design p atternsDesign p atterns
Design p atterns
 
Automation with OS X
Automation with OS XAutomation with OS X
Automation with OS X
 
OSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy HawkinsOSDC 2013 | Introduction into Chef by Andy Hawkins
OSDC 2013 | Introduction into Chef by Andy Hawkins
 
Refactoring Legacy Code - true story
Refactoring Legacy Code - true storyRefactoring Legacy Code - true story
Refactoring Legacy Code - true story
 

Recently uploaded

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
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
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
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
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
 
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
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 

Recently uploaded (20)

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
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
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
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
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
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
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
 
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
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 

A walk through system layers