SlideShare a Scribd company logo
1 of 44
Download to read offline
10* COMMANDMENTS
FOR EFFICIENT CSS
ARCHITECTURE
Yes, CSS can have architecture too!
  Kushagra Gour @chinchang457
* Conditions apply.
/me
My name is . Better know as on
the web.
Kushagra Gour chinchang
I am from
Delhi, India
/me more
I am a Front-end developer at a wonderful startup called
Wingify.
Open-source stuff like andHint.css piCSSel-art.
Whats this talk about?
Some CSS goodies learnt from experience.
Would help in better CSS architecture. Easy to understand
and extend in future. No more
Careless Style Sprinkling.
First time speaking at a conference and that too at such a
big one. Not really good at speaking & making
presentations.
// TODO: Add a game if slides don't complete.
Good at making games. Added a game we can all play
together and have fun! Seriously!
Commandment #1
Keep File Sizes
Small
"Thy height shalt remain greater
than thy file sizes at all times"
Keep File Sizes Small
Why?
It helps keeping things modular.
Important for faster search in future because you know
where things are when something needs to be changed.
What?
Keep dividing and refactoring files as and when they get too
big.
1st day of christmas
style.css
4th day of christmas
1. base.css
2. helpers.css
3. components.css
4. theme.css
5. mixins.scss (SASS)
8th day of christmas
1. base.css
2. helpers.css
3. components/
buttons.css
dropdowns.css
tooltips.css
4. theme.css
12th day of christmas
Commandment #2
Use Variables
Thy code config shalt remain at one
place.
Use Variables
Your layout:
HEADER
SIDEBAR CONTENT
.header{
width:100%;
height:50px;//Magicnumber
}
.sidebar{
width:100px;//Magicnumber
height:100%;
top:50px; //Magicnumber
}
.content{
top:50px;//Magicnumber
bottom:0;
left:100px;//Magicnumber
right:0;
}
Too many magic numbers!
Use Variables
Better approach
$header-height:50px;
$sidebar-width:100px;
.header{
width:100%;
height:$header-height;
}
.sidebar{
width:$sidebar-width;
height:100%;
}
.content{
top:$header-height;
bottom:0;
left:$sidebar-width;
right:0;
}
Use Variables
Better approach
Less error prone
Easy extensibility
$header-height:50px;
$sidebar-width:100px;
.header{
width:100%;
height:$header-height;
}
.sidebar{
width:$sidebar-width;
height:100%;
}
.content{
top:$header-height;
bottom:0;
left:$sidebar-width;
right:0;
}
Commandment #3
Component
Abstraction
Thou shalt believe in abstractions
Component Abstractions
Scenario: HUD elements on a game screen
.hud-stats{
position:fixed;
opacity:0.7;
filter:sepia(90%);
bottom:20px;
left:20px;
}
.hud-map{
position:fixed;
opacity:0.7;
filter:sepia(90%);
top:20px;
right:20px;
}
Component Abstractions
Scenario: HUD elements on a game screen
.hud-stats{
position:fixed;
opacity:0.7;
filter:sepia(90%);
bottom:20px;
left:20px;
}
.hud-map{
position:fixed;
opacity:0.7;
filter:sepia(90%);
top:20px;
right:20px;
}
Too much repeatition.
Component Abstractions
Don't Repeat yourself
Component Abstractions
HUD elements on a game screen (Better)
.hud-element{
position:fixed;
opacity:0.7;
filter:sepia(90%);
}
.hud-stats{
bottom:20px;
left:20px;
}
.hud-map{
top:20px;
right:20px;
}
<divclass="hud-element hud-stats">9999</div>
No repeation. Much cleaner.
Component Abstractions
HUD elements on a game screen (Better)(SASS)
%hud-element{
position:fixed;
opacity:0.7;
filter:sepia(90%);
}
.hud-stats{
@extend%hud-element;
bottom:20px;
left:20px;
}
.hud-map{
@extend%hud-element;
top:20px;
right:20px;
}
<divclass="hud-stats">9999</div>
Commandment #4
Keep Selector
Strengths Low
Thou shalt spread peace and stop
thy selectors from fighting.
Keep Selector Strengths Low
Selectors have strengths...and they do fight!
Example:
div.tabs{
width:100%;
}
<divclass="tabs"></div>
.tabs-half{
width:50%;
}
<divclass="tabstabs-half"></div>
WON'T WORK!
strength(div.tabs)>
strength(.tabs-half)
Keep Selector Strengths Low
How things get messier...
Either prefix your class name with   tag.
Use the all 'awesome and criticized' 
Plus, tabs can only be made up of   tags.
DIV
!important
DIV
Keep Selector Strengths Low
No div.tabs
Simply have .tabs
Commandment #5
Naming
Convention
Thou shalt treat your classes as thy
own children. Name them with
equal love.
Naming Convention
Most important thing in CSS. Much more important than
any other languauge.
Some things are bad in CSS (ahem...!important) and can
be eliminated through better naming.
Naming Convention
BEM
to the rescue
Naming Convention
: Block - Element - ModifierBEM
- Component
- Sub-part of component
- Variation of component
Block
Element
Modifier
Supports Component abstraction
Naming Convention
: NamingBEM
- .component
- .component__sub-part
- .component--variation
Block
Element
Modifier
Naming Convention
 - Example - Without BEMBEM
20
.slider{position:relative;}
.slider.slider-track{background:white;}
.slider.knob{position:absolute;}
//Variation
.slider.slider-with-input.slider-input{display:block;}
Naming Convention
 - Example - With BEMBEM
.slider{position:relative;}
.slider__track{background:white;}
.slider__knob{position:absolute;}
//Variation
.slider--with-input.slider__input{display:block;}
Selectors - Less specific. More uniform.
Commandment #6
z-index
Management
Thou shalt not mix up thy ego and
z-indexes
z-index Management
Issue?
z-index Management
Separate them out into your config as variables
$z-index-overlay: 1;
$z-index-slideout-backdrop: 1;
$z-index-slideout: 1;
$z-index-sidebar: 2; // above help panel for tooltips
$z-index-navigation: 4; // top of sidebar
$z-index-header: 4;
$z-index-modal-underlay: 4; // Below modal-box & top of
$z-index-modal-box: 5; // on top of everything
z-index Management
Changing existing z-indexes become really easy because
you know what might break.
Setting z-index for new UI elements is very easy because
you can actually position it in a similar hierarchy.
z-index Management
No more
z-index:99999;
Commandment #7
@extend -
Avoid Selector
Hell
Inheritance doesn't always gives
thou $$$$.
@extend - Avoid Selector Hell
Simple example:
SASS
.error{
color:red;
background:#ff8888;
}
.sidebar{
.error{
padding:10px;
}
}
.error-notification{
@extend.error;//GONNABEBAD!!!
}
@extend - Avoid Selector Hell
Result
SASS: CSS:
.error{
color:red;
background:#ff8888;
}
.sidebar{
.error{
padding:10px;
}
}
.error-notification{
@extend.error;
}
.error,.error-notification{
color:red;
background:#ff8888;
}
.sidebar.error,
.sidebar.error-notification{
padding:10px;
}
Unnecessary CSS generated
This is REAL!
@extend - Avoid Selector Hell
Solution: Use placeholders
SASS: CSS:
%error{
color:red;
background:#ff8888;
}
.error{
@extend%error;
}
.sidebar{
.error{
padding:10px;
}
}
.error-notification{
@extend%error;
}
.error,.error-notification{
color:red;
background:#ff8888;
}
.sidebar.error{
padding:10px;
}
@extend - Avoid Selector Hell
We reduced compilation
time by 76%
Play Time :)
bit.ly/cssconfasia
Thanks
for listening :)

More Related Content

Viewers also liked

October 2014 - USG Rock Eagle - Sass 101
October 2014 - USG Rock Eagle - Sass 101October 2014 - USG Rock Eagle - Sass 101
October 2014 - USG Rock Eagle - Sass 101Eric Sembrat
 
BEVM ( block__element--variation -modifier)
BEVM ( block__element--variation -modifier)BEVM ( block__element--variation -modifier)
BEVM ( block__element--variation -modifier)Jyaasa Technologies
 
BEM : Block Element Modifier
BEM : Block Element ModifierBEM : Block Element Modifier
BEM : Block Element ModifierSooyoos
 
BEM. What you can borrow from Yandex frontend dev
BEM. What you can borrow from Yandex frontend devBEM. What you can borrow from Yandex frontend dev
BEM. What you can borrow from Yandex frontend devVarya Stepanova
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionIn a Rocket
 
Enduring CSS
Enduring CSSEnduring CSS
Enduring CSSTakazudo
 

Viewers also liked (8)

Odnaleźć się w nanokosmosie
Odnaleźć się w nanokosmosieOdnaleźć się w nanokosmosie
Odnaleźć się w nanokosmosie
 
October 2014 - USG Rock Eagle - Sass 101
October 2014 - USG Rock Eagle - Sass 101October 2014 - USG Rock Eagle - Sass 101
October 2014 - USG Rock Eagle - Sass 101
 
BEVM ( block__element--variation -modifier)
BEVM ( block__element--variation -modifier)BEVM ( block__element--variation -modifier)
BEVM ( block__element--variation -modifier)
 
BEM : Block Element Modifier
BEM : Block Element ModifierBEM : Block Element Modifier
BEM : Block Element Modifier
 
The benefits of BEM CSS
The benefits of BEM CSSThe benefits of BEM CSS
The benefits of BEM CSS
 
BEM. What you can borrow from Yandex frontend dev
BEM. What you can borrow from Yandex frontend devBEM. What you can borrow from Yandex frontend dev
BEM. What you can borrow from Yandex frontend dev
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
 
Enduring CSS
Enduring CSSEnduring CSS
Enduring CSS
 

Similar to 10 COMMANDMENTS FOR EFFICIENT CSS ARCHITECTURE

Advanced sass/compass
Advanced sass/compassAdvanced sass/compass
Advanced sass/compassNick Cooley
 
McrFRED 39 | CSS Processors
McrFRED 39 | CSS ProcessorsMcrFRED 39 | CSS Processors
McrFRED 39 | CSS ProcessorsTristan Ashley
 
Introduction to Responsive Design v.2
Introduction to Responsive Design v.2Introduction to Responsive Design v.2
Introduction to Responsive Design v.2Clarissa Peterson
 
Introduction to Responsive Web Design
Introduction to Responsive Web DesignIntroduction to Responsive Web Design
Introduction to Responsive Web DesignClarissa Peterson
 
Web Accessibility for the 21st Century
Web Accessibility for the 21st CenturyWeb Accessibility for the 21st Century
Web Accessibility for the 21st Centurydreamwidth
 
Implementing Awesome: An HTML5/CSS3 Workshop
Implementing Awesome: An HTML5/CSS3 WorkshopImplementing Awesome: An HTML5/CSS3 Workshop
Implementing Awesome: An HTML5/CSS3 WorkshopShoshi Roberts
 
Harendra Singh,BCA Third Year
Harendra Singh,BCA Third YearHarendra Singh,BCA Third Year
Harendra Singh,BCA Third Yeardezyneecole
 
Css methods architecture
Css methods architectureCss methods architecture
Css methods architectureLasha Sumbadze
 
Deepak Soni BCA First Year
Deepak Soni BCA First YearDeepak Soni BCA First Year
Deepak Soni BCA First Yeardezyneecole
 
Keep calm and let's play CSS3
Keep calm and let's play CSS3Keep calm and let's play CSS3
Keep calm and let's play CSS3A2 Comunicação
 
Joomla! Day Chicago 2011 - Templating the right way - Jonathan Shroyer
Joomla! Day Chicago 2011 - Templating the right way - Jonathan ShroyerJoomla! Day Chicago 2011 - Templating the right way - Jonathan Shroyer
Joomla! Day Chicago 2011 - Templating the right way - Jonathan ShroyerSteven Pignataro
 
Intro to HTML & CSS
Intro to HTML & CSSIntro to HTML & CSS
Intro to HTML & CSSColin Loretz
 
It's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking ModernizrIt's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking ModernizrMichael Enslow
 
Advanced CSS Troubleshooting
Advanced CSS TroubleshootingAdvanced CSS Troubleshooting
Advanced CSS TroubleshootingDenise Jacobs
 
Advanced CSS Troubleshooting & Efficiency
Advanced CSS Troubleshooting & EfficiencyAdvanced CSS Troubleshooting & Efficiency
Advanced CSS Troubleshooting & EfficiencyDenise Jacobs
 
Efficient, maintainable CSS
Efficient, maintainable CSSEfficient, maintainable CSS
Efficient, maintainable CSSRuss Weakley
 
Blog HTML example for IML 295
Blog HTML example for IML 295Blog HTML example for IML 295
Blog HTML example for IML 295Evan Hughes
 

Similar to 10 COMMANDMENTS FOR EFFICIENT CSS ARCHITECTURE (20)

UI 101
UI 101UI 101
UI 101
 
Advanced sass/compass
Advanced sass/compassAdvanced sass/compass
Advanced sass/compass
 
McrFRED 39 | CSS Processors
McrFRED 39 | CSS ProcessorsMcrFRED 39 | CSS Processors
McrFRED 39 | CSS Processors
 
Introduction to Responsive Design v.2
Introduction to Responsive Design v.2Introduction to Responsive Design v.2
Introduction to Responsive Design v.2
 
Introduction to Responsive Web Design
Introduction to Responsive Web DesignIntroduction to Responsive Web Design
Introduction to Responsive Web Design
 
Web Accessibility for the 21st Century
Web Accessibility for the 21st CenturyWeb Accessibility for the 21st Century
Web Accessibility for the 21st Century
 
Implementing Awesome: An HTML5/CSS3 Workshop
Implementing Awesome: An HTML5/CSS3 WorkshopImplementing Awesome: An HTML5/CSS3 Workshop
Implementing Awesome: An HTML5/CSS3 Workshop
 
Harendra Singh,BCA Third Year
Harendra Singh,BCA Third YearHarendra Singh,BCA Third Year
Harendra Singh,BCA Third Year
 
Css methods architecture
Css methods architectureCss methods architecture
Css methods architecture
 
Deepak Soni BCA First Year
Deepak Soni BCA First YearDeepak Soni BCA First Year
Deepak Soni BCA First Year
 
Keep calm and let's play CSS3
Keep calm and let's play CSS3Keep calm and let's play CSS3
Keep calm and let's play CSS3
 
Joomla! Day Chicago 2011 - Templating the right way - Jonathan Shroyer
Joomla! Day Chicago 2011 - Templating the right way - Jonathan ShroyerJoomla! Day Chicago 2011 - Templating the right way - Jonathan Shroyer
Joomla! Day Chicago 2011 - Templating the right way - Jonathan Shroyer
 
CSS Extenders
CSS ExtendersCSS Extenders
CSS Extenders
 
Intro to HTML & CSS
Intro to HTML & CSSIntro to HTML & CSS
Intro to HTML & CSS
 
It's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking ModernizrIt's a Mod World - A Practical Guide to Rocking Modernizr
It's a Mod World - A Practical Guide to Rocking Modernizr
 
Advanced CSS Troubleshooting
Advanced CSS TroubleshootingAdvanced CSS Troubleshooting
Advanced CSS Troubleshooting
 
Advanced CSS Troubleshooting & Efficiency
Advanced CSS Troubleshooting & EfficiencyAdvanced CSS Troubleshooting & Efficiency
Advanced CSS Troubleshooting & Efficiency
 
Efficient, maintainable CSS
Efficient, maintainable CSSEfficient, maintainable CSS
Efficient, maintainable CSS
 
Blog HTML example for IML 295
Blog HTML example for IML 295Blog HTML example for IML 295
Blog HTML example for IML 295
 
CSS Best practice
CSS Best practiceCSS Best practice
CSS Best practice
 

Recently uploaded

Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesKrzysztofKkol1
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITmanoharjgpsolutions
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldRoberto Pérez Alcolea
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 

Recently uploaded (20)

Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilitiesAmazon Bedrock in Action - presentation of the Bedrock's capabilities
Amazon Bedrock in Action - presentation of the Bedrock's capabilities
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Best Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh ITBest Angular 17 Classroom & Online training - Naresh IT
Best Angular 17 Classroom & Online training - Naresh IT
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Keeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository worldKeeping your build tool updated in a multi repository world
Keeping your build tool updated in a multi repository world
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 

10 COMMANDMENTS FOR EFFICIENT CSS ARCHITECTURE