Les Top Hard Skills pour progresser en Dev
Retrouve dans cette première partie tout ce qu’il faut savoir sur les notions d’API Design & d’Application Testing !
Hello toi 👋🏼
Merci de faire partie des 304 premiers à suivre cette Newsletter ⭐️
Ça me fait super plaisir de lancer cette nouvelle initiative 100% Engineering !
Et surtout que tu aies répondu présent :)
Pour rappel si tu lis ceci c'est que tu veux progresser sur toutes les dimensions qui entourent le Software Engineering
Tu es donc bien tombé !
Puisqu’ici tu trouveras des ressources introuvables pour accélérer la carrière des devs expérimentés
Il n’y a pas d’équivalent dans l’éco-système dev francophone 🇫🇷
Ce dossier est en collaboration avec Stan et passeport.dev 🤝🏼
Le passeport.dev est un outil qui permet de se positionner en tant que software engineer, de visualiser clairement ses points forts et ses points faibles sans se focaliser sur les technologies ou les frameworks.
Pour visualiser où tu en es dans tes compétences devs et progresser sur chaque nouvelle skill simplement tu peux faire un tour sur son site : https://passeport.dev
Encore merci à lui pour son aide sur cette ressource !
Reprenons ! 😋
J’avais hâte de te partager cette mega-ressource (et la première de Dev Booster !)
Dont le thème est… 🥁
Les Top Hard Skills du Software Engineer 🙌
→ Ce dossier sortira en plusieurs épisodes, chaque article comme celui-ci regroupera 2 familles de hardskills à maitriser pour un dev, avec plein d’infos & conseils !
→ Sur ce sujet il y a 10 familles de hardskills qu'on va vous aider à développer :
API Design
Application Testing
Continuous Integration
Programming
Frontend
Software Documentation
System Design & Architecture
Data Modeling
Cloud Infrastructure & Network
Observability
Et aujourd'hui on développe ensemble les 2 premières familles de skills → API Design & Application Testing
Let’s go !
Pense bien à cliquer sur les best practices à chaque fois, une mine d’or t’attend 🤩
1️⃣ API Design
L'API design (conception d'interface de programmation) se réfère à la création et à la définition des interfaces et des contrats d'une API pour faciliter l'interaction entre différentes parties logicielles.
Skills a maîtriser :
💚 API REST
Une API REST (Representational State Transfer) est un style d'architecture de services web qui utilise les principes et les protocoles du web pour créer des interfaces d'API. Elle utilise des méthodes HTTP standard telles que GET, POST, PUT, DELETE pour permettre aux clients de communiquer avec les ressources d'une application, en utilisant des représentations de données basées sur des formats tels que JSON ou XML pour transférer les données. On préfèrera aujourd'hui le format JSON au XML.
Best practice pour maîtriser l’API REST
💚 GraphQL APIs
GraphQL est une alternative aux API REST qui offre des capacités plus flexibles et efficaces pour interroger et manipuler les données. Avec GraphQL, les clients peuvent spécifier exactement quels champs ils veulent dans une seule requête, plutôt que de devoir faire plusieurs appels d'API pour obtenir toutes les informations requises. Cela peut aider à minimiser la quantité de données transférées et à améliorer les performances.
Best practice pour maîtriser GraphQL
💚 Handling errors
La gestion des erreurs est une partie cruciale de la conception de l'API. Les erreurs peuvent se produire pour diverses raisons, telles que des erreurs de côté client (par exemple, une requête mal formée), des erreurs de côté serveur (par exemple, une base de données en panne), ou des conditions d'erreur inattendues. Une bonne API devrait être conçue pour gérer ces erreurs de manière gracieuse et informative, en fournissant suffisamment d'informations pour que le client puisse comprendre ce qui a mal tourné et comment résoudre le problème.
Best practice pour maîtriser la gestion des erreurs
💚 Authentification strategies
L'authentification est un aspect essentiel de la sécurité des API. Il existe différentes stratégies d'authentification qui peuvent être utilisées dans la conception des API : notamment :
l'authentification de base
l'authentification par jeton
l'authentification OAuthet plus encore.
Chacune a ses propres avantages et inconvénients, et le choix de la stratégie à utiliser dépend des exigences spécifiques de l'application.
Best practice pour maîtriser l’authentification
💚 Authorization strategy
Une stratégie d'autorisation d'API est une approche basée sur les ACL (Access Control Lists) qui définit les autorisations d'accès pour contrôler les actions des utilisateurs ou des clients sur une API. Elle spécifie les règles et les restrictions d'accès attribuées à des utilisateurs ou à des groupes spécifiques, permettant ainsi de déterminer qui est autorisé à accéder à quelles ressources et quelles actions sont autorisées pour chaque entité.
Best practice pour maîtriser la stratégie d’autorisation
2️⃣ Application Testing
Skills a maîtriser :
💛 Testing Objects
Les objets de tests, également appelés objets de test doubles, sont des implémentations substituées des dépendances réelles utilisées lors des tests unitaires. Ces objets sont créés dans le but de fournir des comportements prévisibles et contrôlés pour isoler le code testé et faciliter les tests en permettant la simulation de certaines interactions ou valeurs de retour spécifiques: mock, spy, double, fixtures.
Best practice pour maîtriser les objets de tests
💛 Unit Tests
Les tests unitaires sont des tests automatisés effectués sur des composants individuels d'un logiciel pour vérifier leur bon fonctionnement de manière isolée. Ils consistent à valider les entrées, les sorties et les comportements attendus de ces composants, permettant de détecter rapidement les erreurs et de s'assurer de la qualité du code à un niveau granulaire.
Best practice pour maîtriser les tests unitaires
💛 Test-Driven Development
📒 Le TDD (Test-Driven Development) est une approche de développement logiciel où l'on commence par réfléchir au dénouement souhaité afin de faire ressortir l'algorithme ou la logique que l'on souhaite construire. Cela implique de définir les exigences sous forme de tests, puis de développer le code qui répond à ces tests, favorisant ainsi la qualité, la modularité et la réflexion sur la conception du code dès le début du processus de développement. Une fois que le test passe, c’est à ce moment là qu’on se concentre sur une réécriture du code:
make it fail
make it pass
make it right
Best practice pour maîtriser le TDD
Pour avoir encore + de contenu sur ces 2 hard skills, tu peux retrouver le dossier complet dans ce Notion. Il sera complété chaque semaine avec de nouvelles catégories.
Au menu du prochain épisode de Dev Booster : Continuous Integration et Programming !
Encore merci de t’être inscrit :)
PS : Ce serait super sympa d'avoir tes retours pour améliorer cette Newsletter ! Pour cela répond juste à cet email.