SlideShare a Scribd company logo
Nicola Pietroluongo @niklongstone
THE REVIEWER
CHECKLIST
How to be a better reviewer
Nicola Pietroluongo @niklongstone
“ I’m really good at stuff until people watch me
do that stuff.
-Nerd Anatomy
Nicola Pietroluongo @niklongstone
Nicola Pietroluongo
@niklongstone
▪ Lead developer/Solution architect
▪ Tech article writer
▪ Open Source contributor
▪ Author of “Learning PHP7” by Packt Publishing
▪ +10y of PHP programming
▪ Amazon Alexa skill challenge award winner
Nicola Pietroluongo @niklongstone
Main areas
What we are going to cover
▪ Introduction to code review
▪ The checklist
▪ Tools and conclusions
Nicola Pietroluongo @niklongstone
1.
What code review is
Introduction to code review, things to do before
Nicola Pietroluongo @niklongstone
“ Code review is systematic examination of
computer source code. It is intended to find
mistakes overlooked in the initial development
phase, improving the overall quality of team
and software.
-Wikipedia
Nicola Pietroluongo @niklongstone
TYPES OF CODE REVIEW
Nicola Pietroluongo @niklongstone
Formal
Inspection
/
Fagan
Inspection Meeting
http://www.mfagan.com/pdfs/software_pioneers.pdf
https://www.cs.umd.edu/class/spring2005/cmsc838p/VandV/fagan.pdf
OverviewPlanning Preparation Rework
Nicola Pietroluongo @niklongstone
Over-the-
shoulder
Nicola Pietroluongo @niklongstone
Pull
request
Nicola Pietroluongo @niklongstone
Pair
programming
Nicola Pietroluongo @niklongstone
FeedbackSpot the error Fix
TIME
Key points
Nicola Pietroluongo @niklongstone
Pair
Programming
TIME
Feedback
Spot the
error
Fix
Nicola Pietroluongo @niklongstone
GENERAL RULES
Nicola Pietroluongo @niklongstone
Share
Findings
Nicola Pietroluongo @niklongstone
“ Time is money
-Your boss when you’re late
Nicola Pietroluongo @niklongstone
Manage your time
Provide quick feedback
▪ Inspection rate 250 lines/hours
▪ Review 200-400 lines per review session
▪ Quick Feedback
Nicola Pietroluongo @niklongstone
Capture metrics
Define goals
▪ Lines Of Code
▪ Function Point
▪ Defect Density
▪ Risk Density
▪ Code Coverage
▪ Defect Detection Rate
▪ Defect Correction Rate
▪ Cyclomatic Complexity
Nicola Pietroluongo @niklongstone
Cyclomatic Complexity
Thomas J. McCabe, Sr. 1976
▪ E: Edges
▪ N: Nodes
▪ P: Number of exit points
(CC) = E - N + 2P
http://www.literateprogramming.com/mccabe.pdf
http://www.mccabe.com/pdf/More Complex Equals Less Secure-McCabe.pdf
A
B
C D
E
Nicola Pietroluongo @niklongstone
Cyclomatic Complexity
A>B
B==1
END IF
END IF
A=BB=0
7 Edges
6 Nodes
CC = 7- 6 + 2 = 3
T
TF
F
Nicola Pietroluongo @niklongstone
It’s a Bug Hunt
NOT
a Blame Game
Nicola Pietroluongo @niklongstone
WHEN QUICKLY DECLINE
Nicola Pietroluongo @niklongstone
When
the pull request is out of scope
you should _______
When quickly decline?
Nicola Pietroluongo @niklongstone
When
the pull request is out of scope
you should DECLINE
When quickly decline?
Nicola Pietroluongo @niklongstone
When
the code has no test coverage
you should _______
When quickly decline?
Nicola Pietroluongo @niklongstone
When
the code has no test coverage
you should DECLINE
When quickly decline?
Nicola Pietroluongo @niklongstone
When
you don’t like the solution provided
you should _______
When quickly decline?
Nicola Pietroluongo @niklongstone
When
you don’t like the solution provided…
you should _______
When quickly decline?
Nicola Pietroluongo @niklongstone
Production
Border
Force
Nicola Pietroluongo @niklongstone
2.
The checklist
Reviewer’s responsibilities
Nicola Pietroluongo @niklongstone
The checklist
What we will cover
▪ Best Practices
▪ Foundation
▪ Architecture
▪ Key Areas (Security, Logging, Performances)
Nicola Pietroluongo @niklongstone
BEST PRACTICES
Nicola Pietroluongo @niklongstone
“ Fat model, skinny controller
-Weight Watchers
Nicola Pietroluongo @niklongstone
Services
config
# Sf 2.8 app/config/services.yml
services:
# keep your service names short
app.slugger:
class: AppBundleUtilsSlugger
# Sf 3.3 app/config/services.yml
services:
# use the fully-qualified class name as the service id
AppBundleUtilsSlugger:
public: false
Nicola Pietroluongo @niklongstone
Adopt what’s make your team’s life easier.
Best practices
Nicola Pietroluongo @niklongstone
Controller as a
Service
class EventController
{
//...
public function __construct(
TemplatingEngine $templating
Router $router,
LoggerInterface $logger,
EventRepository $eventRepository
)
//...
public function indexAction($id)
{
//...
Nicola Pietroluongo @niklongstone
FOUNDATION
Nicola Pietroluongo @niklongstone
Parameters/
Return Types
/**
* Get options.
*
* @param string $name
* @param mixed $value
*
* @return mixed $option
*/
public function getOption($name, $value)
{
//...
Nicola Pietroluongo @niklongstone
Dependency
Constraint
Nicola Pietroluongo @niklongstone
Alternatives/
Deprecations
Nicola Pietroluongo @niklongstone
TEST
Nicola Pietroluongo @niklongstone
ARCHITECTURE
Nicola Pietroluongo @niklongstone
“ Never assume anything
-Law enforcement
Nicola Pietroluongo @niklongstone
“ To bundle or not to bundle,
that is the question
-Sf Hamlet
Nicola Pietroluongo @niklongstone
Folder
structure
Nicola Pietroluongo @niklongstone
KEY AREAS
Nicola Pietroluongo @niklongstone
Security
CSRF token
# app/config/security.yml
security:
# ...
firewalls:
secured_area:
# ...
form_login:
# ...
csrf_token_generator: security.csrf.token_manager
# twig template
{# ... #}
<form action="{{ path('login') }}" method="post">
{# ... the login fields #}
<input type="hidden" name="_csrf_token"
value="{{ csrf_token('authenticate') }}"
>
<button type="submit">login</button>
</form>
Nicola Pietroluongo @niklongstone
OWASP - Code Review Guide
https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project
Nicola Pietroluongo @niklongstone
Syslog Message Severities
RFC 5424
Numerical Code Severity
0 Emergency: system is unusable
1 Alert: action must be taken immediately
2 Critical: critical conditions
3 Error: error conditions
4 Warning: warning conditions
5 Notice: normal but significant condition
6 Informational: informational messages
7 Debug: debug-level messages
Nicola Pietroluongo @niklongstone
Syslog Message Severities
RFC 5424
Numerical Code Severity
0 Emergency: system is unusable
1 Alert: action must be taken immediately
2 Critical: critical conditions
3 Error: error conditions
4 Warning: warning conditions
5 Notice: normal but significant condition
6 Informational: informational messages
7 Debug: debug-level messages
Nicola Pietroluongo @niklongstone
“ I want it all, I want it now
-Queen
Nicola Pietroluongo @niklongstone
Website
Performance
source : Akamai.com
Nicola Pietroluongo @niklongstone
Loops
A)
for ($i = 0; $i < count($array); $i++) {
B)
$total = count($array);
for ($i = 0; $i < $total; $i++) {
Nicola Pietroluongo @niklongstone
3.
Tools
Tools and automation
Nicola Pietroluongo @niklongstone
Blackfire
Nicola Pietroluongo @niklongstone
SensioLabs
Insight
Nicola Pietroluongo @niklongstone
PHP CSF
Nicola Pietroluongo @niklongstone
Exakat
Nicola Pietroluongo @niklongstone
PhpMetrics
Nicola Pietroluongo @niklongstone
PHP MD
Nicola Pietroluongo @niklongstone
PHPMD
$ ./phpmd.phar filesOrDir reportFormat rules
$ ./phpmd.phar fileA.php,fileB.php text cleancode,codesize
Nicola Pietroluongo @niklongstone
Git diff
$ git diff --name-only --diff-filter=d master
src/CinemaBundle/Controller/CinemaController.php
src/CinemaBundle/Entity/Screening.php
src/CinemaBundle/Entity/ScreeningVenue.php
src/CinemaBundle/Entity/Showing.php
Nicola Pietroluongo @niklongstone
Sed
$ sed ':a; $!N; s/n/,/; ta'
:a creates a pattern
$!N appends lines to the pattern if not last line
s/n/,/ replaces new line with comma
ta repeat the a
Nicola Pietroluongo @niklongstone
Pull it together
*All in one line
./phpmd.phar
$(git diff --name-only --diff-filter=d master |
sed ':a; $!N; s/n/,/; ta')
text cleancode,codesize
Nicola Pietroluongo @niklongstone
“ Automate, automate, automate.
Allright, allright, all right.
-Matthew McSymfony
Nicola Pietroluongo @niklongstone
LIGHT TOUCH REVIEW
Nicola Pietroluongo @niklongstone
Light touch review
Inspect what’s critical
▪Automation
▪High code coverage
▪Small and contained release
▪Good knowledge of the project, business and practices
Nicola Pietroluongo @niklongstone
Thanks!!NicolaPietroluongo.com
@niklongstone
https://github.com/niklongstone
https://joind.in/talk/20dcd

More Related Content

Similar to The reviewer checklist

The Security Code Review Guide
The Security Code Review GuideThe Security Code Review Guide
The Security Code Review Guide
Nicola Pietroluongo
 
Code Review: How And When
Code Review: How And WhenCode Review: How And When
Code Review: How And When
Paul Gower
 
Refactoring the third commandment
Refactoring the third commandmentRefactoring the third commandment
Refactoring the third commandment
Nicola Pietroluongo
 
Work with Developers for Fun and Progress - AppSec California
Work with Developers for Fun and Progress - AppSec CaliforniaWork with Developers for Fun and Progress - AppSec California
Work with Developers for Fun and Progress - AppSec California
leifdreizler
 
Refactor, the third commandment
Refactor, the third commandmentRefactor, the third commandment
Refactor, the third commandment
Nicola Pietroluongo
 
Ultimate Free Digital Marketing Toolkit #EdgeBristol 2012
Ultimate Free Digital Marketing Toolkit #EdgeBristol 2012Ultimate Free Digital Marketing Toolkit #EdgeBristol 2012
Ultimate Free Digital Marketing Toolkit #EdgeBristol 2012
Steve Lock
 
2016 Innovation Roundtable Keynote by Michael Skok
2016 Innovation Roundtable Keynote by Michael Skok2016 Innovation Roundtable Keynote by Michael Skok
2016 Innovation Roundtable Keynote by Michael Skok
Michael Skok
 
The Ultimate Free Digital Marketing Toolkit
The Ultimate Free Digital Marketing ToolkitThe Ultimate Free Digital Marketing Toolkit
The Ultimate Free Digital Marketing Toolkit
Steve Lock
 
Taking Control: How TechComms are Leading Brand Language
Taking Control: How TechComms are Leading Brand LanguageTaking Control: How TechComms are Leading Brand Language
Taking Control: How TechComms are Leading Brand Language
Rhyne Armstrong
 
BSides LA/PDX
BSides LA/PDXBSides LA/PDX
BSides LA/PDX
leifdreizler
 
Solve Everyday IT Problems with DevOps
Solve Everyday IT Problems with DevOpsSolve Everyday IT Problems with DevOps
Solve Everyday IT Problems with DevOps
Josiah Renaudin
 
Get Your Productivity Game On!
Get Your Productivity Game On!Get Your Productivity Game On!
Get Your Productivity Game On!
Brian Sjoberg
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and When
Paul Gower
 
Никита Галкин "Technical backlog: инструкция к применению"
Никита Галкин "Technical backlog: инструкция к применению"Никита Галкин "Technical backlog: инструкция к применению"
Никита Галкин "Technical backlog: инструкция к применению"
Fwdays
 
How to Find and Hire a Python_Django Development Company
How to Find and Hire a Python_Django Development CompanyHow to Find and Hire a Python_Django Development Company
How to Find and Hire a Python_Django Development Company
Yana Petlovana
 
Webhooks with Azure Functions - Live 360 Conference
Webhooks with Azure Functions - Live 360 ConferenceWebhooks with Azure Functions - Live 360 Conference
Webhooks with Azure Functions - Live 360 Conference
SparkPost
 
Fuel Good 2018: Upgrades Made Easy: The Canadian Museum of History
Fuel Good 2018: Upgrades Made Easy: The Canadian Museum of HistoryFuel Good 2018: Upgrades Made Easy: The Canadian Museum of History
Fuel Good 2018: Upgrades Made Easy: The Canadian Museum of History
Sparkrock
 
Aws Presentation Cloud Security 20120419
Aws Presentation   Cloud Security 20120419Aws Presentation   Cloud Security 20120419
Aws Presentation Cloud Security 20120419
Jon Gallagher
 
Taking Your Product Development to the Next Level with Full Stack
Taking Your Product Development to the Next Level with Full StackTaking Your Product Development to the Next Level with Full Stack
Taking Your Product Development to the Next Level with Full Stack
Optimizely
 
Making Your Product Manager Productive by Clinton Wolfe
Making Your Product Manager Productive by Clinton WolfeMaking Your Product Manager Productive by Clinton Wolfe
Making Your Product Manager Productive by Clinton Wolfe
DevOpsDays Baltimore
 

Similar to The reviewer checklist (20)

The Security Code Review Guide
The Security Code Review GuideThe Security Code Review Guide
The Security Code Review Guide
 
Code Review: How And When
Code Review: How And WhenCode Review: How And When
Code Review: How And When
 
Refactoring the third commandment
Refactoring the third commandmentRefactoring the third commandment
Refactoring the third commandment
 
Work with Developers for Fun and Progress - AppSec California
Work with Developers for Fun and Progress - AppSec CaliforniaWork with Developers for Fun and Progress - AppSec California
Work with Developers for Fun and Progress - AppSec California
 
Refactor, the third commandment
Refactor, the third commandmentRefactor, the third commandment
Refactor, the third commandment
 
Ultimate Free Digital Marketing Toolkit #EdgeBristol 2012
Ultimate Free Digital Marketing Toolkit #EdgeBristol 2012Ultimate Free Digital Marketing Toolkit #EdgeBristol 2012
Ultimate Free Digital Marketing Toolkit #EdgeBristol 2012
 
2016 Innovation Roundtable Keynote by Michael Skok
2016 Innovation Roundtable Keynote by Michael Skok2016 Innovation Roundtable Keynote by Michael Skok
2016 Innovation Roundtable Keynote by Michael Skok
 
The Ultimate Free Digital Marketing Toolkit
The Ultimate Free Digital Marketing ToolkitThe Ultimate Free Digital Marketing Toolkit
The Ultimate Free Digital Marketing Toolkit
 
Taking Control: How TechComms are Leading Brand Language
Taking Control: How TechComms are Leading Brand LanguageTaking Control: How TechComms are Leading Brand Language
Taking Control: How TechComms are Leading Brand Language
 
BSides LA/PDX
BSides LA/PDXBSides LA/PDX
BSides LA/PDX
 
Solve Everyday IT Problems with DevOps
Solve Everyday IT Problems with DevOpsSolve Everyday IT Problems with DevOps
Solve Everyday IT Problems with DevOps
 
Get Your Productivity Game On!
Get Your Productivity Game On!Get Your Productivity Game On!
Get Your Productivity Game On!
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and When
 
Никита Галкин "Technical backlog: инструкция к применению"
Никита Галкин "Technical backlog: инструкция к применению"Никита Галкин "Technical backlog: инструкция к применению"
Никита Галкин "Technical backlog: инструкция к применению"
 
How to Find and Hire a Python_Django Development Company
How to Find and Hire a Python_Django Development CompanyHow to Find and Hire a Python_Django Development Company
How to Find and Hire a Python_Django Development Company
 
Webhooks with Azure Functions - Live 360 Conference
Webhooks with Azure Functions - Live 360 ConferenceWebhooks with Azure Functions - Live 360 Conference
Webhooks with Azure Functions - Live 360 Conference
 
Fuel Good 2018: Upgrades Made Easy: The Canadian Museum of History
Fuel Good 2018: Upgrades Made Easy: The Canadian Museum of HistoryFuel Good 2018: Upgrades Made Easy: The Canadian Museum of History
Fuel Good 2018: Upgrades Made Easy: The Canadian Museum of History
 
Aws Presentation Cloud Security 20120419
Aws Presentation   Cloud Security 20120419Aws Presentation   Cloud Security 20120419
Aws Presentation Cloud Security 20120419
 
Taking Your Product Development to the Next Level with Full Stack
Taking Your Product Development to the Next Level with Full StackTaking Your Product Development to the Next Level with Full Stack
Taking Your Product Development to the Next Level with Full Stack
 
Making Your Product Manager Productive by Clinton Wolfe
Making Your Product Manager Productive by Clinton WolfeMaking Your Product Manager Productive by Clinton Wolfe
Making Your Product Manager Productive by Clinton Wolfe
 

Recently uploaded

KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
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
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
Marcin Chrost
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
safelyiotech
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
kalichargn70th171
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
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
 
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
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
YAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring detailsYAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring details
NishanthaBulumulla1
 
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
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
YousufSait3
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
dakas1
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
sjcobrien
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
Karya Keeper
 
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
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
AnkitaPandya11
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 

Recently uploaded (20)

KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !Enums On Steroids - let's look at sealed classes !
Enums On Steroids - let's look at sealed classes !
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
Safelyio Toolbox Talk Softwate & App (How To Digitize Safety Meetings)
 
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
The Key to Digital Success_ A Comprehensive Guide to Continuous Testing Integ...
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
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
 
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
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
YAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring detailsYAML crash COURSE how to write yaml file for adding configuring details
YAML crash COURSE how to write yaml file for adding configuring details
 
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
 
zOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL DifferenceszOS Mainframe JES2-JES3 JCL-JECL Differences
zOS Mainframe JES2-JES3 JCL-JECL Differences
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理一比一原版(USF毕业证)旧金山大学毕业证如何办理
一比一原版(USF毕业证)旧金山大学毕业证如何办理
 
Malibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed RoundMalibou Pitch Deck For Its €3M Seed Round
Malibou Pitch Deck For Its €3M Seed Round
 
Project Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdfProject Management: The Role of Project Dashboards.pdf
Project Management: The Role of Project Dashboards.pdf
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.fiscal year variant fiscal year variant.
fiscal year variant fiscal year variant.
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 

The reviewer checklist

Editor's Notes

  1. I'd like to share a secret with you: I think code review is really boring that’s why I’ve created this talk. Before starting I have a little question for you Who likes code review? (show of hands)Who thinks that code review improves only software quality? We will see during the course of this session why I asked this question.
  2. most effective procedure to build clean and less complex web app
  3. appname.location.servicename to avoid collisions. We will see more examples of how the target has been adjusted based on the community considerations, based on the real usage of the framework.
  4. It’s a little bit like the bubble wrap story. Bubble wrap invented in the 1957 was at the beginning advertised as wallpaper. Can you imagine you put your hand on the wall and pick pock. Then when IBM launched the 1401 computer bubble wrap was used for the shipping.
  5. about to review the core functionalities of classes and methods
  6. JsonDecode class
  7. about to review the core functionalities of classes and methods
  8. about to review the core functionalities of classes and methods
  9. about to review the core functionalities of classes and methods
  10. about to review the core functionalities of classes and methods
  11. Symfony comes with Monolog under the PSR-3 the Logger Interface that follows the log levels described by the RFC 5424 for the syslog protocol.
  12. In the review process you don’t need to run a complete analysis of all your code base but only what is included in a pull request.