Le monde de la programmation évolue aujourd'hui à une vitesse incroyable. En particulier, avec le développement des technologies d'IA, notre manière d'écrire du code a changé de manière fondamentale. Des modèles d'IA tels que ChatGPT ou Copilot peuvent générer rapidement du code propre, et nous avons donc fait le saut vers un monde totalement différent de celui où les développeurs écrivaient du code du début à la fin.

Cette évolution pose une question importante pour les développeurs :

« Dans une époque où l'IA écrit du code à notre place, est-il vraiment nécessaire que le développeur comprenne en profondeur le fonctionnement interne du code ? »

Je veux répondre sans hésitation « Oui » à cette question.


Pourquoi est-il nécessaire de comprendre en profondeur ? – Responsabilité de l'ingénieur et collaboration avec l'IA

1. Gestion des risques et responsabilité

Bien qu'il soit possible de compléter un projet rapidement en copiant et en collant le code généré par l'IA, cela comporte des risques importants à long terme.

  • Erreur inconnue : Le code proposé par l'IA peut sembler correct à première vue, mais il présente le risque de provoquer des bogues inattendus dans certaines situations.

  • Problèmes de scalabilité : À mesure que le projet se développe, l'utilisation de code sans comprendre la logique interne peut créer des obstacles.

En fin de compte, c'est le développeur lui-même qui doit résoudre tous ces problèmes. En tant que développeur, il est essentiel de comprendre comment fonctionnent les outils et le code que vous utilisez, et d'être capable de diagnostiquer et résoudre rapidement les erreurs.

2. Croissance en tant que véritable ‘ingénieur’

Dans une époque cohabitée avec l'IA, non, justement parce que nous coexistons avec l'IA, il est nécessaire de comprendre le code en profondeur.

  • Communication efficace : Lorsque vous posez des questions à l'IA, vous devez être en mesure d'expliquer précisément quels problèmes vous rencontrez pour obtenir de meilleures réponses.

  • Conception proactive : La capacité à décider comment combiner des frameworks ou des bibliothèques et quelle structure adopter dépend toujours de l'intelligence humaine.

  • Amélioration de l'intuition technique : En comprenant le fonctionnement interne, vous pouvez avoir des idées structurelles et créatives, comme « ce framework fonctionne de cette manière, donc je pourrais étendre cette fonctionnalité ainsi ».

Cette compréhension est d'autant plus importante avec des frameworks Web comme Django. Les nombreuses fonctionnalités fournies par Django, et en particulier les vues basées sur les classes (CBV), offrent une grande commodité et évolutivité, mais si vous les utilisez sans comprendre leur structure interne, vous pouvez rencontrer de grandes difficultés lorsque le projet se développe.

Collaboration entre IA et développeurs


Pourquoi passer de FBV à CBV

La simplicité de FBV (Vue basée sur les fonctions)

La plupart des gens qui commencent avec Django font leurs premiers pas avec FBV (Function-Based View).

  • Intuitif : La structure qui reçoit request et retourne response est facilement compréhensible.

  • Prototypage rapide : Vous pouvez facilement configurer l'interface avec peu de code, ce qui accélère le développement initial.

Cependant, à mesure que le projet grandit et que vous devez gérer de nombreux URL et vues, la gestion du code uniquement avec FBV peut devenir complexe, et des logiques répétitives commencent à apparaître. Cela devient un fardeau considérable sur le plan de la maintenance et de l’évolutivité.

La réutilisabilité et l'évolutivité de CBV (Vue basée sur les classes)

CBV est un concept qui applique la philosophie de la programmation orientée objet (OOP) à la logique des vues Django.

  • Réutilisabilité : Il est facile de séparer la logique de la vue en méthodes pour créer une structure d'héritage ou pour l'étendre.

  • Structure claire : Différentes méthodes sont automatiquement appelées en fonction de la demande (GET, POST, etc.), ce qui permet une logique de code bien séparée.

  • Facilité de maintenance : Vous pouvez placer des fonctionnalités communes dans une classe parente et n'utiliser que les parties nécessaires pour chaque écran (ou vue) en les redéfinissant.

Par exemple, si vous devez créer plusieurs pages de liste avec la même structure. Avec FBV, vous écrivez constamment le même (ou un code similaire), mais avec CBV, en héritant de classes de base comme ListView, il vous suffit de changer le modèle ou le nom du template pour l'appliquer beaucoup plus simplement. C'est la véritable force de CBV.

Diagramme de flux FBV vs CBV


Les avantages de bien maîtriser CBV

  1. Lisibilité et maintenabilité du code considérablement améliorées.

  2. Évolutivité du projet permettant de modulariser et d'étendre facilement les fonctionnalités communes.

  3. Utilisation rapide des diverses classes CBV (ListView, DetailView, CreateView, UpdateView, DeleteView, etc.) fournies par Django pour composer rapidement des opérations CRUD.

  4. Le développeur peut ainsi collaborer de manière plus proactive. Étant donné que l'IA génère du code, vous pouvez détailler quelle CBV doit être héritée et contrôler les détails de manière précise.


Objectif de la série d'exploration des CBV

Dans cette série de blogs, nous examinerons les différentes CBV de Django une par une. Nous traiterons spécifiquement dans quelles situations chaque CBV est la plus efficace et comment personnaliser son utilisation.

À travers ce processus, nous espérons obtenir les résultats suivants :

  • Compréhension du fonctionnement du code : Non pas simplement copier et coller le code généré par l'IA, mais acquérir la capacité d'expliquer vous-même « pourquoi cela doit être écrit de cette manière ».

  • Compréhension des rôles et de l'utilisation des CBV : En identifiant les caractéristiques des différentes CBV fournies par Django, vous pourrez choisir la vue appropriée pour chaque situation, par exemple « Cette situation appelle un FormView ».

  • Collaboration efficace et proactive avec l'IA : Lorsque vous percevrez des idées sur « quelle partie devrait être modifiée » dans le code proposé par l'IA, vous pourrez efficacement guider l'IA pour maximiser la productivité.


Aperçu des sujets à venir

  1. Comprendre la classe View de base de Django

    • Nous examinerons la structure de la classe View et comment Django l'appelle au cours du processus de requête-réponse.
  2. Faciliter le traitement des formulaires avec FormView

    • Nous examinerons comment utiliser FormView pour traiter les entrées de l'utilisateur (formulaires).

    • Vous apprendrez des modèles pour la validation des formulaires, le traitement des messages d'erreur et les redirections réussies.

  3. Utilisation de ListView et DetailView

    • Nous aborderons comment structurer efficacement les pages de liste et de détail avec ListView et DetailView.

    • Avec des exemples de projets réels, nous partagerons également des conseils sur la gestion des données de contexte de template.

  4. Traitement simple des opérations CRUD avec CreateView, UpdateView, DeleteView

    • Nous examinerons les classes de vue qui automatisent presque entièrement les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer).

    • Cela sera utile pour ceux qui se demandent « Dois-je écrire moi-même le formulaire de modèle ou utiliser les fonctionnalités de CBV ? ».

  5. Rendu de template efficace avec TemplateView

    • Nous découvrirons comment utiliser le TemplateView pour un rendu de page simple.

    • Nous fournirons des conseils sur la façon de concevoir la structure lorsque vous devez simplement rendre rapidement des templates HTML.


En conclusion : un voyage à venir

En discutant au cours de cette série, vous explorerez le monde riche des CBV proposées par Django. Si vous avez uniquement utilisé FBV jusqu'à présent, vous découvrirez avec enthousiasme « Ainsi sont faites CBV ! », et si vous avez déjà de l'expérience avec CBV, vous pourrez envisager des méthodes d'utilisation plus approfondies et des stratégies d'extension.

Ce que les développeurs doivent se concentrer à faire dans l'ère de l'IA, ce n'est pas simplement écrire du code, mais comprendre comment fonctionne le code et développer la capacité de concevoir une meilleure structure. Les CBV de Django sont un sujet très approprié pour apprendre et mettre cela en pratique.

Dans le prochain article, nous commencerons par examiner la classe View de base de Django, découvrons ensemble les bases pour écrire un code « véritablement solide et extensible ».


Ressources recommandées

Aperçu de la série ‘Exploration des CBV’ à venir

  • Épisode 2 : “Comprendre le fonctionnement du classe View de base de Django et son cycle de vie”

  • Épisode 3 : “FormView : Traiter les formulaires proprement”

  • Épisode 4 : “ListView & DetailView : Implémenter une vue de liste de données et de détail”

  • ... (à suivre)

Merci aux lecteurs d'avoir lu le post jusqu'à la fin. Restez à l'écoute pour la série à venir, et si vous avez des questions ou des réflexions que vous souhaitez partager, n'hésitez pas à laisser un commentaire !

“Même à l'ère des codes générés par l'IA, notre sens de l'ingénierie et notre intuition brilleront plus que jamais.”