Skip to content

Développement - Vue d'ensemble

Mes projets et expérimentations en développement logiciel, axés sur les bonnes pratiques du craftmanship et la qualité du code.

Philosophie Craftmanship

Ma vision

"Code propre, architecture solide, tests en première ligne. L'artisanat logiciel au service de la qualité."

Principes fondamentaux

  • Clean Code : Lisibilité, simplicité, expressivité
  • TDD/BDD : Tests d'abord, design émergent
  • SOLID : Principes de conception orientée objet
  • DRY/KISS : Ne pas se répéter, rester simple

Domaines d'expertise

Clean Code & TDD

Pratiques de code propre, développement piloté par les tests.

Projets récents : - Refactoring avec couverture 100% - Implémentation TDD complète d'une API - Code review avec métriques qualité

Voir Clean Code & TDD

Design Patterns

Patterns classiques et modernes, applications pratiques.

Projets récents : - Factory Pattern pour création d'objets complexes - Observer Pattern pour événements React - Strategy Pattern pour algorithmes métier

Voir Design Patterns

Architecture

Architectures hexagonale, DDD, microservices et patterns architecturaux.

Projets récents : - Architecture hexagonale avec Laravel - CQRS/Event Sourcing - Clean Architecture React

Voir Architecture

React Craftmanship

Bonnes pratiques React, hooks custom, patterns avancés.

Projets récents : - Custom hooks réutilisables - Architecture composants avec render props - Performance optimization patterns

Voir React Craftmanship

Laravel Craftmanship

Patterns Laravel, architecture propre, bonnes pratiques PHP.

Projets récents : - Domain-driven design avec Laravel - Service Layer Pattern - Repository Pattern avec Eloquent

Voir Laravel Craftmanship

Projets Infrastructure

Applications développées pour améliorer la gestion et la visibilité de l'infrastructure.

Projets récents : - Nomad App Store : Interface de gestion centralisée des applications - Dashboard temps réel avec intégration API Nomad - Système de catégorisation et filtrage avancé

Voir Nomad App Store

Stack technologique

  • PHP 8.3+ : Types stricts, enums, attributs
  • TypeScript : Type safety, génériques avancés
  • JavaScript ES2024 : Modules, async/await
  • SQL : Requêtes optimisées, procédures
  • Laravel 11 : Eloquent, Services, Events
  • React 18 : Hooks, Suspense, Concurrent features
  • Next.js 14 : App router, Server components
  • Vue 3 : Composition API, Pinia
  • Pest PHP : Tests expressifs et lisibles
  • Vitest : Tests unitaires JavaScript rapides
  • React Testing Library : Tests centrés utilisateur
  • Playwright : Tests E2E robustes
  • PHPStan Level 9 : Analyse statique stricte
  • ESLint + Prettier : Code style cohérent
  • Rector : Refactoring automatisé PHP
  • SonarQube : Métriques qualité continue

Métriques de qualité

Code Quality

  • Cyclomatic Complexity : < 10 par méthode
  • Test Coverage : > 80% minimum, 95% objectif
  • Code Duplication : < 3%
  • Technical Debt : < 5% ratio

Performance

  • Big O : Complexité algorithmes optimisée
  • Memory Usage : Profiling systématique
  • Database : N+1 queries éliminées
  • Frontend : Core Web Vitals respectés

Workflow de développement

graph TD
    A[User Story] --> B[Write Failing Test]
    B --> C[Write Minimal Code]
    C --> D[Refactor]
    D --> E[Code Review]
    E --> F[Integration Tests]
    F --> G[Deploy]
    G --> H[Monitor]

    D --> B
    E --> D
    F --> E

Mémos techniques

TDD Cycle

# Red : Test qui échoue
./vendor/bin/pest --filter=user_can_create_account

# Green : Code minimal qui passe
php artisan make:service UserRegistrationService

# Refactor : Améliorer sans casser
./vendor/bin/pest
php artisan test

Clean Code Checklist

- [ ] Noms expressifs et intentionnels
- [ ] Fonctions courtes (< 20 lignes)
- [ ] Un seul niveau d'abstraction par fonction
- [ ] Pas de commentaires expliquant le code
- [ ] Gestion d'erreurs explicite
- [ ] Tests lisibles comme documentation

Bonnes pratiques par technologie

PHP/Laravel

  • Types stricts : declare(strict_types=1)
  • Value Objects : Immutabilité et validation
  • Service Layer : Logique métier isolée
  • Events : Découplage via événements

React/TypeScript

  • Custom Hooks : Logique réutilisable
  • Props Interface : Contrats explicites
  • Error Boundaries : Gestion d'erreurs gracieuse
  • Suspense : Loading states déclaratifs

Architecture

  • Dependency Injection : Inversion de contrôle
  • Adapter Pattern : Couches d'abstraction
  • CQRS : Séparation lecture/écriture
  • Event Sourcing : Historique d'événements

Ressources favorites

Livres

  • Clean Code - Robert C. Martin
  • Domain-Driven Design - Eric Evans
  • Refactoring - Martin Fowler
  • Design Patterns - Gang of Four

Blogs & Sites

  • Martin Fowler - Patterns & Refactoring
  • Uncle Bob - Clean Code principles
  • Kent Beck - TDD & XP practices
  • Laravel News - Best practices PHP

Projets en cours

  • [ ] Template Clean Architecture Laravel + React
  • [ ] Library de custom hooks React réutilisables
  • [ ] Guide complet Domain-Driven Design PHP
  • [ ] Patterns avancés pour applications React/Next.js
  • [ ] Métriques automatisées de code quality

Objectifs craftmanship

Court terme (3 mois)

  • Atteindre 95% de couverture de tests sur tous les projets
  • Implémenter architecture hexagonale complète
  • Créer librairie de design patterns réutilisables

Long terme (1 an)

  • Écrire des articles techniques sur l'architecture
  • Mentorer des développeurs junior
  • Créer des formations avancées sur le craftmanship