TypeScript:
Рефакторинг
Як це робити:
Розглянемо функцію TypeScript, якій вже кращі часи - вона трохи заплутана і потребує ніжної уваги та догляду:
function userInfo(data: any): string {
return "User Info: " + data.name + ", " + data.age + ", " + data.email + ";" ;
}
Після рефакторингу, вона може виглядати так:
interface User {
name: string;
age: number;
email: string;
}
function formatUserInfo(user: User): string {
return `User Info: ${user.name}, ${user.age}, ${user.email};`;
}
Другий приклад більш надійний, використовує систему типів TypeScript за допомогою interface
для уникнення потенційних помилок під час виконання та покращення читабельності.
Поглиблений огляд
Рефакторинг - це не сучасне поняття; він еволюціонував разом з програмуванням, ставши більш формалізованим після випуску книги Мартіна Фаулера “Refactoring: Improving the Design of Existing Code” у 1999 році. Він має вирішальне значення в Agile-середовищі розробки, сприяючи адаптивним змінам у коді. Деякі альтернативи ручному рефакторингу включають автоматизовані інструменти, такі як TSLint або власний сервер мови TypeScript, які можуть пропонувати або навіть виконувати певні завдання по рефакторингу за вас. Деталі реалізації зазвичай включають виявлення “запахів коду”, таких як дубльований код, довгі методи або великі класи, та застосування шаблонів для їх виправлення - наприклад, екстракції методів, переміщення до більш підходящих класів або використання спрощених конструкцій. Ці шаблони ключові для розуміння як і чому рефакторингу.