Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

🟦 Kotlin — Guide PRO — JVM • Android • Multiplatform

Bible Kotlin “production-ready” — coroutines, Flow, Ktor, Spring, Android Compose, KMP, tests, CI/CD, perf & sécurité.

1

Setup & Toolchain

JDK/Gradle/Maven, IntelliJ, BOM

JDKGradle
2

Syntaxe & Idiomes

null-safety, data/sealed, inline/value

NullFP
3

OOP + FP/DSL

Immutabilité, builders, contracts

DSLValue
4

Coroutines

Scopes, Dispatchers, structured concurrency

suspendIO
5

Flow & Channels

StateFlow/SharedFlow, back-pressure

FlowChannel
6

Ktor REST

Routing, middlewares, JSON, tests

KtorREST
7

Spring Boot

WebFlux, JPA/R2DBC, Validation, Test

SpringWebFlux
8

Android Compose

MVVM, StateFlow, Room, Navigation

ComposeRoom
9

KMP

Common code, expect/actual, targets

KMPNative
10

Persistence

Exposed, JPA, jOOQ — choix

DBSQL
11

DI

Koin/Hilt modules & scopes

DIKoin
12

Build & CI

Gradle Kotlin DSL, ktlint/detekt, matrix

CIGradle
13

Sérialisation

kotlinx, Moshi, Jackson-Kotlin

JSONKSP
14

Tests

JUnit5, Kotest, MockK, runTest

TestMockK
15

Perf & Concurrency

KPIs, sizing, JFR/async-profiler

PerfJFR
16

DSL avancés

Builders type-safe, inline helpers

DSLConfig
17

Style & Rules

explicitApi, rulesets, conventions

StyleLint
18

Sécurité

JWT, OWASP, secrets, HTTPS, CSRF

AuthJWT
19

Erreurs & Exceptions

Either/Result, retry, circuit breaker

RetryErrors
20

Logging & Obs

Structured logging, MDC, OpenTelemetry

LogsOTel
21

CI/CD & Packaging

GHActions, container, Jib, GraalVM

CICD
22

Gradle Catalogs

version catalogs, platforms, buildSrc

GradleLibs
23

Interop & JNI

Appels Java/C, native interop

JNINative
24

Serverless

Cloud Functions, AWS Lambda with Kotlin

LambdaGCP
25

Cloud & Infra

Docker, K8s, Helm, KEDA autoscaling

K8sDocker
26

Observabilité

metrics, tracing, dashboards

MetricsTracing
27

Bench & Profiling

JMH, JFR, async‑profiler

JMHJFR
28

Mémoire & GC

G1/ZGC, allocations, escape analysis

GCMemory
29

Collections & Algo

Sequences, persistent collections

AlgoSeq
30

Date/Time

java.time, kotlinx-datetime

TimeClock
31

I/O & Files

NIO2, kotlinx-io, buffering

IOFiles
32

Networking

HTTP clients, websockets

HTTPWS
33

GraphQL

Ktor/Spring GraphQL, schema-first/code-first

GraphQL
34

gRPC

Kotlin + gRPC + protobuf

gRPCProto
35

WebSockets

Ktor WS/Channels, back-pressure

WSRealtime
Setup & Toolchain
  • Objectifs : prise en main Setup/Toolchain, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | Setup/Toolchain — Overview| +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
Gradle Kotlin DSL (JVM)
plugins { kotlin("jvm") version "2.0.0"; application }
java { toolchain { languageVersion.set(JavaLanguageVersion.of(21)) } }
repositories { mavenCentral() }
dependencies { implementation(platform("org.jetbrains.kotlin:kotlin-bom")); testImplementation(kotlin("test")) }
application { mainClass.set("AppKt") }
Best practices
  • Utiliser JDK 17/21 LTS, Gradle 8.x, Kotlin 2.x (K2).
  • Activer cache Gradle + configuration cache en CI.
  • Version catalogs (libs.versions.toml) pour lock des versions.
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mélanger Groovy DSL et Kotlin DSL dans le même projet.
  • Désactiver les tests en CI pour « gagner du temps ».
  • Hardcoder des secrets/API keys dans le repo.
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Temps build (CI)< 2–4 minCache Gradle, parallel, remote cache
Flakiness tests0%Tests hermétiques, containers (Testcontainers)
Sécurité dépendancesA jourDependabot/Renovate + SBOM
Checklist
  1. Configurer toolchain Java 21 + Kotlin 2.x.
  2. Activer ktlint/detekt et Checkstyle (optionnel).
  3. CI GitHub Actions matrix (JDK 17/21).
Tests
class BuildTest {
  @Test fun ok(){ assertEquals(4, 2 + 2) }
}
Snippets utiles
kotlinc Main.kt -include-runtime -d app.jar
java -jar app.jar
gradle -Dorg.gradle.caching=true -Dorg.gradle.parallel=true build
Coroutines
  • Objectifs : prise en main Coroutines, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | Coroutines — Overview| +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
DispatcherUsageNote
Dispatcher.DefaultCPU‑boundParallelisme = #cores
Dispatcher.IOI/O DB/HTTP/filesLimiter latence p95
MainUI threadEviter blocages
Structured concurrency
fun main() = runBlocking {
  coroutineScope {
    val a = async { computeA() }
    val b = async { computeB() }
    println(a.await() + b.await())
  }
}
Best practices
  • Toujours scoped (CoroutineScope fourni par DI / framework).
  • Séparer IO vs CPU (Dispatchers.IO / Default).
  • Supervision: SupervisorJob pour isoler les échecs.
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • GlobalScope en prod (fuites).
  • runBlocking dans le code serveur.
  • Ignorer la cancellation (leaks, jobs zombies).
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableLimiter contention, back‑pressure
Timeouts0timeouts + retry + circuit breaker
Fuites jobs0Scopes fermés, cancellation
Checklist
  1. Créer un scope par composant long‑lived.
  2. Gérer cancellation dans I/O.
  3. Propager le contexte MDC (logging).
Tests
@OptIn(ExperimentalCoroutinesApi::class)
class CoroutinesTest {
  @Test fun ok() = runTest {
    val r = withContext(Dispatchers.Default){ 40 + 2 }
    assertEquals(42, r)
  }
}
Snippets utiles
val scope = CoroutineScope(SupervisorJob()+Dispatchers.IO)
scope.launch { /* work */ }
scope.cancel()
Flow & Channels
  • Objectifs : prise en main Flow/StateFlow/SharedFlow, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | Flow/StateFlow/SharedFlow — Overview| +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | Reactive Streams | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
Flow + operators
val f = flow {
  emit(1); delay(50); emit(2); emit(3)
}.map{ it * 2 }.filter{ it > 2 }
f.onEach{ println(it) }.launchIn(scope)
Best practices
  • StateFlow pour l'état UI, SharedFlow pour events.
  • Limiter buffer/bufferSize pour back‑pressure.
  • Utiliser retry/backoff en réseau.
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • collect {} bloquant dans UI.
  • replay trop grand (mémoire).
  • Channels non fermés.
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Recompositions UIMinStateFlow + equals() correct
Mémoire replayBasSharedFlow replay=1 ou 0
Latence fluxStableSchedulers appropriés
Checklist
  1. Définir flux froid vs chaud.
  2. Limiter replay/buffer.
  3. Tests de flux (Turbine/Kotest).
Tests
@Test fun flow_ok() = runTest {
  val s = MutableStateFlow(0); s.value = 1
  assertEquals(1, s.value)
}
Snippets utiles
val state = MutableStateFlow(State())
val shared = MutableSharedFlow(replay=1)
Ktor REST API
  • Objectifs : prise en main Ktor REST API, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | Ktor REST API — Overview| +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
FeatureRoleNotes
ContentNegotiationJSON, proto, CBORkotlinx.serialization
StatusPagesErreurs custommappage exceptions
CallLoggingMDC/trace-idcorrélation
Serveur Netty + JSON
fun Application.module(){
  install(CallLogging)
  install(StatusPages){ exception{ call, _ -> call.respond(HttpStatusCode.InternalServerError) } }
  install(ContentNegotiation){ json() }
  routing {
    get("/health"){ call.respond(mapOf("ok" to true)) }
    post("/echo"){ val p = call.receive>(); call.respond(p) }
  }
}
fun main(){ embeddedServer(Netty, port=8080, module=Application::module).start(true) }
Best practices
  • Séparer module() et main(), tests via testApplication.
  • Middlewares: logging, error handling, auth (JWT).
  • Contracts DTO + validation.
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Logic métier dans routing directement.
  • Absence de tests intégration.
  • Pas de timeout HTTP client/serveur.
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
p95 /health< 5 msLimiter overhead
Couverture tests> 80%TU + intégration
Erreurs 5xx≈ 0gestion erreurs + retry côté client
Checklist
  1. DTO + validation.
  2. StatusPages pour exceptions.
  3. Tests e2e via testApplication.
Tests
@Test fun health() = testApplication {
  application { module() }
  client.get("/health").apply{ assertEquals(HttpStatusCode.OK, status) }
}
Snippets utiles
install(ContentNegotiation){ json() }
install(StatusPages){ exception{ call,_ -> call.respond(HttpStatusCode.InternalServerError) } }
Syntax
  • Objectifs : prise en main SYNTAX, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | SYNTAX — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | SYNTAX | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
SYNTAX — exemple
// SYNTAX example code
fun demo() { println("SYNTAX") }
Best practices
  • Règle 1 SYNTAX
  • Règle 2 SYNTAX
  • Règle 3 SYNTAX
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A SYNTAX
  • Mauvaise pratique B SYNTAX
  • Mauvaise pratique C SYNTAX
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist SYNTAX — #1
  2. Checklist SYNTAX — #2
  3. Checklist SYNTAX — #3
Tests
@Test fun SYNTAX_ok() { assertTrue(true) }
Snippets utiles
// SYNTAX snippet 1
// SYNTAX snippet 2
// SYNTAX snippet 3
Oopfp
  • Objectifs : prise en main OOPFP, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | OOPFP — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | OOPFP | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
OOPFP — exemple
// OOPFP example code
fun demo() { println("OOPFP") }
Best practices
  • Règle 1 OOPFP
  • Règle 2 OOPFP
  • Règle 3 OOPFP
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A OOPFP
  • Mauvaise pratique B OOPFP
  • Mauvaise pratique C OOPFP
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist OOPFP — #1
  2. Checklist OOPFP — #2
  3. Checklist OOPFP — #3
Tests
@Test fun OOPFP_ok() { assertTrue(true) }
Snippets utiles
// OOPFP snippet 1
// OOPFP snippet 2
// OOPFP snippet 3
Spring
  • Objectifs : prise en main SPRING, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | SPRING — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | SPRING | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
SPRING — exemple
// SPRING example code
fun demo() { println("SPRING") }
Best practices
  • Règle 1 SPRING
  • Règle 2 SPRING
  • Règle 3 SPRING
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A SPRING
  • Mauvaise pratique B SPRING
  • Mauvaise pratique C SPRING
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist SPRING — #1
  2. Checklist SPRING — #2
  3. Checklist SPRING — #3
Tests
@Test fun SPRING_ok() { assertTrue(true) }
Snippets utiles
// SPRING snippet 1
// SPRING snippet 2
// SPRING snippet 3
Android
  • Objectifs : prise en main ANDROID, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | ANDROID — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | ANDROID | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
ANDROID — exemple
// ANDROID example code
fun demo() { println("ANDROID") }
Best practices
  • Règle 1 ANDROID
  • Règle 2 ANDROID
  • Règle 3 ANDROID
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A ANDROID
  • Mauvaise pratique B ANDROID
  • Mauvaise pratique C ANDROID
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist ANDROID — #1
  2. Checklist ANDROID — #2
  3. Checklist ANDROID — #3
Tests
@Test fun ANDROID_ok() { assertTrue(true) }
Snippets utiles
// ANDROID snippet 1
// ANDROID snippet 2
// ANDROID snippet 3
Kmp
  • Objectifs : prise en main KMP, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | KMP — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | KMP | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
KMP — exemple
// KMP example code
fun demo() { println("KMP") }
Best practices
  • Règle 1 KMP
  • Règle 2 KMP
  • Règle 3 KMP
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A KMP
  • Mauvaise pratique B KMP
  • Mauvaise pratique C KMP
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist KMP — #1
  2. Checklist KMP — #2
  3. Checklist KMP — #3
Tests
@Test fun KMP_ok() { assertTrue(true) }
Snippets utiles
// KMP snippet 1
// KMP snippet 2
// KMP snippet 3
Persistence
  • Objectifs : prise en main PERSISTENCE, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | PERSISTENCE — Overview| +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | PERSISTENCE | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
PERSISTENCE — exemple
// PERSISTENCE example code
fun demo() { println("PERSISTENCE") }
Best practices
  • Règle 1 PERSISTENCE
  • Règle 2 PERSISTENCE
  • Règle 3 PERSISTENCE
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A PERSISTENCE
  • Mauvaise pratique B PERSISTENCE
  • Mauvaise pratique C PERSISTENCE
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist PERSISTENCE — #1
  2. Checklist PERSISTENCE — #2
  3. Checklist PERSISTENCE — #3
Tests
@Test fun PERSISTENCE_ok() { assertTrue(true) }
Snippets utiles
// PERSISTENCE snippet 1
// PERSISTENCE snippet 2
// PERSISTENCE snippet 3
Di
  • Objectifs : prise en main DI, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | DI — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | DI | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
DI — exemple
// DI example code
fun demo() { println("DI") }
Best practices
  • Règle 1 DI
  • Règle 2 DI
  • Règle 3 DI
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A DI
  • Mauvaise pratique B DI
  • Mauvaise pratique C DI
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist DI — #1
  2. Checklist DI — #2
  3. Checklist DI — #3
Tests
@Test fun DI_ok() { assertTrue(true) }
Snippets utiles
// DI snippet 1
// DI snippet 2
// DI snippet 3
Build
  • Objectifs : prise en main BUILD, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | BUILD — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | BUILD | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
BUILD — exemple
// BUILD example code
fun demo() { println("BUILD") }
Best practices
  • Règle 1 BUILD
  • Règle 2 BUILD
  • Règle 3 BUILD
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A BUILD
  • Mauvaise pratique B BUILD
  • Mauvaise pratique C BUILD
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist BUILD — #1
  2. Checklist BUILD — #2
  3. Checklist BUILD — #3
Tests
@Test fun BUILD_ok() { assertTrue(true) }
Snippets utiles
// BUILD snippet 1
// BUILD snippet 2
// BUILD snippet 3
Serialization
  • Objectifs : prise en main SERIALIZATION, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | SERIALIZATION — Overview| +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | SERIALIZATION | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
SERIALIZATION — exemple
// SERIALIZATION example code
fun demo() { println("SERIALIZATION") }
Best practices
  • Règle 1 SERIALIZATION
  • Règle 2 SERIALIZATION
  • Règle 3 SERIALIZATION
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A SERIALIZATION
  • Mauvaise pratique B SERIALIZATION
  • Mauvaise pratique C SERIALIZATION
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist SERIALIZATION — #1
  2. Checklist SERIALIZATION — #2
  3. Checklist SERIALIZATION — #3
Tests
@Test fun SERIALIZATION_ok() { assertTrue(true) }
Snippets utiles
// SERIALIZATION snippet 1
// SERIALIZATION snippet 2
// SERIALIZATION snippet 3
Test
  • Objectifs : prise en main TEST, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | TEST — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | TEST | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
TEST — exemple
// TEST example code
fun demo() { println("TEST") }
Best practices
  • Règle 1 TEST
  • Règle 2 TEST
  • Règle 3 TEST
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A TEST
  • Mauvaise pratique B TEST
  • Mauvaise pratique C TEST
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist TEST — #1
  2. Checklist TEST — #2
  3. Checklist TEST — #3
Tests
@Test fun TEST_ok() { assertTrue(true) }
Snippets utiles
// TEST snippet 1
// TEST snippet 2
// TEST snippet 3
Perf
  • Objectifs : prise en main PERF, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | PERF — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | PERF | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
PERF — exemple
// PERF example code
fun demo() { println("PERF") }
Best practices
  • Règle 1 PERF
  • Règle 2 PERF
  • Règle 3 PERF
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A PERF
  • Mauvaise pratique B PERF
  • Mauvaise pratique C PERF
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist PERF — #1
  2. Checklist PERF — #2
  3. Checklist PERF — #3
Tests
@Test fun PERF_ok() { assertTrue(true) }
Snippets utiles
// PERF snippet 1
// PERF snippet 2
// PERF snippet 3
Dsl
  • Objectifs : prise en main DSL, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | DSL — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | DSL | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
DSL — exemple
// DSL example code
fun demo() { println("DSL") }
Best practices
  • Règle 1 DSL
  • Règle 2 DSL
  • Règle 3 DSL
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A DSL
  • Mauvaise pratique B DSL
  • Mauvaise pratique C DSL
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist DSL — #1
  2. Checklist DSL — #2
  3. Checklist DSL — #3
Tests
@Test fun DSL_ok() { assertTrue(true) }
Snippets utiles
// DSL snippet 1
// DSL snippet 2
// DSL snippet 3
Style
  • Objectifs : prise en main STYLE, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | STYLE — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | STYLE | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
STYLE — exemple
// STYLE example code
fun demo() { println("STYLE") }
Best practices
  • Règle 1 STYLE
  • Règle 2 STYLE
  • Règle 3 STYLE
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A STYLE
  • Mauvaise pratique B STYLE
  • Mauvaise pratique C STYLE
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist STYLE — #1
  2. Checklist STYLE — #2
  3. Checklist STYLE — #3
Tests
@Test fun STYLE_ok() { assertTrue(true) }
Snippets utiles
// STYLE snippet 1
// STYLE snippet 2
// STYLE snippet 3
Security
  • Objectifs : prise en main SECURITY, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | SECURITY — Overview| +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | SECURITY | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
SECURITY — exemple
// SECURITY example code
fun demo() { println("SECURITY") }
Best practices
  • Règle 1 SECURITY
  • Règle 2 SECURITY
  • Règle 3 SECURITY
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A SECURITY
  • Mauvaise pratique B SECURITY
  • Mauvaise pratique C SECURITY
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist SECURITY — #1
  2. Checklist SECURITY — #2
  3. Checklist SECURITY — #3
Tests
@Test fun SECURITY_ok() { assertTrue(true) }
Snippets utiles
// SECURITY snippet 1
// SECURITY snippet 2
// SECURITY snippet 3
Errors
  • Objectifs : prise en main ERRORS, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | ERRORS — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | ERRORS | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
ERRORS — exemple
// ERRORS example code
fun demo() { println("ERRORS") }
Best practices
  • Règle 1 ERRORS
  • Règle 2 ERRORS
  • Règle 3 ERRORS
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A ERRORS
  • Mauvaise pratique B ERRORS
  • Mauvaise pratique C ERRORS
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist ERRORS — #1
  2. Checklist ERRORS — #2
  3. Checklist ERRORS — #3
Tests
@Test fun ERRORS_ok() { assertTrue(true) }
Snippets utiles
// ERRORS snippet 1
// ERRORS snippet 2
// ERRORS snippet 3
Obs
  • Objectifs : prise en main OBS, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | OBS — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | OBS | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
OBS — exemple
// OBS example code
fun demo() { println("OBS") }
Best practices
  • Règle 1 OBS
  • Règle 2 OBS
  • Règle 3 OBS
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A OBS
  • Mauvaise pratique B OBS
  • Mauvaise pratique C OBS
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist OBS — #1
  2. Checklist OBS — #2
  3. Checklist OBS — #3
Tests
@Test fun OBS_ok() { assertTrue(true) }
Snippets utiles
// OBS snippet 1
// OBS snippet 2
// OBS snippet 3
Cicd
  • Objectifs : prise en main CICD, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | CICD — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | CICD | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
CICD — exemple
// CICD example code
fun demo() { println("CICD") }
Best practices
  • Règle 1 CICD
  • Règle 2 CICD
  • Règle 3 CICD
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A CICD
  • Mauvaise pratique B CICD
  • Mauvaise pratique C CICD
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist CICD — #1
  2. Checklist CICD — #2
  3. Checklist CICD — #3
Tests
@Test fun CICD_ok() { assertTrue(true) }
Snippets utiles
// CICD snippet 1
// CICD snippet 2
// CICD snippet 3
Catalogs
  • Objectifs : prise en main CATALOGS, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | CATALOGS — Overview| +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | CATALOGS | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
CATALOGS — exemple
// CATALOGS example code
fun demo() { println("CATALOGS") }
Best practices
  • Règle 1 CATALOGS
  • Règle 2 CATALOGS
  • Règle 3 CATALOGS
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A CATALOGS
  • Mauvaise pratique B CATALOGS
  • Mauvaise pratique C CATALOGS
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist CATALOGS — #1
  2. Checklist CATALOGS — #2
  3. Checklist CATALOGS — #3
Tests
@Test fun CATALOGS_ok() { assertTrue(true) }
Snippets utiles
// CATALOGS snippet 1
// CATALOGS snippet 2
// CATALOGS snippet 3
Jni
  • Objectifs : prise en main JNI, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | JNI — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | JNI | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
JNI — exemple
// JNI example code
fun demo() { println("JNI") }
Best practices
  • Règle 1 JNI
  • Règle 2 JNI
  • Règle 3 JNI
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A JNI
  • Mauvaise pratique B JNI
  • Mauvaise pratique C JNI
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist JNI — #1
  2. Checklist JNI — #2
  3. Checklist JNI — #3
Tests
@Test fun JNI_ok() { assertTrue(true) }
Snippets utiles
// JNI snippet 1
// JNI snippet 2
// JNI snippet 3
Serverless
  • Objectifs : prise en main SERVERLESS, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | SERVERLESS — Overview| +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | SERVERLESS | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
SERVERLESS — exemple
// SERVERLESS example code
fun demo() { println("SERVERLESS") }
Best practices
  • Règle 1 SERVERLESS
  • Règle 2 SERVERLESS
  • Règle 3 SERVERLESS
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A SERVERLESS
  • Mauvaise pratique B SERVERLESS
  • Mauvaise pratique C SERVERLESS
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist SERVERLESS — #1
  2. Checklist SERVERLESS — #2
  3. Checklist SERVERLESS — #3
Tests
@Test fun SERVERLESS_ok() { assertTrue(true) }
Snippets utiles
// SERVERLESS snippet 1
// SERVERLESS snippet 2
// SERVERLESS snippet 3
Cloud
  • Objectifs : prise en main CLOUD, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | CLOUD — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | CLOUD | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
CLOUD — exemple
// CLOUD example code
fun demo() { println("CLOUD") }
Best practices
  • Règle 1 CLOUD
  • Règle 2 CLOUD
  • Règle 3 CLOUD
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A CLOUD
  • Mauvaise pratique B CLOUD
  • Mauvaise pratique C CLOUD
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist CLOUD — #1
  2. Checklist CLOUD — #2
  3. Checklist CLOUD — #3
Tests
@Test fun CLOUD_ok() { assertTrue(true) }
Snippets utiles
// CLOUD snippet 1
// CLOUD snippet 2
// CLOUD snippet 3
Observe
  • Objectifs : prise en main OBSERVE, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | OBSERVE — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | OBSERVE | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
OBSERVE — exemple
// OBSERVE example code
fun demo() { println("OBSERVE") }
Best practices
  • Règle 1 OBSERVE
  • Règle 2 OBSERVE
  • Règle 3 OBSERVE
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A OBSERVE
  • Mauvaise pratique B OBSERVE
  • Mauvaise pratique C OBSERVE
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist OBSERVE — #1
  2. Checklist OBSERVE — #2
  3. Checklist OBSERVE — #3
Tests
@Test fun OBSERVE_ok() { assertTrue(true) }
Snippets utiles
// OBSERVE snippet 1
// OBSERVE snippet 2
// OBSERVE snippet 3
Bench
  • Objectifs : prise en main BENCH, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | BENCH — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | BENCH | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
BENCH — exemple
// BENCH example code
fun demo() { println("BENCH") }
Best practices
  • Règle 1 BENCH
  • Règle 2 BENCH
  • Règle 3 BENCH
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A BENCH
  • Mauvaise pratique B BENCH
  • Mauvaise pratique C BENCH
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist BENCH — #1
  2. Checklist BENCH — #2
  3. Checklist BENCH — #3
Tests
@Test fun BENCH_ok() { assertTrue(true) }
Snippets utiles
// BENCH snippet 1
// BENCH snippet 2
// BENCH snippet 3
Memory
  • Objectifs : prise en main MEMORY, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | MEMORY — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | MEMORY | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
MEMORY — exemple
// MEMORY example code
fun demo() { println("MEMORY") }
Best practices
  • Règle 1 MEMORY
  • Règle 2 MEMORY
  • Règle 3 MEMORY
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A MEMORY
  • Mauvaise pratique B MEMORY
  • Mauvaise pratique C MEMORY
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist MEMORY — #1
  2. Checklist MEMORY — #2
  3. Checklist MEMORY — #3
Tests
@Test fun MEMORY_ok() { assertTrue(true) }
Snippets utiles
// MEMORY snippet 1
// MEMORY snippet 2
// MEMORY snippet 3
Collections
  • Objectifs : prise en main COLLECTIONS, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | COLLECTIONS — Overview| +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | COLLECTIONS | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
COLLECTIONS — exemple
// COLLECTIONS example code
fun demo() { println("COLLECTIONS") }
Best practices
  • Règle 1 COLLECTIONS
  • Règle 2 COLLECTIONS
  • Règle 3 COLLECTIONS
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A COLLECTIONS
  • Mauvaise pratique B COLLECTIONS
  • Mauvaise pratique C COLLECTIONS
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist COLLECTIONS — #1
  2. Checklist COLLECTIONS — #2
  3. Checklist COLLECTIONS — #3
Tests
@Test fun COLLECTIONS_ok() { assertTrue(true) }
Snippets utiles
// COLLECTIONS snippet 1
// COLLECTIONS snippet 2
// COLLECTIONS snippet 3
Time
  • Objectifs : prise en main TIME, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | TIME — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | TIME | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
TIME — exemple
// TIME example code
fun demo() { println("TIME") }
Best practices
  • Règle 1 TIME
  • Règle 2 TIME
  • Règle 3 TIME
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A TIME
  • Mauvaise pratique B TIME
  • Mauvaise pratique C TIME
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist TIME — #1
  2. Checklist TIME — #2
  3. Checklist TIME — #3
Tests
@Test fun TIME_ok() { assertTrue(true) }
Snippets utiles
// TIME snippet 1
// TIME snippet 2
// TIME snippet 3
Io
  • Objectifs : prise en main IO, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | IO — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | IO | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
IO — exemple
// IO example code
fun demo() { println("IO") }
Best practices
  • Règle 1 IO
  • Règle 2 IO
  • Règle 3 IO
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A IO
  • Mauvaise pratique B IO
  • Mauvaise pratique C IO
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist IO — #1
  2. Checklist IO — #2
  3. Checklist IO — #3
Tests
@Test fun IO_ok() { assertTrue(true) }
Snippets utiles
// IO snippet 1
// IO snippet 2
// IO snippet 3
Net
  • Objectifs : prise en main NET, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | NET — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | NET | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
NET — exemple
// NET example code
fun demo() { println("NET") }
Best practices
  • Règle 1 NET
  • Règle 2 NET
  • Règle 3 NET
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A NET
  • Mauvaise pratique B NET
  • Mauvaise pratique C NET
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist NET — #1
  2. Checklist NET — #2
  3. Checklist NET — #3
Tests
@Test fun NET_ok() { assertTrue(true) }
Snippets utiles
// NET snippet 1
// NET snippet 2
// NET snippet 3
Graphql
  • Objectifs : prise en main GRAPHQL, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | GRAPHQL — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | GRAPHQL | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
GRAPHQL — exemple
// GRAPHQL example code
fun demo() { println("GRAPHQL") }
Best practices
  • Règle 1 GRAPHQL
  • Règle 2 GRAPHQL
  • Règle 3 GRAPHQL
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A GRAPHQL
  • Mauvaise pratique B GRAPHQL
  • Mauvaise pratique C GRAPHQL
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist GRAPHQL — #1
  2. Checklist GRAPHQL — #2
  3. Checklist GRAPHQL — #3
Tests
@Test fun GRAPHQL_ok() { assertTrue(true) }
Snippets utiles
// GRAPHQL snippet 1
// GRAPHQL snippet 2
// GRAPHQL snippet 3
Grpc
  • Objectifs : prise en main GRPC, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | GRPC — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | GRPC | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
GRPC — exemple
// GRPC example code
fun demo() { println("GRPC") }
Best practices
  • Règle 1 GRPC
  • Règle 2 GRPC
  • Règle 3 GRPC
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A GRPC
  • Mauvaise pratique B GRPC
  • Mauvaise pratique C GRPC
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist GRPC — #1
  2. Checklist GRPC — #2
  3. Checklist GRPC — #3
Tests
@Test fun GRPC_ok() { assertTrue(true) }
Snippets utiles
// GRPC snippet 1
// GRPC snippet 2
// GRPC snippet 3
Ws
  • Objectifs : prise en main WS, patterns de prod, erreurs fréquentes.
  • KPIs de pilotage (latence p95, throughput, erreurs).
  • Snippets prêts à copier/coller.
+-------------------+ | WS — Overview | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
+-------------------+ | WS | +---------+---------+ | Flow/Coroutines | +-------v-------+ | Business | | Logic | +-------+-------+ | Persistence
WS — exemple
// WS example code
fun demo() { println("WS") }
Best practices
  • Règle 1 WS
  • Règle 2 WS
  • Règle 3 WS
Toujours préférer la simplicité, profiler avant d'optimiser.
Anti‑patterns
  • Mauvaise pratique A WS
  • Mauvaise pratique B WS
  • Mauvaise pratique C WS
Ces patterns génèrent fuites mémoire, blocages ou régressions.
KPIs
KPICibleAction
Latence p95StableOptimiser chemins chauds
Erreurs≈ 0Tests, validation
ThroughputMaxParallelisme/IO
Checklist
  1. Checklist WS — #1
  2. Checklist WS — #2
  3. Checklist WS — #3
Tests
@Test fun WS_ok() { assertTrue(true) }
Snippets utiles
// WS snippet 1
// WS snippet 2
// WS snippet 3