Sass Code Reviews - How one code review changed my life #SassConf2015

Stacy Kvernmo
Stacy KvernmoUser Experience Designer and UI Developer at OddBird
Stacy Kvernmo
@stacykvernmo
T U R N H U M I L I AT I O N I N T O G R E AT N E S S
CODE REVIEWS
Picture: “I should have known better….” patries71, Flickr
AW WK
# ARD
PROVIDES DESIGN FEEDBACK
EVERYONE
Picture: Genesis Theme for WordPress
DEVELOPERS
BACK-END
BUGS
Picture: Hasan Baglar/Sony World Photography Awards 2014
D I S C O V E R
Picture: Screenshot from The Simpsons, Matt Groening
INCREASE
FAMILIARITY
UNDERSTAND
it well enough
you don't
S I M P LY
If you can't explain it,
Picture: “President Obama does the Hour of Code” CODE.org, YouTube
FORMAL
Picture: “LEGO Collectible Minifigures Series 7 : Computer Programmer” wiredforlego, Flickr
COMMIT
PRE
(pre-merge)
COMMIT
POST
(post-merge)
YOUR OWN
DARN CODE
REVIEW
(please)
Picture: “I totally gave up!” Jay, Flickr
Any Text Editor
… and so many more
C O D E R E T R E AT
NETWORK
GROW YOUR
Picture: “Network”, Ivan Emelianov, Flickr
OPEN SOURCE
CONTRIBUTE TO
Picture: ‘The Passage of Time’, Toni Verdú Carbó, Flickr
TIME
PREPARATION
STAY
“THIS IS
💩POSITIVE
MUSTAVOID
ABSOLUTES ALWAYS
NEVER
MUSTAVOID
ABSOLUTES ALWAYS
NEVER
Why didn’t you
JUST
do X,
Why didn’t you
JUST
do X,
IDIOT
?QUESTIONS
ASK
DOCUMENT
ISSUES
YOUR CODE
DOCUMENT
C O D E P E N . I O / S TA C Y
PROVIDE
CONTEXT
PROVIDE
CONTEXT
CODEPEN.IO/STACY
BE PREPARED
to discuss what
you wrote &
IT’S NOT YOU
…
IT’S YOUR CODE
STANDARDS
FOLLOW
FORMATTING
CONSISTENT
R U L E
.page {
…
…
…
.header {
…
…
…
R U L E
ul {
…
…
…
&.dropdown {
…
…
…
li.nav-item {
a {
color: white;
}
}
R U L E
.page .header .container .nav ul.dropdown
color: white;
}
R U L E
.page .header .container .nav ul.dropdown
color: white;
}
.store.page .header .container .nav ul.dr
color: green;
}
R U L E
.page .header .container .nav ul.dropdown
color: white;
}
.store.page .header .container .nav ul.dr
color: green;
}
;!important;
.nav {
li {
margin-right: 1rem;
&:last-child {
margin-right: 0;
}
}
a {
color: orange;
&:hover {
color: salmon;
}
}
}
INTENTION
NEST WITH
UNNECESSARY
ABSTRACTION
*:focus {
outline: none;
}
ACCESSIBILITY
C H E C K F O R M I S TA K E S
.element {
@include span-columns(12);
}
OUTPUT
B L O AT E D
.element {
float: left;
display: left;
margin-right: 2.35765%;
width: 100%;
}
.element:last-child {
margin-right: 0;
}
C O M P I L E S T O :
B L O AT E D
OUTPUT
.element {
@include fill-parent;
}
OUTPUT
B L O AT E D
.element {
width: 100%;
}
C O M P I L E S T O :
OUTPUT
B L O AT E D
.element {
width: 100%;
}
.element {
float: left;
display: left;
margin-right: 2.35765%;
width: 100%;
}
.element:last-child {
margin-right: 0;
}
VS.
OUTPUT
B L O AT E D
.example {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box;
box-sizing: border-box;
}
V E N D O R
PREFIXES
.example {
/* Unnecessary vendor prefixes
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
-o-box-sizing: border-box; */
box-sizing: border-box;
}
U N U S E D
CSS
G I V E U N C S S A T RY
U N U S E D
CSS
OOCSS BEMSMACSS
/* ABOVE ALL */
SCALABILITY
After Code ReviewBefore Code Review
FTW!
CODE REVIEWS
Quality
Stacy Kvernmo
@stacykvernmo
T U R N H U M I L I AT I O N I N T O G R E AT N E S S
CODE REVIEWS
1 of 48

Recommended

Api presentation by
Api presentationApi presentation
Api presentationTiago Cardoso
13.9K views30 slides
API Design Workflows by
API Design WorkflowsAPI Design Workflows
API Design WorkflowsJakub Nesetril
3.6K views38 slides
API for Beginners by
API for BeginnersAPI for Beginners
API for BeginnersGustavo De Vita
8.7K views69 slides
Angular by
AngularAngular
AngularLilia Sfaxi
23K views47 slides
React for Beginners by
React for BeginnersReact for Beginners
React for BeginnersDerek Willian Stavis
1.7K views47 slides
Introduction to Swagger by
Introduction to SwaggerIntroduction to Swagger
Introduction to SwaggerKnoldus Inc.
5.9K views28 slides

More Related Content

What's hot

Introduction to AngularJS by
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJSDavid Parsons
1.7K views26 slides
Version Control & Git by
Version Control & GitVersion Control & Git
Version Control & GitJason Byrne
1.2K views27 slides
Web application framework by
Web application frameworkWeb application framework
Web application frameworkPankaj Chand
8.1K views23 slides
The Architecture of an API Platform by
The Architecture of an API PlatformThe Architecture of an API Platform
The Architecture of an API PlatformJohannes Ridderstedt
5.4K views23 slides
Swagger UI by
Swagger UISwagger UI
Swagger UIWalaa Hamdy Assy
959 views11 slides
Introduction to APIs (Application Programming Interface) by
Introduction to APIs (Application Programming Interface) Introduction to APIs (Application Programming Interface)
Introduction to APIs (Application Programming Interface) Vibhawa Nirmal
6K views18 slides

What's hot(20)

Introduction to AngularJS by David Parsons
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
David Parsons1.7K views
Version Control & Git by Jason Byrne
Version Control & GitVersion Control & Git
Version Control & Git
Jason Byrne1.2K views
Web application framework by Pankaj Chand
Web application frameworkWeb application framework
Web application framework
Pankaj Chand8.1K views
Introduction to APIs (Application Programming Interface) by Vibhawa Nirmal
Introduction to APIs (Application Programming Interface) Introduction to APIs (Application Programming Interface)
Introduction to APIs (Application Programming Interface)
Vibhawa Nirmal6K views
Writing REST APIs with OpenAPI and Swagger Ada by Stephane Carrez
Writing REST APIs with OpenAPI and Swagger AdaWriting REST APIs with OpenAPI and Swagger Ada
Writing REST APIs with OpenAPI and Swagger Ada
Stephane Carrez3K views
What is API - Understanding API Simplified by Jubin Aghara
What is API - Understanding API SimplifiedWhat is API - Understanding API Simplified
What is API - Understanding API Simplified
Jubin Aghara281 views
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon by Aleyda Solís
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
7 E-Commerce SEO Mistakes & How to Fix Them #DeepSEOCon
Aleyda Solís2.4K views
A Crash Course in Technical SEO from Patrick Stox - Beer & SEO Meetup May 2019 by patrickstox
A Crash Course in Technical SEO from Patrick Stox - Beer & SEO Meetup May 2019A Crash Course in Technical SEO from Patrick Stox - Beer & SEO Meetup May 2019
A Crash Course in Technical SEO from Patrick Stox - Beer & SEO Meetup May 2019
patrickstox1K views
Clean architecture: Android by intive
Clean architecture: AndroidClean architecture: Android
Clean architecture: Android
intive7.7K views
SEO For Marketplaces: Overcoming Technical Challenges #WTSFest by Aleyda Solís
SEO For Marketplaces: Overcoming Technical Challenges #WTSFestSEO For Marketplaces: Overcoming Technical Challenges #WTSFest
SEO For Marketplaces: Overcoming Technical Challenges #WTSFest
Aleyda Solís4.3K views
Ppt full stack developer by SudhirVarpe1
Ppt full stack developerPpt full stack developer
Ppt full stack developer
SudhirVarpe19.8K views
Introduction to API by rajnishjha29
Introduction to APIIntroduction to API
Introduction to API
rajnishjha292.1K views
Understanding REST APIs in 5 Simple Steps by Tessa Mero
Understanding REST APIs in 5 Simple StepsUnderstanding REST APIs in 5 Simple Steps
Understanding REST APIs in 5 Simple Steps
Tessa Mero5K views
Cost Effective Multilingual Content Optimization in An International SEO Process by Aleyda Solís
Cost Effective Multilingual Content Optimization in An International SEO ProcessCost Effective Multilingual Content Optimization in An International SEO Process
Cost Effective Multilingual Content Optimization in An International SEO Process
Aleyda Solís2.5K views
Stateless authentication with OAuth 2 and JWT - JavaZone 2015 by Alvaro Sanchez-Mariscal
Stateless authentication with OAuth 2 and JWT - JavaZone 2015Stateless authentication with OAuth 2 and JWT - JavaZone 2015
Stateless authentication with OAuth 2 and JWT - JavaZone 2015
Angular tutorial by Rohit Gupta
Angular tutorialAngular tutorial
Angular tutorial
Rohit Gupta593 views

Viewers also liked

The Ultimate Productivity Webinar - with Andrew Griffiths and Sam Harrop. by
The Ultimate Productivity Webinar - with Andrew Griffiths and Sam Harrop.The Ultimate Productivity Webinar - with Andrew Griffiths and Sam Harrop.
The Ultimate Productivity Webinar - with Andrew Griffiths and Sam Harrop.Andrew Griffiths Enterprises
519.1K views113 slides
2016 A-Z Culture Glossary by
2016 A-Z Culture Glossary2016 A-Z Culture Glossary
2016 A-Z Culture Glossarysparks & honey
633.6K views110 slides
How to build a great coding culture by
How to build a great coding cultureHow to build a great coding culture
How to build a great coding cultureMark Halvorson
460.3K views107 slides
Zombie PowerPoint by @ericpesik by
Zombie PowerPoint by @ericpesikZombie PowerPoint by @ericpesik
Zombie PowerPoint by @ericpesikEric Pesik
648.5K views143 slides
Search Ranking Factors in 2015 by
Search Ranking Factors in 2015Search Ranking Factors in 2015
Search Ranking Factors in 2015Rand Fishkin
530.6K views73 slides
Blitzscaling Session 1: Household Stage by
Blitzscaling Session 1: Household StageBlitzscaling Session 1: Household Stage
Blitzscaling Session 1: Household StageGreylock Partners
539K views47 slides

Viewers also liked(18)

2016 A-Z Culture Glossary by sparks & honey
2016 A-Z Culture Glossary2016 A-Z Culture Glossary
2016 A-Z Culture Glossary
sparks & honey633.6K views
How to build a great coding culture by Mark Halvorson
How to build a great coding cultureHow to build a great coding culture
How to build a great coding culture
Mark Halvorson460.3K views
Zombie PowerPoint by @ericpesik by Eric Pesik
Zombie PowerPoint by @ericpesikZombie PowerPoint by @ericpesik
Zombie PowerPoint by @ericpesik
Eric Pesik648.5K views
Search Ranking Factors in 2015 by Rand Fishkin
Search Ranking Factors in 2015Search Ranking Factors in 2015
Search Ranking Factors in 2015
Rand Fishkin530.6K views
Blitzscaling Session 1: Household Stage by Greylock Partners
Blitzscaling Session 1: Household StageBlitzscaling Session 1: Household Stage
Blitzscaling Session 1: Household Stage
Greylock Partners539K views
Design in Tech Report 2015 by John Maeda
Design in Tech Report 2015Design in Tech Report 2015
Design in Tech Report 2015
John Maeda523.7K views
Final venture outlook 2016 by Mark Suster
Final venture outlook 2016Final venture outlook 2016
Final venture outlook 2016
Mark Suster548.9K views
Holy Crap! You Can Get Fired For Social Media Posts? by Eric T. Tung
Holy Crap! You Can Get Fired For Social Media Posts?Holy Crap! You Can Get Fired For Social Media Posts?
Holy Crap! You Can Get Fired For Social Media Posts?
Eric T. Tung481K views
SpringOwl's 99 Page Presentation On How To Best Turnaround Yahoo! by Eric Jackson
SpringOwl's 99 Page Presentation On How To Best Turnaround Yahoo!SpringOwl's 99 Page Presentation On How To Best Turnaround Yahoo!
SpringOwl's 99 Page Presentation On How To Best Turnaround Yahoo!
Eric Jackson809.9K views
DocSend Fundraising Research: What we Learned from 200 Startups Who Raised $360M by DocSend
DocSend Fundraising Research: What we Learned from 200 Startups Who Raised $360MDocSend Fundraising Research: What we Learned from 200 Startups Who Raised $360M
DocSend Fundraising Research: What we Learned from 200 Startups Who Raised $360M
DocSend552.1K views
Activate Tech and Media Outlook 2016 by Activate
Activate Tech and Media Outlook 2016Activate Tech and Media Outlook 2016
Activate Tech and Media Outlook 2016
Activate2.9M views
A Product Manager's Job by joshelman
A Product Manager's JobA Product Manager's Job
A Product Manager's Job
joshelman821.8K views
Education today ppt by Anwar Pasha
Education today pptEducation today ppt
Education today ppt
Anwar Pasha301.7K views
How to Master Difficult Conversations at Work – Leader’s Guide by Piktochart
How to Master Difficult Conversations at Work – Leader’s GuideHow to Master Difficult Conversations at Work – Leader’s Guide
How to Master Difficult Conversations at Work – Leader’s Guide
Piktochart395K views
4 Biggest Challenges for Creative Teams by Wrike
4 Biggest Challenges for Creative Teams4 Biggest Challenges for Creative Teams
4 Biggest Challenges for Creative Teams
Wrike543K views

More from Stacy Kvernmo

The Great State of Design 2018 by
The Great State of Design 2018The Great State of Design 2018
The Great State of Design 2018Stacy Kvernmo
3.3K views101 slides
The Great State of Design with CSS Grid Layout and Friends by
The Great State of Design with CSS Grid Layout and FriendsThe Great State of Design with CSS Grid Layout and Friends
The Great State of Design with CSS Grid Layout and FriendsStacy Kvernmo
2.2K views144 slides
From Scratch to Launch #2 - Design phase by
From Scratch to Launch #2 - Design phaseFrom Scratch to Launch #2 - Design phase
From Scratch to Launch #2 - Design phaseStacy Kvernmo
2.1K views96 slides
From Scratch to Launch Series - Part 1 - Planning Phase by
From Scratch to Launch Series - Part 1 - Planning PhaseFrom Scratch to Launch Series - Part 1 - Planning Phase
From Scratch to Launch Series - Part 1 - Planning PhaseStacy Kvernmo
1.5K views71 slides
The Great State of Design with CSS Grid Layout and Friends by
The Great State of Design with CSS Grid Layout and FriendsThe Great State of Design with CSS Grid Layout and Friends
The Great State of Design with CSS Grid Layout and FriendsStacy Kvernmo
2.1M views149 slides
Curing Design Complacency by
Curing Design ComplacencyCuring Design Complacency
Curing Design ComplacencyStacy Kvernmo
1.8K views46 slides

More from Stacy Kvernmo(9)

The Great State of Design 2018 by Stacy Kvernmo
The Great State of Design 2018The Great State of Design 2018
The Great State of Design 2018
Stacy Kvernmo3.3K views
The Great State of Design with CSS Grid Layout and Friends by Stacy Kvernmo
The Great State of Design with CSS Grid Layout and FriendsThe Great State of Design with CSS Grid Layout and Friends
The Great State of Design with CSS Grid Layout and Friends
Stacy Kvernmo2.2K views
From Scratch to Launch #2 - Design phase by Stacy Kvernmo
From Scratch to Launch #2 - Design phaseFrom Scratch to Launch #2 - Design phase
From Scratch to Launch #2 - Design phase
Stacy Kvernmo2.1K views
From Scratch to Launch Series - Part 1 - Planning Phase by Stacy Kvernmo
From Scratch to Launch Series - Part 1 - Planning PhaseFrom Scratch to Launch Series - Part 1 - Planning Phase
From Scratch to Launch Series - Part 1 - Planning Phase
Stacy Kvernmo1.5K views
The Great State of Design with CSS Grid Layout and Friends by Stacy Kvernmo
The Great State of Design with CSS Grid Layout and FriendsThe Great State of Design with CSS Grid Layout and Friends
The Great State of Design with CSS Grid Layout and Friends
Stacy Kvernmo2.1M views
Curing Design Complacency by Stacy Kvernmo
Curing Design ComplacencyCuring Design Complacency
Curing Design Complacency
Stacy Kvernmo1.8K views
No pain, no gain. CSS Code Reviews FTW. by Stacy Kvernmo
No pain, no gain. CSS Code Reviews FTW.No pain, no gain. CSS Code Reviews FTW.
No pain, no gain. CSS Code Reviews FTW.
Stacy Kvernmo25.9K views
Exploring the Design Process by Stacy Kvernmo
Exploring the Design ProcessExploring the Design Process
Exploring the Design Process
Stacy Kvernmo2.5K views
Exploring the design process #wcchi by Stacy Kvernmo
Exploring the design process #wcchiExploring the design process #wcchi
Exploring the design process #wcchi
Stacy Kvernmo3K views

Recently uploaded

nintendo_64.pptx by
nintendo_64.pptxnintendo_64.pptx
nintendo_64.pptxpaiga02016
6 views7 slides
Benefits in Software Development by
Benefits in Software DevelopmentBenefits in Software Development
Benefits in Software DevelopmentJohn Valentino
5 views15 slides
How to build dyanmic dashboards and ensure they always work by
How to build dyanmic dashboards and ensure they always workHow to build dyanmic dashboards and ensure they always work
How to build dyanmic dashboards and ensure they always workWiiisdom
14 views13 slides
How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile... by
How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile...How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile...
How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile...Stefan Wolpers
42 views38 slides
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... by
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Lisi Hocke
35 views124 slides
EV Charging App Case by
EV Charging App Case EV Charging App Case
EV Charging App Case iCoderz Solutions
9 views1 slide

Recently uploaded(20)

How to build dyanmic dashboards and ensure they always work by Wiiisdom
How to build dyanmic dashboards and ensure they always workHow to build dyanmic dashboards and ensure they always work
How to build dyanmic dashboards and ensure they always work
Wiiisdom14 views
How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile... by Stefan Wolpers
How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile...How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile...
How To Make Your Plans Suck Less — Maarten Dalmijn at the 57th Hands-on Agile...
Stefan Wolpers42 views
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium... by Lisi Hocke
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Team Transformation Tactics for Holistic Testing and Quality (Japan Symposium...
Lisi Hocke35 views
Automated Testing of Microsoft Power BI Reports by RTTS
Automated Testing of Microsoft Power BI ReportsAutomated Testing of Microsoft Power BI Reports
Automated Testing of Microsoft Power BI Reports
RTTS10 views
How Workforce Management Software Empowers SMEs | TraQSuite by TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuiteHow Workforce Management Software Empowers SMEs | TraQSuite
How Workforce Management Software Empowers SMEs | TraQSuite
TraQSuite6 views
ADDO_2022_CICID_Tom_Halpin.pdf by TomHalpin9
ADDO_2022_CICID_Tom_Halpin.pdfADDO_2022_CICID_Tom_Halpin.pdf
ADDO_2022_CICID_Tom_Halpin.pdf
TomHalpin95 views
Generic or specific? Making sensible software design decisions by Bert Jan Schrijver
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P... by NimaTorabi2
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
Unlocking the Power of AI in Product Management - A Comprehensive Guide for P...
NimaTorabi216 views
360 graden fabriek by info33492
360 graden fabriek360 graden fabriek
360 graden fabriek
info33492165 views
Navigating container technology for enhanced security by Niklas Saari by Metosin Oy
Navigating container technology for enhanced security by Niklas SaariNavigating container technology for enhanced security by Niklas Saari
Navigating container technology for enhanced security by Niklas Saari
Metosin Oy15 views
FOSSLight Community Day 2023-11-30 by Shane Coughlan
FOSSLight Community Day 2023-11-30FOSSLight Community Day 2023-11-30
FOSSLight Community Day 2023-11-30
Shane Coughlan7 views
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation by HCLSoftware
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook AutomationDRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
DRYiCE™ iAutomate: AI-enhanced Intelligent Runbook Automation
HCLSoftware6 views

Sass Code Reviews - How one code review changed my life #SassConf2015