Suche senden
Hochladen
VersionPress - The Dark Side
•
Als PPTX, PDF herunterladen
•
0 gefällt mir
•
647 views
Jan Voracek
Folgen
Difficulties of VersionPress and how we solve them.
Weniger lesen
Mehr lesen
Software
Melden
Teilen
Melden
Teilen
1 von 24
Jetzt herunterladen
Empfohlen
Building an editable, versionized LOD service for library data
Building an editable, versionized LOD service for library data
Felix Ostrowski
Internet and Web Technology (CLASS-2) [HTTP & HTML]
Internet and Web Technology (CLASS-2) [HTTP & HTML]
Ayes Chinmay
Practically Normal: An Introduction to Normalization
Practically Normal: An Introduction to Normalization
Ed Leighton-Dick
Nahlédněte za oponu VersionPressu
Nahlédněte za oponu VersionPressu
Jan Voracek
Testing
Testing
Jan Voracek
The Rise of NoSQL
The Rise of NoSQL
Arnd Kleinbeck
Fotolog.Com.Mashraqi Scaling
Fotolog.Com.Mashraqi Scaling
Frank Cai
MongoDB Europe 2016 - The Rise of the Data Lake
MongoDB Europe 2016 - The Rise of the Data Lake
MongoDB
Empfohlen
Building an editable, versionized LOD service for library data
Building an editable, versionized LOD service for library data
Felix Ostrowski
Internet and Web Technology (CLASS-2) [HTTP & HTML]
Internet and Web Technology (CLASS-2) [HTTP & HTML]
Ayes Chinmay
Practically Normal: An Introduction to Normalization
Practically Normal: An Introduction to Normalization
Ed Leighton-Dick
Nahlédněte za oponu VersionPressu
Nahlédněte za oponu VersionPressu
Jan Voracek
Testing
Testing
Jan Voracek
The Rise of NoSQL
The Rise of NoSQL
Arnd Kleinbeck
Fotolog.Com.Mashraqi Scaling
Fotolog.Com.Mashraqi Scaling
Frank Cai
MongoDB Europe 2016 - The Rise of the Data Lake
MongoDB Europe 2016 - The Rise of the Data Lake
MongoDB
Recommendation Engines with Ruby and Redis
Recommendation Engines with Ruby and Redis
evanlight
Tutorial Expert How-To - Custom properties
Tutorial Expert How-To - Custom properties
PascalDesmarets1
Introduction to Redis
Introduction to Redis
François-Guillaume Ribreau
BEM for Javascript at CampJS III
BEM for Javascript at CampJS III
Yandex
L’architettura di Classe Enterprise di Nuova Generazione
L’architettura di Classe Enterprise di Nuova Generazione
MongoDB
Advanced front end debugging with ms edge and ms tools
Advanced front end debugging with ms edge and ms tools
Chris Love
Advanced Schema Design Patterns
Advanced Schema Design Patterns
MongoDB
扩展世界上最大的图片Blog社区
扩展世界上最大的图片Blog社区
yiditushe
Fotolog: Scaling the World's Largest Photo Blogging Community
Fotolog: Scaling the World's Largest Photo Blogging Community
farhan "Frank" mashraqi
L’architettura di classe enterprise di nuova generazione
L’architettura di classe enterprise di nuova generazione
MongoDB
MongodB Internals
MongodB Internals
Norberto Leite
Learn Learn how to build your mobile back-end with MongoDB
Learn Learn how to build your mobile back-end with MongoDB
Marakana Inc.
mariadb.pptx
mariadb.pptx
NelsonZaidi
How to take advantage of scale out graph in Azure Cosmos DB
How to take advantage of scale out graph in Azure Cosmos DB
Microsoft Tech Community
maksym vlasov - culture of git as roots of your ci
maksym vlasov - culture of git as roots of your ci
Dariia Seimova
Socialite, the Open Source Status Feed
Socialite, the Open Source Status Feed
MongoDB
Do it in code! A guide to creating a custom site structure plugin in WordPress.
Do it in code! A guide to creating a custom site structure plugin in WordPress.
Peter Hebert
Understanding indices
Understanding indices
Richard Douglas
How to generate customized java 8 code from your database
How to generate customized java 8 code from your database
Speedment, Inc.
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
Speedment, Inc.
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
masabamasaba
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
kalichargn70th171
Weitere ähnliche Inhalte
Ähnlich wie VersionPress - The Dark Side
Recommendation Engines with Ruby and Redis
Recommendation Engines with Ruby and Redis
evanlight
Tutorial Expert How-To - Custom properties
Tutorial Expert How-To - Custom properties
PascalDesmarets1
Introduction to Redis
Introduction to Redis
François-Guillaume Ribreau
BEM for Javascript at CampJS III
BEM for Javascript at CampJS III
Yandex
L’architettura di Classe Enterprise di Nuova Generazione
L’architettura di Classe Enterprise di Nuova Generazione
MongoDB
Advanced front end debugging with ms edge and ms tools
Advanced front end debugging with ms edge and ms tools
Chris Love
Advanced Schema Design Patterns
Advanced Schema Design Patterns
MongoDB
扩展世界上最大的图片Blog社区
扩展世界上最大的图片Blog社区
yiditushe
Fotolog: Scaling the World's Largest Photo Blogging Community
Fotolog: Scaling the World's Largest Photo Blogging Community
farhan "Frank" mashraqi
L’architettura di classe enterprise di nuova generazione
L’architettura di classe enterprise di nuova generazione
MongoDB
MongodB Internals
MongodB Internals
Norberto Leite
Learn Learn how to build your mobile back-end with MongoDB
Learn Learn how to build your mobile back-end with MongoDB
Marakana Inc.
mariadb.pptx
mariadb.pptx
NelsonZaidi
How to take advantage of scale out graph in Azure Cosmos DB
How to take advantage of scale out graph in Azure Cosmos DB
Microsoft Tech Community
maksym vlasov - culture of git as roots of your ci
maksym vlasov - culture of git as roots of your ci
Dariia Seimova
Socialite, the Open Source Status Feed
Socialite, the Open Source Status Feed
MongoDB
Do it in code! A guide to creating a custom site structure plugin in WordPress.
Do it in code! A guide to creating a custom site structure plugin in WordPress.
Peter Hebert
Understanding indices
Understanding indices
Richard Douglas
How to generate customized java 8 code from your database
How to generate customized java 8 code from your database
Speedment, Inc.
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
Speedment, Inc.
Ähnlich wie VersionPress - The Dark Side
(20)
Recommendation Engines with Ruby and Redis
Recommendation Engines with Ruby and Redis
Tutorial Expert How-To - Custom properties
Tutorial Expert How-To - Custom properties
Introduction to Redis
Introduction to Redis
BEM for Javascript at CampJS III
BEM for Javascript at CampJS III
L’architettura di Classe Enterprise di Nuova Generazione
L’architettura di Classe Enterprise di Nuova Generazione
Advanced front end debugging with ms edge and ms tools
Advanced front end debugging with ms edge and ms tools
Advanced Schema Design Patterns
Advanced Schema Design Patterns
扩展世界上最大的图片Blog社区
扩展世界上最大的图片Blog社区
Fotolog: Scaling the World's Largest Photo Blogging Community
Fotolog: Scaling the World's Largest Photo Blogging Community
L’architettura di classe enterprise di nuova generazione
L’architettura di classe enterprise di nuova generazione
MongodB Internals
MongodB Internals
Learn Learn how to build your mobile back-end with MongoDB
Learn Learn how to build your mobile back-end with MongoDB
mariadb.pptx
mariadb.pptx
How to take advantage of scale out graph in Azure Cosmos DB
How to take advantage of scale out graph in Azure Cosmos DB
maksym vlasov - culture of git as roots of your ci
maksym vlasov - culture of git as roots of your ci
Socialite, the Open Source Status Feed
Socialite, the Open Source Status Feed
Do it in code! A guide to creating a custom site structure plugin in WordPress.
Do it in code! A guide to creating a custom site structure plugin in WordPress.
Understanding indices
Understanding indices
How to generate customized java 8 code from your database
How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
Kürzlich hochgeladen
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
masabamasaba
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
kalichargn70th171
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
WSO2
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
masabamasaba
Software Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
Arshad QA
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
HimanshiGarg82
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2
tonesoftg
tonesoftg
lanshi9
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
SelfMade bd
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
Presentation.STUDIO
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
Papp Krisztián
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
masabamasaba
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
masabamasaba
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
masabamasaba
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
Kürzlich hochgeladen
(20)
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
Software Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
tonesoftg
tonesoftg
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VersionPress - The Dark Side
1.
VersionPress The dark side
2.
Why is WordPress hard? VersionPress
is not an exception – quite the opposite
3.
Biggest Challenges • GUIDs •
Lack of foreign keys • Poor database design • Tracking all changes • Format for storing data in Git
4.
GUIDs
5.
GUIDs
6.
Foreign keys
7.
Foreign keys
8.
Foreign keys post: table: posts id:
ID references: post_author: user post_parent: post mn-references: term_relationships.term_taxonomy_id: term_taxonomy user: table: users id: ID
9.
Foreign keys post: table: posts id:
ID references: post_author: user post_parent: post mn-references: term_relationships.term_taxonomy_id: term_taxonomy user: table: users id: ID
10.
Foreign keys
11.
Foreign keys
12.
Foreign keys postmeta: id: meta_id parent-reference:
post_id references: post_id: post value-references: meta_key@meta_value: _thumbnail_id: post
13.
Foreign keys
14.
Foreign keys
15.
Poor DB design “12
tables ought to be enough for anybody”
16.
Tracking all changes
17.
Format [8CFC6D1208DC4D0F877039A3B8300366] post_date = "2016-02-11
17:29:03" post_date_gmt = "2016-02-11 17:29:03" post_content = "live" post_content_filtered = “" post_title = "Added on LIVE" post_excerpt = "" post_status = "publish" post_type = "post" comment_status = "open" ping_status = "open" post_password = "" post_name = "added-on-live" to_ping = "" pinged = "" menu_order = 0 post_mime_type = "" guid = "http://3D13C49A-BE86-4C8B-B4ED-D83222FFB296" vp_post_author = "528E14A1AAD04CC08121DD631B2F6591" vp_post_parent = 0 vp_term_taxonomy[0] = "752CC32F4AF842A79BEF42454E130743"
18.
GUI • React +
WP-API • Independent app consuming REST API
19.
GUI – WP-API register_rest_route($namespace,
'/commits', array( 'methods' => WP_REST_Server::READABLE, 'callback' => array($this, 'getCommits'), 'args' => array( 'page' => array( 'default' => '0' ) ), 'permission_callback' => array($this, 'checkPermissions') )); register_rest_route($namespace, '/undo', array( 'methods' => WP_REST_Server::CREATABLE, 'callback' => array($this, 'undoCommit'), 'args' => array( 'commit' => array( 'required' => true ) ), 'permission_callback' => array($this, 'checkPermissions') ));
20.
GUI – data
fetch WpApi .get('commits') .query({page: page}) .on('progress', (e) => progressBar.progress(e.percent)) .end((err: any, res: request.Response) => { if (err) { this.setState({ commits: [], message: HomePage.getErrorMessage(res), loading: false, displayUpdateNotice: false }); } else { this.setState({ pages: res.body.pages.map(c => c + 1), commits: res.body.commits as Commit[], message: null, loading: false, displayUpdateNotice: false }); this.checkUpdate(); } });
21.
WordPress + Clean
Code Oxymoron?
22.
WordPress + Clean
Code Separate your code from WordPress
23.
WordPress + Clean
Code Thin layer between WP and your code • hooks, • global variables, • WP functions
24.
“All great changes
are preceded by chaos.” — Deepak Chopra
Jetzt herunterladen