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
для избежания потенциальных ошибок времени выполнения и повышения читаемости.
Подробнее
Рефакторинг не является современным понятием; он развивался вместе с программированием, став более формализованным после выхода книги Мартина Фаулера “Рефакторинг: Улучшение проекта существующего кода” в 1999 году. Он играет ключевую роль в среде Agile-разработки, облегчая адаптивные изменения кода. Некоторые альтернативы ручному рефакторингу включают автоматизированные инструменты, такие как TSLint или сам сервер языка TypeScript, которые могут предлагать или даже выполнять некоторые задачи рефакторинга за вас. Подробности реализации обычно включают распознавание “запахов кода”, таких как дублирование кода, длинные методы или большие классы, и применение шаблонов для их исправления — например, выделение методов, перенос в более подходящие классы или использование более простых конструкций. Эти шаблоны ключевые для понимания как и почему происходит рефакторинг.