SlideShare a Scribd company logo
Dev2
Ops
Dmytro Dzubenko
About me
● 3 years in Interkassa
● 3 years at PayCore.io
● 10 years in production
● https://github.com/dzubchik
Project lifecycle
Local development
● Docker
● Docker-compose
● GNU make
● README.md
IDE
● Correct php version
● Hotkeys
● Necessary plugins
● IDE templates
● Refactoring
Xdebug
● Enable and use it
● Condition enable
● Breakpoint dependency
Hint: for debug from cli export PHP_IDE_CONFIG="serverName=server_name"
Code style
● PSR-1
● PSR-2
● PSR-12 in review
● Framework style guide
○ Symfony
○ Laravel
○ Zend
● Php-cs-fixer
● PHP_CodeSniffer
● EasyCodingStandard
Code analyzer
● Phpstan/phan/psalm
● Php Inspections (EA Extended)
Testing
● Cover at least critical parts
● Write functional tests
● Write tests after something is broken
API standard
● HAL
● JSON-LD
● Collection+JSON
● SIREN
● JSON API
● Hydra
● HATEOAS
JSON-API vs HAL
Api specification
● OpenAPI
● RAML
● ApiBlueprint
Database migration
● Make database dump accessible for CI
● Run migrations on CI
● Evolutionary Database Design
Error handling
● Sentry
● NewRelic
● Rollbar
Links
● https://habr.com/ru/company/southbridge/blog/323554/
● https://habr.com/ru/company/badoo/blog/426605/
● https://fwdays.com/event/php-fwdays-2018/review/static-analysis
● https://github.com/Symplify/EasyCodingStandard
● https://github.com/php-fig/fig-standards/blob/master/proposed/extended-codin
g-style-guide.md
● https://modeling-languages.com/modeling-web-api-comparing/
● https://martinfowler.com/articles/evodb.html

More Related Content

What's hot (20)

PDF
Let your REST API talk
hrabur
 
PDF
Building Command Line Tools with Golang
Takaaki Mizuno
 
PDF
202107 - Orion introduction - COSCUP
Ronald Hsu
 
PDF
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
 
PDF
Http2 on go1.6rc2
Jxck Jxck
 
PDF
Python Static Site Generator in Pelican
Gaurav Sehrawat
 
PDF
Flutter beers and pizza
Jon Durán
 
PDF
Crystal
Kamil Lelonek
 
PDF
Intro to Crystal Programming Language
Adler Hsieh
 
PDF
Golang from Scala developer’s perspective
Sveta Bozhko
 
PPTX
Wonders of Golang
Kartik Sura
 
PDF
Groovy Finesse
mzgubin
 
PDF
A brief intro to RubyMotion
Kamil Lelonek
 
PDF
Scala vs ruby
Kamil Lelonek
 
PPTX
Golang - Overview of Go (golang) Language
Aniruddha Chakrabarti
 
PPTX
Golang
Michael Blake
 
PDF
welcome to gopherlabs - why go (golang)?
sangam biradar
 
PDF
Opensource pnp container based waf
Varun konadagadapa
 
PDF
Creating an api from design to security.
Roan Brasil Monteiro
 
PDF
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
Nexus FrontierTech
 
Let your REST API talk
hrabur
 
Building Command Line Tools with Golang
Takaaki Mizuno
 
202107 - Orion introduction - COSCUP
Ronald Hsu
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
 
Http2 on go1.6rc2
Jxck Jxck
 
Python Static Site Generator in Pelican
Gaurav Sehrawat
 
Flutter beers and pizza
Jon Durán
 
Crystal
Kamil Lelonek
 
Intro to Crystal Programming Language
Adler Hsieh
 
Golang from Scala developer’s perspective
Sveta Bozhko
 
Wonders of Golang
Kartik Sura
 
Groovy Finesse
mzgubin
 
A brief intro to RubyMotion
Kamil Lelonek
 
Scala vs ruby
Kamil Lelonek
 
Golang - Overview of Go (golang) Language
Aniruddha Chakrabarti
 
welcome to gopherlabs - why go (golang)?
sangam biradar
 
Opensource pnp container based waf
Varun konadagadapa
 
Creating an api from design to security.
Roan Brasil Monteiro
 
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
Nexus FrontierTech
 

Similar to Dev + DevOps для PHP розробника (20)

PPTX
Dmytro Dziubenko "Developer's toolchain"
Fwdays
 
PDF
PHP Static Code Review
Damien Seguy
 
PDF
PHPcon Poland - Static Analysis of PHP Code – How the Heck did I write so man...
Rouven Weßling
 
PDF
Automated code audits
Damien Seguy
 
PDF
Review unknown code with static analysis php ipc 2018
Damien Seguy
 
PDF
Static Analysis of PHP Code – IPC Berlin 2016
Rouven Weßling
 
PDF
Preparing for the next php version
Damien Seguy
 
PDF
Review unknown code with static analysis
Damien Seguy
 
PDF
Best practices for crafting high quality PHP apps - PHP UK 2019
James Titcumb
 
PDF
Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020
Andrew Yatsenko
 
PDF
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)
James Titcumb
 
PDF
Crafting Quality PHP Applications (PHPkonf 2018)
James Titcumb
 
PDF
Crafting Quality PHP Applications (PHP Joburg Oct 2019)
James Titcumb
 
PDF
Preparing for the next PHP version (5.6)
Damien Seguy
 
PDF
Static analysis saved my code tonight
Damien Seguy
 
PDF
Best practices for crafting high quality PHP apps (PHP South Africa 2018)
James Titcumb
 
PDF
Best practices for crafting high quality PHP apps (ScotlandPHP 2018)
James Titcumb
 
PDF
Your code are my tests
Michelangelo van Dam
 
PDF
PHP 8: Process & Fixing Insanity
GeorgePeterBanyard
 
PDF
Review unknown code with static analysis php ce 2018
Damien Seguy
 
Dmytro Dziubenko "Developer's toolchain"
Fwdays
 
PHP Static Code Review
Damien Seguy
 
PHPcon Poland - Static Analysis of PHP Code – How the Heck did I write so man...
Rouven Weßling
 
Automated code audits
Damien Seguy
 
Review unknown code with static analysis php ipc 2018
Damien Seguy
 
Static Analysis of PHP Code – IPC Berlin 2016
Rouven Weßling
 
Preparing for the next php version
Damien Seguy
 
Review unknown code with static analysis
Damien Seguy
 
Best practices for crafting high quality PHP apps - PHP UK 2019
James Titcumb
 
Code Quality Control in a PHP project. GeekTalks, Cherkassy 2020
Andrew Yatsenko
 
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)
James Titcumb
 
Crafting Quality PHP Applications (PHPkonf 2018)
James Titcumb
 
Crafting Quality PHP Applications (PHP Joburg Oct 2019)
James Titcumb
 
Preparing for the next PHP version (5.6)
Damien Seguy
 
Static analysis saved my code tonight
Damien Seguy
 
Best practices for crafting high quality PHP apps (PHP South Africa 2018)
James Titcumb
 
Best practices for crafting high quality PHP apps (ScotlandPHP 2018)
James Titcumb
 
Your code are my tests
Michelangelo van Dam
 
PHP 8: Process & Fixing Insanity
GeorgePeterBanyard
 
Review unknown code with static analysis php ce 2018
Damien Seguy
 
Ad

Recently uploaded (20)

DOCX
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
PPTX
Softuni - Psychology of entrepreneurship
Kalin Karakehayov
 
PDF
𝐁𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓
hokimamad0
 
PDF
Azure_DevOps introduction for CI/CD and Agile
henrymails
 
PDF
Build Fast, Scale Faster: Milvus vs. Zilliz Cloud for Production-Ready AI
Zilliz
 
PPTX
一比一原版(SUNY-Albany毕业证)纽约州立大学奥尔巴尼分校毕业证如何办理
Taqyea
 
PPT
introductio to computers by arthur janry
RamananMuthukrishnan
 
PPTX
Lec15_Mutability Immutability-converted.pptx
khanjahanzaib1
 
PDF
The-Hidden-Dangers-of-Skipping-Penetration-Testing.pdf.pdf
naksh4thra
 
PPTX
PM200.pptxghjgfhjghjghjghjghjghjghjghjghjghj
breadpaan921
 
PPTX
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
PPT
introduction to networking with basics coverage
RamananMuthukrishnan
 
PDF
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
PPTX
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
PDF
Cleaning up your RPKI invalids, presented at PacNOG 35
APNIC
 
PPTX
04 Output 1 Instruments & Tools (3).pptx
GEDYIONGebre
 
PPTX
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
PDF
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
PPTX
sajflsajfljsdfljslfjslfsdfas;fdsfksadfjlsdflkjslgfs;lfjlsajfl;sajfasfd.pptx
theknightme
 
PPT
Agilent Optoelectronic Solutions for Mobile Application
andreashenniger2
 
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
Softuni - Psychology of entrepreneurship
Kalin Karakehayov
 
𝐁𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓
hokimamad0
 
Azure_DevOps introduction for CI/CD and Agile
henrymails
 
Build Fast, Scale Faster: Milvus vs. Zilliz Cloud for Production-Ready AI
Zilliz
 
一比一原版(SUNY-Albany毕业证)纽约州立大学奥尔巴尼分校毕业证如何办理
Taqyea
 
introductio to computers by arthur janry
RamananMuthukrishnan
 
Lec15_Mutability Immutability-converted.pptx
khanjahanzaib1
 
The-Hidden-Dangers-of-Skipping-Penetration-Testing.pdf.pdf
naksh4thra
 
PM200.pptxghjgfhjghjghjghjghjghjghjghjghjghj
breadpaan921
 
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
introduction to networking with basics coverage
RamananMuthukrishnan
 
Apple_Environmental_Progress_Report_2025.pdf
yiukwong
 
L1A Season 1 ENGLISH made by A hegy fixed
toszolder91
 
Cleaning up your RPKI invalids, presented at PacNOG 35
APNIC
 
04 Output 1 Instruments & Tools (3).pptx
GEDYIONGebre
 
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
AI_MOD_1.pdf artificial intelligence notes
shreyarrce
 
sajflsajfljsdfljslfjslfsdfas;fdsfksadfjlsdflkjslgfs;lfjlsajfl;sajfasfd.pptx
theknightme
 
Agilent Optoelectronic Solutions for Mobile Application
andreashenniger2
 
Ad

Dev + DevOps для PHP розробника