


Dans le monde trépidant du développement logiciel, écrire du code propre et maintenable est essentiel. Inspirés par le « Clean Code » d'Oncle Bob, nous aborderons cinq principes de refactoring cruciaux pour améliorer votre base de code. Chaque principe est accompagné d'exemples de code TypeScript démontrant comment mettre en œuvre ces améliorations. Affinons notre code ensemble !
1️⃣ Dites non aux grandes fonctions
Explication : Oncle Bob conseille de garder les fonctions concises, idéalement sous 20 lignes. Les grandes fonctions peuvent être difficiles à comprendre, tester et maintenir. En divisant les fonctions en éléments plus petits et plus faciles à gérer, vous améliorez la lisibilité et réduisez la complexité.
Avant le refactoring :
import fs from 'fs'; function processData(data: string[]): void { // Step 1: Validate data if (!Array.isArray(data)) { throw new Error("Input must be an array"); } // Step 2: Clean data const cleanedData = data.map(item => item.trim()).filter(item => item !== ''); // Step 3: Process data const result: string[] = []; for (const item of cleanedData) { if (item.length > 5) { result.push(item.toUpperCase()); } else { result.push(item.toLowerCase()); } } // Step 4: Save results fs.writeFileSync('results.txt', result.join('\n')); }
Après la refactorisation :
import fs from 'fs'; function validateData(data: any): void { if (!Array.isArray(data)) { throw new Error("Input must be an array"); } } function cleanData(data: string[]): string[] { return data.map(item => item.trim()).filter(item => item !== ''); } function processItem(item: string): string { return item.length > 5 ? item.toUpperCase() : item.toLowerCase(); } function saveResults(results: string[], filename: string = 'results.txt'): void { fs.writeFileSync(filename, results.join('\n')); } function processData(data: string[]): void { validateData(data); const cleanedData = cleanData(data); const results = cleanedData.map(processItem); saveResults(results); }
2️⃣ Adoptez la responsabilité unique
Explication : Chaque classe ou méthode doit avoir une seule responsabilité. Cela signifie que chaque classe ou méthode doit faire une chose et bien la faire. Adhérer à ce principe rend votre code plus modulaire, plus facile à tester et plus flexible à modifier.
Avant le refactoring :
class User { constructor(public username: string, public email: string) {} sendEmail(message: string): void { // Code to send an email console.log(`Sending email to ${this.email}: ${message}`); } saveToDatabase(): void { // Code to save user to the database console.log(`Saving ${this.username} to the database`); } }
Après la refactorisation :
class User { constructor(public username: string, public email: string) {} } class EmailService { sendEmail(email: string, message: string): void { // Code to send an email console.log(`Sending email to ${email}: ${message}`); } } class UserRepository { save(user: User): void { // Code to save user to the database console.log(`Saving ${user.username} to the database`); } }
3️⃣ Simplifiez le passage des paramètres
Explication : Limiter le nombre de paramètres qu'une fonction accepte la rend plus facile à comprendre et à utiliser. Les fonctions complexes comportant de nombreux paramètres peuvent prêter à confusion et être sujettes à des erreurs. En utilisant des objets ou des structures de données, vous pouvez regrouper les paramètres associés.
Avant le refactoring :
function createUser(username: string, email: string, password: string, age: number, address: string): void { // Code to create a user console.log(`Creating user: ${username}, ${email}, ${password}, ${age}, ${address}`); }
Après la refactorisation :
interface User { username: string; email: string; password: string; age: number; address: string; } function createUser(user: User): void { // Code to create a user console.log(`Creating user: ${user.username}, ${user.email}, ${user.password}, ${user.age}, ${user.address}`); }
4️⃣ Évitez les nombres magiques
Explication : Les nombres magiques sont des nombres littéraux utilisés directement dans le code sans explication. Ils peuvent rendre le code plus difficile à comprendre et à maintenir. Remplacer les nombres magiques par des constantes nommées améliore la lisibilité et facilite les modifications futures.
Avant le refactoring :
function calculateDiscountedPrice(price: number): number { // Apply a discount of 15% return price * 0.85; } function calculateShippingCost(weight: number): number { // Shipping cost per kilogram return weight * 5; }
Après la refactorisation :
const DISCOUNT_RATE = 0.15; const SHIPPING_COST_PER_KG = 5; function calculateDiscountedPrice(price: number): number { // Apply a discount return price * (1 - DISCOUNT_RATE); } function calculateShippingCost(weight: number): number { // Shipping cost per kilogram return weight * SHIPPING_COST_PER_KG; }
5️⃣ Nommer les variables avec une signification
Explication : L'utilisation de noms de variables significatifs rend votre code auto-documenté et plus facile à comprendre. Évitez les noms à une seule lettre ou énigmatiques ; choisissez plutôt des noms qui traduisent clairement le but et l'utilisation de la variable.
Avant le refactoring :
function calculate(u: number, v: number): number { const r = u + v; const p = r * 2; return p; }
Après la refactorisation :
function calculateTotalCost(baseCost: number, additionalFees: number): number { const totalCost = baseCost + additionalFees; return totalCost; }
Conclusion
L'application de ces principes de refactoring à votre code TypeScript améliorera considérablement sa clarté, sa maintenabilité et sa qualité globale. Des pratiques de code propres sont essentielles pour un développement et une collaboration efficaces.
Quelles stratégies de refactoring ont le mieux fonctionné pour vous ? Partagez vos expériences ou les défis que vous avez rencontrés ci-dessous ! ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Explication détaillée de la méthode de remplacement de la chaîne JavaScript et de la FAQ Cet article explorera deux façons de remplacer les caractères de chaîne dans JavaScript: le code JavaScript interne et le HTML interne pour les pages Web. Remplacer la chaîne dans le code JavaScript Le moyen le plus direct consiste à utiliser la méthode Remplace (): str = str.replace ("trouver", "remplacer"); Cette méthode remplace uniquement la première correspondance. Pour remplacer toutes les correspondances, utilisez une expression régulière et ajoutez le drapeau global G: str = str.replace (/ fi

Ce tutoriel vous montre comment intégrer une API de recherche Google personnalisée dans votre blog ou site Web, offrant une expérience de recherche plus raffinée que les fonctions de recherche de thème WordPress standard. C'est étonnamment facile! Vous pourrez restreindre les recherches à Y

Cette série d'articles a été réécrite à la mi-2017 avec des informations à jour et de nouveaux exemples. Dans cet exemple JSON, nous examinerons comment nous pouvons stocker des valeurs simples dans un fichier à l'aide du format JSON. En utilisant la notation de paire de valeurs clés, nous pouvons stocker n'importe quel type

Améliorez votre présentation de code: 10 surligneurs de syntaxe pour les développeurs Partager des extraits de code sur votre site Web ou votre blog est une pratique courante pour les développeurs. Le choix du bon surligneur de syntaxe peut améliorer considérablement la lisibilité et l'attrait visuel. T

Vous voici donc, prêt à tout savoir sur cette chose appelée Ajax. Mais qu'est-ce que c'est exactement? Le terme Ajax fait référence à un regroupement lâche de technologies utilisées pour créer un contenu Web interactif dynamique. Le terme Ajax, inventé à l'origine par Jesse J

Tirez parti de jQuery pour les dispositions de page Web sans effort: 8 plugins essentiels JQuery simplifie considérablement la mise en page de la page Web. Cet article met en évidence huit puissants plugins jQuery qui rationalisent le processus, particulièrement utile pour la création de sites Web manuels

Cet article présente une sélection organisée de plus de 10 didacticiels sur les cadres JavaScript et JQuery Model-View-Controller (MVC), parfait pour augmenter vos compétences en développement Web au cours de la nouvelle année. Ces tutoriels couvrent une gamme de sujets, de Foundatio

Points de base Ceci dans JavaScript fait généralement référence à un objet qui "possède" la méthode, mais cela dépend de la façon dont la fonction est appelée. Lorsqu'il n'y a pas d'objet actuel, cela fait référence à l'objet global. Dans un navigateur Web, il est représenté par Window. Lorsque vous appelez une fonction, cela maintient l'objet global; mais lors de l'appel d'un constructeur d'objets ou de l'une de ses méthodes, cela fait référence à une instance de l'objet. Vous pouvez modifier le contexte de ceci en utilisant des méthodes telles que Call (), Appliquer () et Bind (). Ces méthodes appellent la fonction en utilisant la valeur et les paramètres donnés. JavaScript est un excellent langage de programmation. Il y a quelques années, cette phrase était


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Dreamweaver Mac
Outils de développement Web visuel

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.
