Вопросы с тегом «refactoring»

Рефакторинг - это дисциплинированный метод реструктуризации существующего тела кода, изменения его внутренней структуры без изменения внешнего поведения.

11
Как люди, занимающиеся TDD, справляются с потерей работы при проведении крупного рефакторинга
Некоторое время я пытался научиться писать модульные тесты для своего кода. Первоначально я начал делать настоящий TDD, где я не буду писать никакого кода, пока сначала не напишу провальный тест. Тем не менее, недавно у меня возникла острая проблема, которая требует большого количества кода. Потратив пару недель на написание тестов, …
37 tdd  refactoring 

10
Устранение магических чисел: когда пришло время сказать «нет»?
Мы все знаем, что магические числа (жестко запрограммированные значения) могут нанести ущерб вашей программе, особенно когда пришло время изменить часть кода, в которой нет комментариев, но где вы проводите черту? Например, если у вас есть функция, которая рассчитывает количество секунд между двумя днями, заменить seconds = num_days * 24 * …

12
Повлиял ли постепенный сдвиг в методологии написания кода на производительность системы? И мне все равно?
TD; DR: Был некоторый беспорядок относительно того, что я спрашивал, таким образом, вот движущая идея позади вопроса: Я всегда хотел, чтобы вопрос был таким, какой он есть. Я, возможно, не сформулировал это хорошо изначально. Но намерение всегда было « модульным, разделенным, слабо связанным, разъединенным, рефакторированным кодом », заметно медленнее по …

4
Какой термин для этого типа рефакторинга
Я уверен, что есть следующий термин для рефакторинга, но я не могу вспомнить его, и мой Google-фу подводит меня! Рефакторинг перемещается, если операторы туда, где они будут оказывать наибольшее влияние, например, изменяя это $test = someFunctionThatReturnsABool(); for($x = 0; $x < 10000; $x++) { if ($test) { echo $x; } …

7
Как я могу предотвратить неизвестное дублирование кода?
Я работаю на довольно большой кодовой базе. Сотни классов, тонны различных файлов, множество функциональных возможностей, более 15 минут требуется для создания новой копии и т. Д. Большая проблема с такой большой кодовой базой состоит в том, что у нее есть довольно много вспомогательных методов и таких, которые делают то же …

8
Включает ли «переменные в минимально возможную область видимости» случай «переменные не должны существовать, если возможно»?
Согласно принятому ответу « Обоснование предпочтения локальных переменных переменным экземпляра? », Переменные должны жить в наименьшей возможной области видимости. Упростите проблему в моей интерпретации, это означает, что мы должны реорганизовать такой код: public class Main { private A a; private B b; public ABResult getResult() { getA(); getB(); return ABFactory.mix(a, …

10
Является ли «Parent x = new Child ();» вместо «Child x = new Child ();» плохой практикой, если мы можем использовать последний?
Например, я видел несколько кодов, которые создают такой фрагмент: Fragment myFragment=new MyFragment(); которая объявляет переменную как Fragment вместо MyFragment, а MyFragment является дочерним классом Fragment. Я не удовлетворен этой строкой кодов, потому что я думаю, что этот код должен быть: MyFragment myFragment=new MyFragment(); что более конкретно, это правда? Или в …

9
Когда проводить рефакторинг
Я прочитал большую часть книги Рефакторинга Фаулера и провел рефакторинг многих приложений в моем прошлом, большом и малом. Одна из самых сложных вещей, которые я нахожу для обучения, - это «когда» проводить рефакторинг. Я склонен делать это, основываясь на чувстве кишки, которое в прошлом мне очень помогало. Однако, вступая в …

4
Использование магических строк / чисел [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 5 лет назад . Это довольно спорная тема, и я думаю, что мнений столько же, сколько …

11
Какие факторы должны влиять на то, как я определяю, когда отказаться от небольшого проекта с другом? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . Я оказался в трудном положении в последнее время. Уже почти 8 месяцев работаю над …

6
Какие выгоды вы видели от заботы о техническом долге?
Эта статья о техническом долге имеет несколько положительных моментов, в том числе: Работа над «техническими вопросами» работает лучше всего, когда она основана на историях. Кодовая база, вероятно, нуждается в работе везде, но выигрыш будет получен только там, где будет работать код по причинам, связанным с пользователем. Если никакие истории не …

8
Как вы поддерживаете свои юнит-тесты при рефакторинге?
В другом вопросе было выявлено, что одной из проблем TDD является синхронизация набора тестов с базой кода во время и после рефакторинга. Теперь я большой поклонник рефакторинга. Я не собираюсь бросать это, чтобы сделать TDD. Но я также сталкивался с проблемами тестов, написанных таким образом, что незначительный рефакторинг приводит к …

6
Есть ли шаблон дизайна, который устраняет необходимость проверять флаги?
Я собираюсь сохранить некоторую полезную нагрузку строки в базе данных. У меня есть две глобальные конфигурации: шифрование компрессия Они могут быть включены или отключены с помощью конфигурации таким образом, что либо только один из них включен, либо включены, либо оба отключены. Моя текущая реализация такова: if (encryptionEnable && !compressEnable) { …

6
Рефакторинг операторов Switch и есть ли реальное использование для операторов Switch вообще?
Я читал эту статью, и мне было интересно, избавимся ли мы от всех операторов switch, заменив их словарем или фабрикой, чтобы в моих проектах вообще не было операторов switch. Что-то не совсем складывалось. Вопрос в том, имеют ли операторы switch какое-либо реальное применение, или мы идем дальше и заменяем их …

13
Как далеко я могу продвигать рефакторинг без изменения внешнего поведения?
По словам Мартина Фаулера , рефакторинг кода (акцент мой): Рефакторинг - это дисциплинированный метод реструктуризации существующего тела кода, изменения его внутренней структуры без изменения внешнего поведения . Его сердце - это серия небольших преобразований, сохраняющих поведение. Каждое преобразование (называемое «рефакторингом») мало что делает, но последовательность преобразований может привести к значительной …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.