ChatGPT et l'évolution de l'architecture logicielle
L'autre jour, j'ai discuté avec un ami des tendances actuelles en matière d'architecture logicielle. De manière inattendue, je me suis retrouvé à lui dire : "Plus vous pouvez écrire de code avec ChatGPT, meilleure est votre architecture." Cela peut sembler une déclaration audacieuse, mais laissez-moi vous expliquer. En tant que modèle de langage d'IA développé par OpenAI, ChatGPT a révolutionné ma façon d'écrire du code, avec environ 30 à 40 % de mon code désormais généré par celui-ci. Mais comment cela est-il lié à l'architecture logicielle, et pourquoi est-ce important ? Explorons la connexion transparente entre ces deux.
Une architecture logicielle de pointe devrait permettre à ChatGPT de générer du code avec un contexte minimal. C'est là que les microservices (micro-frontends) excellent et laissent encore une fois les applications monolithiques loin derrière. En divisant un système complexe en composants plus petits et plus ciblés, les microservices permettent à ChatGPT de générer plus facilement des extraits de code pertinents.
Prenons un exemple. Lorsque vous fournissez une invite à ChatGPT, vous devrez peut-être fournir des extraits de code pour l'aider à comprendre le style ou les bibliothèques spécifiques (internes et externes) que vous utilisez. Cependant, si votre architecture est déjà modulaire et bien organisée, vous devrez fournir moins de code pour définir le contexte, ce qui permettra à ChatGPT de générer plus facilement la sortie souhaitée. Par exemple, si vous disposez d'un microservice qui gère l'authentification des utilisateurs, vous n'aurez peut-être qu'à fournir un court exemple de la manière dont votre bibliothèque d'authentification est utilisée. ChatGPT peut saisir rapidement le contexte et générer du code de manière transparente, en s'intégrant à votre base de code existante.
Bien sûr, Copilot X, par exemple, peut utiliser le contexte du code de votre IDE. Potentiellement, cela peut résoudre le problème avec un contexte significatif, mais néanmoins, moins il faut de contexte pour résoudre une tâche, meilleurs sont les résultats que vous devriez obtenir. Cependant, il est essentiel de se rappeler qu'il n'est pas garanti de résoudre le problème avec un code désordonné. Ainsi, en tant que développeur, vous devez toujours valider les résultats, en soulignant l'importance des principes de code propre dans cette ère de développement axée sur l'IA.
J'ai dit à un autre ami qui a mentionné un jour qu'il ne pouvait pas utiliser ChatGPT parce que son code était un gâchis, ce qui rendait difficile de fournir le contexte approprié. Dans de tels cas, de bons modèles de conception à l'ancienne, comme les modèles de stratégie, de commandement ou de chaîne de responsabilité, viennent à la rescousse. L'application de tels modèles aide ChatGPT à comprendre le contexte et à générer un code organisé et modulaire.
Ainsi, une bonne organisation du code est cruciale lors de l'utilisation de ChatGPT.
Bien sûr, seules certaines choses sont si roses. Une plate-forme qui a suscité une certaine controverse est Temporal. D'une part, Temporal vous aide à écrire moins de code et à vous concentrer sur la logique métier, ce qui signifie moins de contexte pour ChatGPT puisque vous n'avez pas besoin d'expliquer quelles bibliothèques et méthodes internes utiliser ou d'écrire une logique spécifique pour prendre en charge la robustesse et la fiabilité des flux de travail. . Cependant, d'un autre côté, ChatGPT doit être conscient des principes temporels et des API, ce qui peut être problématique si ChatGPT utilise un code ou des données obsolètes. Le potentiel d'inadéquation dans la compréhension peut entraver le processus de développement axé sur l'IA.
Enfin, la montée en puissance des fonctions cloud, ou lambdas, correspond parfaitement au développement piloté par ChatGPT. Ces petites unités de code indépendantes peuvent être facilement générées et gérées par ChatGPT, ce qui simplifie le processus de développement et améliore l'architecture globale. À mon avis, ils sont les mieux adaptés.
D'après mon expérience, les meilleurs résultats sont archivés lorsque vous écrivez de la colle dans le domaine de l'infrastructure. Par exemple, vous pouvez facilement écrire des scripts bash qui font du personnel complexe (je parie que la plupart d'entre nous ont des problèmes avec la syntaxe bash). Vous pouvez créer un proxy intelligent pour acheminer et gérer les demandes vers et depuis des systèmes tiers qui ne prennent en charge qu'un seul environnement sandbox.
En résumé, plus nous pouvons générer facilement de code avec ChatGPT, meilleure est notre architecture logicielle. Nous pouvons faire plus en adoptant les microservices et les fonctions cloud, en nous concentrant sur une organisation appropriée du code et en tirant parti d'outils tels que ChatGPT et Github Copilot X. En fin de compte, l'essor des outils de développement basés sur l'IA nous pousse vers des architectures plus modulaires et plus propres, nous permettant de construire un meilleur logiciel pour un avenir meilleur.
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































