1
0
mirror of https://github.com/kamranahmedse/developer-roadmap.git synced 2025-08-22 00:43:01 +02:00

Add backend performance best practices

This commit is contained in:
Kamran Ahmed
2024-03-25 15:15:30 +00:00
parent 0d43103323
commit cdb9a87c85
51 changed files with 4615 additions and 8 deletions

View File

@@ -5,7 +5,7 @@ const CONTENT_DIR = path.join(__dirname, '../content');
// Directory containing the best-practices // Directory containing the best-practices
const BEST_PRACTICE_CONTENT_DIR = path.join( const BEST_PRACTICE_CONTENT_DIR = path.join(
__dirname, __dirname,
'../src/data/best-practices' '../src/data/best-practices',
); );
const bestPracticeId = process.argv[2]; const bestPracticeId = process.argv[2];
@@ -33,18 +33,18 @@ if (!bestPracticeDirName) {
const bestPracticeDirPath = path.join( const bestPracticeDirPath = path.join(
BEST_PRACTICE_CONTENT_DIR, BEST_PRACTICE_CONTENT_DIR,
bestPracticeDirName bestPracticeDirName,
); );
const bestPracticeContentDirPath = path.join( const bestPracticeContentDirPath = path.join(
BEST_PRACTICE_CONTENT_DIR, BEST_PRACTICE_CONTENT_DIR,
bestPracticeDirName, bestPracticeDirName,
'content' 'content',
); );
// If best practice content already exists do not proceed as it would override the files // If best practice content already exists do not proceed as it would override the files
if (fs.existsSync(bestPracticeContentDirPath)) { if (fs.existsSync(bestPracticeContentDirPath)) {
console.error( console.error(
`Best Practice content already exists @ ${bestPracticeContentDirPath}` `Best Practice content already exists @ ${bestPracticeContentDirPath}`,
); );
process.exit(1); process.exit(1);
} }
@@ -88,10 +88,12 @@ function prepareDirTree(control, dirTree) {
return { dirTree }; return { dirTree };
} }
const bestPractice = require(path.join( const bestPractice = require(
path.join(
__dirname, __dirname,
`../public/jsons/best-practices/${bestPracticeId}` `../src/data/best-practices/${bestPracticeId}/${bestPracticeId}`,
)); ),
);
const controls = bestPractice.mockup.controls.control; const controls = bestPractice.mockup.controls.control;
// Prepare the dir tree that we will be creating // Prepare the dir tree that we will be creating

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,30 @@
---
jsonUrl: '/jsons/best-practices/backend-performance.json'
pdfUrl: '/pdfs/best-practices/backend-performance.pdf'
order: 1
briefTitle: 'Backend Performance'
briefDescription: 'Backend Performance Best Practices'
isNew: true
isUpcoming: false
title: 'Backend Performance Best Practices'
description: 'Detailed list of best practices to improve your backend performance'
dimensions:
width: 968
height: 1860.38
schema:
headline: 'Backend Performance Best Practices'
description: 'Detailed list of best practices to improve the backend performance of your website. Each best practice carries further details and how to implement that best practice.'
imageUrl: 'https://roadmap.sh/best-practices/backend-performance.png'
datePublished: '2023-01-23'
dateModified: '2023-01-23'
seo:
title: 'Backend Performance Best Practices'
description: 'Detailed list of best practices to improve the backend performance of your website. Each best practice carries further details and how to implement that best practice.'
keywords:
- 'backend performance'
- 'api performance'
- 'backend performance best practices'
- 'backend performance checklist'
- 'backend checklist'
- 'make performant backends'
---

View File

@@ -0,0 +1 @@
# Architectural styles

View File

@@ -0,0 +1 @@
# Async logging

View File

@@ -0,0 +1 @@
# Authentication authorization

View File

@@ -0,0 +1 @@
# Cache invalidation

View File

@@ -0,0 +1 @@
# Caching locations

View File

@@ -0,0 +1 @@
# Caching strategies

View File

@@ -0,0 +1 @@
# Cdns

View File

@@ -0,0 +1 @@
# Cleanup data

View File

@@ -0,0 +1 @@
# Compiled languages

View File

@@ -0,0 +1 @@
# Connection pool settings

View File

@@ -0,0 +1 @@
# Connection pooling

View File

@@ -0,0 +1 @@
# Connection timeouts

View File

@@ -0,0 +1 @@
# Critical paths

View File

@@ -0,0 +1 @@
# Db indexes

View File

@@ -0,0 +1 @@
# Denormalize

View File

@@ -0,0 +1 @@
# Enable compression

View File

@@ -0,0 +1 @@
# Implement pagination

View File

@@ -0,0 +1 @@
#

View File

@@ -0,0 +1 @@
# Join operations

View File

@@ -0,0 +1 @@
# Keep alive

View File

@@ -0,0 +1 @@
# Lazy eager

View File

@@ -0,0 +1 @@
# Load balancing

View File

@@ -0,0 +1 @@
# Message brokers

View File

@@ -0,0 +1 @@
# Minimize iframe count

View File

@@ -0,0 +1 @@
# Monitoring logging

View File

@@ -0,0 +1 @@
# Network latency

View File

@@ -0,0 +1 @@
# Offload heavy

View File

@@ -0,0 +1 @@
# Optimize algorithms

View File

@@ -0,0 +1 @@
# Orm queries

View File

@@ -0,0 +1 @@
# Pagination large data

View File

@@ -0,0 +1 @@
# Perf testing

View File

@@ -0,0 +1 @@
# Prefetch preload

View File

@@ -0,0 +1 @@
# Profile code

View File

@@ -0,0 +1 @@
# Profiling tools

View File

@@ -0,0 +1 @@
# Prometheus graphana

View File

@@ -0,0 +1 @@
# Reasonable payload

View File

@@ -0,0 +1 @@
# Regular audits

View File

@@ -0,0 +1 @@
# Replication

View File

@@ -0,0 +1 @@
# Request throttling

View File

@@ -0,0 +1 @@
# Scaling strategies

View File

@@ -0,0 +1 @@
# Select star

View File

@@ -0,0 +1 @@
# Similar requests

View File

@@ -0,0 +1 @@
# Slow logging

View File

@@ -0,0 +1 @@
# Streaming large

View File

@@ -0,0 +1 @@
# Unnecessary computation

View File

@@ -0,0 +1 @@
# Up to date

View File

@@ -0,0 +1 @@
# Use db sharding

View File

@@ -0,0 +1 @@
# Utilize caching