SlideShare une entreprise Scribd logo
EnterpriseCakeEnterpriseCake
JamesWattsJamesWatts
james.watts@cakephp.org
Cake Development Corporation
whoamiwhoami
/ JamesWatts/ JamesWatts (@_JAMESWATTS_)(@_JAMESWATTS_)
/ InvolvedinOpenSourcesince2008/ InvolvedinOpenSourcesince2008
/ Using PHPforthelast 10years/ Using PHPforthelast 10years
/ Corememberof CakePHP/ Corememberof CakePHP
/ Organizerof CakeFest/ Organizerof CakeFest
/ Teamleadat CakeDC/ Teamleadat CakeDC
/ Authorof XHTTP andDocMLspecs/ Authorof XHTTP andDocMLspecs
/ CakePHP2 ApplicationCookbook/ CakePHP2 ApplicationCookbook
Cake Development Corporation
Cake Development Corporation
TheoryTheory
Cake Development Corporation
WriteLessCodeWriteLessCode
AndWriteFewerQueriesAndWriteFewerQueries
Cake Development Corporation
Writinglesscodemeans...Writinglesscodemeans...
> Reducinglegacytomaintain> Reducinglegacytomaintain
> Introducingfeweredgecases> Introducingfeweredgecases
> Lessopportunityforhumanerror> Lessopportunityforhumanerror
> Fasterdevelopment efforts> Fasterdevelopment efforts
> Lesscodetotest andcover> Lesscodetotest andcover
> Enjoyment factorincreases!> Enjoyment factorincreases!
Cake Development Corporation
CakePHPCakePHP PromotesPromotes LessCodeLessCode
RapidApplicationDevelopmentRapidApplicationDevelopment
Cake Development Corporation
ConventionOverConfigurationConventionOverConfiguration
Cake Development Corporation
Don'tWorkAroundCakePHPDon'tWorkAroundCakePHP
MakeFullUseOfFrameworkConventionsMakeFullUseOfFrameworkConventions
Cake Development Corporation
Don'tReinventWheelsDon'tReinventWheels
BeAwareOfTheBoredomFactor,AndTheDesireToHack!BeAwareOfTheBoredomFactor,AndTheDesireToHack!
Cake Development Corporation
KeepItSimpleKeepItSimple
CodeIsSimpleUntilCodeIsSimpleUntil YouYou MakeItComplicatedMakeItComplicated
Cake Development Corporation
Don'tRepeatRepeatYourselfDon'tRepeatRepeatYourself
TakeFullAdvantageOfComponents,BehaviorsAndHelpersTakeFullAdvantageOfComponents,BehaviorsAndHelpers
Cake Development Corporation
DesignUp-FrontDesignUp-Front
FollowYourBusinessObjectives,NotYourTechnicalSolutionFollowYourBusinessObjectives,NotYourTechnicalSolution
Cake Development Corporation
TreatYourCodeAsProductTreatYourCodeAsProduct
WriteProductionReadyCodeAsIfItWereForSomeoneElseWriteProductionReadyCodeAsIfItWereForSomeoneElse
Cake Development Corporation
Command/QuerySeparationCommand/QuerySeparation
SeparateactionsthatchangestatefromthosewhichconsultstateSeparateactionsthatchangestatefromthosewhichconsultstate
Cake Development Corporation
BuildSOLIDCodeBuildSOLIDCode
ApplyThe“FirstFive”DesignPrinciplesToYourCodeApplyThe“FirstFive”DesignPrinciplesToYourCode
Cake Development Corporation
S.O.L.I.DS.O.L.I.D
> SingleResponsibilityPrincipal> SingleResponsibilityPrincipal
> Open/ClosedPrincipal> Open/ClosedPrincipal
> LiskovSubstitutionPrinciple> LiskovSubstitutionPrinciple
> InterfaceSegregationPrinciple> InterfaceSegregationPrinciple
> DependencyInversionPrinciple> DependencyInversionPrinciple
Cake Development Corporation
GetAGRASPOfYourCodeGetAGRASPOfYourCode
General Responsibility AssignmentSoftwarePatternsGeneral Responsibility AssignmentSoftwarePatterns
Cake Development Corporation
G.R.A.S.PG.R.A.S.P
> ControllerPattern> ControllerPattern
> CreatorPattern> CreatorPattern
> HighCohesion> HighCohesion
> Indirection Pattern> Indirection Pattern
> ExpertPrincipal> ExpertPrincipal
> LowCoupling> LowCoupling
> Polymorphism> Polymorphism
> ProtectedVariations> ProtectedVariations
> PureFabrication> PureFabrication
Cake Development Corporation
Don'tBeSTUPID!Don'tBeSTUPID!
AvoidBadPracticesWhichWillWasteYourTimeLaterAvoidBadPracticesWhichWillWasteYourTimeLater
Cake Development Corporation
S.T.U.P.I.DS.T.U.P.I.D
> Singleton> Singleton
> Tight Coupling> Tight Coupling
> Untestability> Untestability
> PrematureOptimization> PrematureOptimization
> IndescriptiveNaming> IndescriptiveNaming
> Duplication> Duplication
Cake Development Corporation
KeepThingsInContextKeepThingsInContext
TheLawOfDemeter,Don'tTalkToStrangersTheLawOfDemeter,Don'tTalkToStrangers
Cake Development Corporation
DoesItScale?DoesItScale?
IgnoreThePerformanceBenchmarksIgnoreThePerformanceBenchmarks
Cake Development Corporation
Scalemeansmanythings...Scalemeansmanythings...
> Dataprocessing> Dataprocessing
> Requestconcurrency> Requestconcurrency
> Cachingstrategy> Cachingstrategy
> Storageengine> Storageengine
> Development effort> Development effort
> Maintenancecost> Maintenancecost
Cake Development Corporation
ThinkAboutYourDataThinkAboutYourData
YourDatabaseSchema IsYourAchillesHeelYourDatabaseSchema IsYourAchillesHeel
Cake Development Corporation
ThinkAheadWithYourDataThinkAheadWithYourData
AvoidStaleData,UseQueuing,CronTasksAnd Data WarehousingAvoidStaleData,UseQueuing,CronTasksAnd Data Warehousing
Cake Development Corporation
AvoidTheHypeAvoidTheHype
Don'tFollowTheHerd,BeGuidedOnlyBy ResultsDon'tFollowTheHerd,BeGuidedOnlyBy Results
Cake Development Corporation
RespectTheProfessionRespectTheProfession
TheCheaperAlternativeIsAlwaysMoreExpensiveLaterTheCheaperAlternativeIsAlwaysMoreExpensiveLater
Cake Development Corporation
ReduceTechnicalDebtReduceTechnicalDebt
BeRealisticAboutCornersYou Cut AndShortcutsYou TakeBeRealisticAboutCornersYou Cut AndShortcutsYou Take
Cake Development Corporation
BudgetConstraintsAreRealBudgetConstraintsAreReal
ContemplateFutureDealingOfAccumulated DebtContemplateFutureDealingOfAccumulated Debt
Cake Development Corporation
VersionControlVersionControl
ThereIsThereIs NONO ExcuseToNotVersion YourSourceCodeExcuseToNotVersion YourSourceCode
Cake Development Corporation
Test,Test,TestTest,Test,Test
ReduceCoverageReduceCoverage BeforeBefore YouAvoidTestingAnythingYouAvoidTestingAnything
Cake Development Corporation
PracticePractice
Cake Development Corporation
CakeDCGitWorkflowCakeDCGitWorkflow
http://cakedc.com/git-workflowhttp://cakedc.com/git-workflow
Cake Development Corporation
GitDevelopmentStrategyGitDevelopmentStrategy
Cake Development Corporation
Stability,Quality& ConsistencyStability,Quality& Consistency
Cake Development Corporation
Debug KitDebug Kit
https://github.com/cakephp/debug_kithttps://github.com/cakephp/debug_kit
Cake Development Corporation
CakeDCMigrationsCakeDCMigrations
https://github.com/CakeDC/migrationshttps://github.com/CakeDC/migrations
Cake Development Corporation
CakeDependencyCakeDependency
https://github.com/jameswatts/cake-dependencyhttps://github.com/jameswatts/cake-dependency
Cake Development Corporation
DIFeatures...DIFeatures...
> Registerclasses,objectsorcallbacks> Registerclasses,objectsorcallbacks
> ConstructorandSetterinjection> ConstructorandSetterinjection
> Lazyloading> Lazyloading
> Dependencyscopes> Dependencyscopes
> Observers> Observers
Cake Development Corporation
Registera ServiceRegistera Service
Di::add('Foo', [
'className' => 'Example',
'classPath' => 'Plugin.Path'
]);
Di::add('Foo', $object);
Di::add('Foo', function() use ($something) {
// return service instance
});
Cake Development Corporation
ConstructorAndSetterInjectionConstructorAndSetterInjection
Di::add('Foo', [
'className' => 'Example',
'classPath' => 'Plugin.Path',
'params' => [
'bar' => Di::load('Bar')
]
]);
Di::add('Foo', [
'className' => 'Example',
'classPath' => 'Plugin.Path',
'setters' => [
'setBar' => [
'bar' => Di::load('Bar')
]
]
]);
Cake Development Corporation
UsingObserversUsingObservers
Di::observe([
'MyInterface',
'AbstractClass'
], [
'setters' => [
'setFactory' => Di::load('Factory')
]
]);
Cake Development Corporation
CakeToolkitCakeToolkit
https://github.com/jameswatts/cake-toolkithttps://github.com/jameswatts/cake-toolkit
Cake Development Corporation
CTKFeatures...CTKFeatures...
> Object-orienteddesign> Object-orienteddesign
> Abstractionandencapsulation> Abstractionandencapsulation
> Separationofconcerns> Separationofconcerns
> Extensiblearchitecture> Extensiblearchitecture
> Plug andplay> Plug andplay
> Legacysupport> Legacysupport
Cake Development Corporation
Object-Oriented ViewsObject-Oriented Views
class IndexView extends CtkView {
public $factories = ['Ctk.Html', 'Ctk.Js'];
public function build() {
// create a HTML div
$div = $this->Html->Div();
// create a HTML button
$button = $this->Html->Button([
'value' => __('Click Me')
]);
// add the button to the div
$div->add($button);
// add the div to the view
$this->add($div);
}
}
Cake Development Corporation
ViewExtensibilityViewExtensibility
class IndexView extends CtkView {
public $factories = ['Ctk.Html', 'Ctk.Js'];
public function build() {
$div = $this->Html->Div();
$div->add($this->buildButton());
$this->add($div);
}
public function buildButton($value) {
return $this->Html->Button([
'value' => __($value)
]);
}
}
Cake Development Corporation
AttachingEventsAttachingEvents
// create a HTML button
$button = $this->Html->Button([
'value' => __('Click Me')
]);
// bind an event to the button
$button->bind('click', $this->Js->Alert([
'text' => __('Hello World')
]));
Cake Development Corporation
ReusingObjectsInLegacyViewsReusingObjectsInLegacyViews
<div id=”example”>
<?php
echo $this->Factory->Html->Span([
'text' => __('Hello World')
]);
?>
</div>
Cake Development Corporation
CakeMarkupLanguageCakeMarkupLanguage
https://github.com/jameswatts/cake-markup-languagehttps://github.com/jameswatts/cake-markup-language
Cake Development Corporation
CakeMLFeatures...CakeMLFeatures...
> Familiarsyntax> Familiarsyntax
> Readyfordesigners> Readyfordesigners
> Simpletemplating> Simpletemplating
> Extensiblebydesign> Extensiblebydesign
> Plug andplay> Plug andplay
> Legacysupport> Legacysupport
Cake Development Corporation
MarkupMarkup
<div id="example">
<cake:out value="Hello World" />
</div>
<div id="%{foo}">
<cake:out value="#{Hola Mundo}" />
</div>
<cake:out value="%{foo}" default="Nothing here" />
Cake Development Corporation
ControlStructuresControlStructures
<php:if expr="!empty(%{foo})">
<cake:out value="%{foo}" />
<php:else />
<cake:out value="Oops, no value" />
</php:if>
<php:foreach var="products" default="No products found">
<cake:out value="%{COUNT}. %{KEY} = %{VALUE}" />
</php:foreach>
Cake Development Corporation
FrameworkFeaturesFrameworkFeatures
<cake:link value="#{Blog}" url="['controller' => 'Posts']" />
<cake:form model="Post" options="['action' => 'add']">
<cake:input field="Post.title" />
</cake:form>
<cake:helper name="Foo" call="run" args="['bar', 123]" />
<cake:element name="sidebar" options="['foo' => %{bar}]" />
Cake Development Corporation
ThanksThanks
Cake Development Corporation
CakePHP2ApplicationCookbookCakePHP2ApplicationCookbook
https://packtpub.com/web-development/cakephp-2-application-cookbookhttps://packtpub.com/web-development/cakephp-2-application-cookbook

Contenu connexe

Similaire à Enterprise Cake

Development is a Piece of Cake
Development is a Piece of CakeDevelopment is a Piece of Cake
Development is a Piece of Cake
James Watts
 
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
Rudy Jahchan
 
CakePHP Fundamentals - 1.2 @ OCPHP
CakePHP Fundamentals - 1.2 @ OCPHPCakePHP Fundamentals - 1.2 @ OCPHP
CakePHP Fundamentals - 1.2 @ OCPHP
mentos
 
Cake Php 1.2 (Ocphp)
Cake Php 1.2 (Ocphp)Cake Php 1.2 (Ocphp)
Cake Php 1.2 (Ocphp)
guest193fe1
 
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | EdurekaDevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
Edureka!
 
Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...
Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...
Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...
Peter Gallagher
 
Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...
Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...
Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...
Peter Gallagher
 
Google Page Insights and Magento 2 — Sergey Nezbritskiy | Magento Meetup Onli...
Google Page Insights and Magento 2 — Sergey Nezbritskiy | Magento Meetup Onli...Google Page Insights and Magento 2 — Sergey Nezbritskiy | Magento Meetup Onli...
Google Page Insights and Magento 2 — Sergey Nezbritskiy | Magento Meetup Onli...
Magecom UK Limited
 
Chef infrastructure as code - paris.rb
Chef infrastructure as code - paris.rbChef infrastructure as code - paris.rb
Chef infrastructure as code - paris.rb
Nicolas Ledez
 
Sustainable Agile Development
Sustainable Agile DevelopmentSustainable Agile Development
Sustainable Agile Development
Gabriele Lana
 
Bringing JAMStack to the Enterprise
Bringing JAMStack to the EnterpriseBringing JAMStack to the Enterprise
Bringing JAMStack to the Enterprise
C4Media
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDS
Frederic Descamps
 
What's New in JHipsterLand - Devoxx Poland 2017
What's New in JHipsterLand - Devoxx Poland 2017What's New in JHipsterLand - Devoxx Poland 2017
What's New in JHipsterLand - Devoxx Poland 2017
Matt Raible
 
Big Data Seminar: Analytics, Hadoop, Map Reduce, Mongo and other great stuff
Big Data Seminar: Analytics, Hadoop, Map Reduce, Mongo and other great stuffBig Data Seminar: Analytics, Hadoop, Map Reduce, Mongo and other great stuff
Big Data Seminar: Analytics, Hadoop, Map Reduce, Mongo and other great stuff
Moshe Kaplan
 
Code Generation in Magento 2
Code Generation in Magento 2Code Generation in Magento 2
Code Generation in Magento 2
Sergii Shymko
 
Release management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRARelease management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRA
Yaroslav Serhieiev
 
[Flutter] 來體驗 bloc 小方塊的神奇魔法 @Devfest 2022
[Flutter] 來體驗 bloc 小方塊的神奇魔法 @Devfest 2022[Flutter] 來體驗 bloc 小方塊的神奇魔法 @Devfest 2022
[Flutter] 來體驗 bloc 小方塊的神奇魔法 @Devfest 2022
Johnny Sung
 
HTML5 Intro
HTML5 IntroHTML5 Intro
HTML5 Intro
PavingWays Ltd.
 
The vJUG talk about jOOQ: Get Back in Control of Your SQL
The vJUG talk about jOOQ: Get Back in Control of Your SQLThe vJUG talk about jOOQ: Get Back in Control of Your SQL
The vJUG talk about jOOQ: Get Back in Control of Your SQL
Lukas Eder
 
Internet Explorer 8 Developer Overview
Internet Explorer 8 Developer OverviewInternet Explorer 8 Developer Overview
Internet Explorer 8 Developer Overview
Dave Bost
 

Similaire à Enterprise Cake (20)

Development is a Piece of Cake
Development is a Piece of CakeDevelopment is a Piece of Cake
Development is a Piece of Cake
 
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
 
CakePHP Fundamentals - 1.2 @ OCPHP
CakePHP Fundamentals - 1.2 @ OCPHPCakePHP Fundamentals - 1.2 @ OCPHP
CakePHP Fundamentals - 1.2 @ OCPHP
 
Cake Php 1.2 (Ocphp)
Cake Php 1.2 (Ocphp)Cake Php 1.2 (Ocphp)
Cake Php 1.2 (Ocphp)
 
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | EdurekaDevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
DevOps Interview Questions and Answers 2019 | DevOps Tutorial | Edureka
 
Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...
Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...
Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...
 
Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...
Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...
Deploying Web Apps using Config and Infrastructure as Code with Octopus Deplo...
 
Google Page Insights and Magento 2 — Sergey Nezbritskiy | Magento Meetup Onli...
Google Page Insights and Magento 2 — Sergey Nezbritskiy | Magento Meetup Onli...Google Page Insights and Magento 2 — Sergey Nezbritskiy | Magento Meetup Onli...
Google Page Insights and Magento 2 — Sergey Nezbritskiy | Magento Meetup Onli...
 
Chef infrastructure as code - paris.rb
Chef infrastructure as code - paris.rbChef infrastructure as code - paris.rb
Chef infrastructure as code - paris.rb
 
Sustainable Agile Development
Sustainable Agile DevelopmentSustainable Agile Development
Sustainable Agile Development
 
Bringing JAMStack to the Enterprise
Bringing JAMStack to the EnterpriseBringing JAMStack to the Enterprise
Bringing JAMStack to the Enterprise
 
Deploying Magento on OCI with MDS
Deploying Magento on OCI with MDSDeploying Magento on OCI with MDS
Deploying Magento on OCI with MDS
 
What's New in JHipsterLand - Devoxx Poland 2017
What's New in JHipsterLand - Devoxx Poland 2017What's New in JHipsterLand - Devoxx Poland 2017
What's New in JHipsterLand - Devoxx Poland 2017
 
Big Data Seminar: Analytics, Hadoop, Map Reduce, Mongo and other great stuff
Big Data Seminar: Analytics, Hadoop, Map Reduce, Mongo and other great stuffBig Data Seminar: Analytics, Hadoop, Map Reduce, Mongo and other great stuff
Big Data Seminar: Analytics, Hadoop, Map Reduce, Mongo and other great stuff
 
Code Generation in Magento 2
Code Generation in Magento 2Code Generation in Magento 2
Code Generation in Magento 2
 
Release management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRARelease management with NuGet/Chocolatey/JIRA
Release management with NuGet/Chocolatey/JIRA
 
[Flutter] 來體驗 bloc 小方塊的神奇魔法 @Devfest 2022
[Flutter] 來體驗 bloc 小方塊的神奇魔法 @Devfest 2022[Flutter] 來體驗 bloc 小方塊的神奇魔法 @Devfest 2022
[Flutter] 來體驗 bloc 小方塊的神奇魔法 @Devfest 2022
 
HTML5 Intro
HTML5 IntroHTML5 Intro
HTML5 Intro
 
The vJUG talk about jOOQ: Get Back in Control of Your SQL
The vJUG talk about jOOQ: Get Back in Control of Your SQLThe vJUG talk about jOOQ: Get Back in Control of Your SQL
The vJUG talk about jOOQ: Get Back in Control of Your SQL
 
Internet Explorer 8 Developer Overview
Internet Explorer 8 Developer OverviewInternet Explorer 8 Developer Overview
Internet Explorer 8 Developer Overview
 

Dernier

Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
Alberto Brandolini
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
Peter Muessig
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
Quickdice ERP
 
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
ssuserad3af4
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 

Dernier (20)

Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Modelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - AmsterdamModelling Up - DDDEurope 2024 - Amsterdam
Modelling Up - DDDEurope 2024 - Amsterdam
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
UI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design SystemUI5con 2024 - Bring Your Own Design System
UI5con 2024 - Bring Your Own Design System
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesE-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian Companies
 
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
316895207-SAP-Oil-and-Gas-Downstream-Training.pptx
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 

Enterprise Cake