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

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

7
Как рефакторинг кода в какой-то общий код?
Фон Я работаю над текущим проектом C #. Я не программист C #, в первую очередь программист C ++. Так что передо мной были поставлены простые задачи по рефакторингу. Код это беспорядок. Это огромный проект. Поскольку наш клиент требовал частых выпусков с новыми функциями и исправлениями ошибок, все остальные разработчики …

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

10
Как исправить копию / вставить-образец?
Там, где я работаю, люди (консультанты) чувствуют себя вынужденными выпустить функции как можно быстрее. Поэтому вместо того, чтобы тратить слишком много времени на размышления о том, как сделать все правильно или потому что они не хотят ничего ломать, код копируется из разных модулей и модифицируется. Это нелегко предотвратить, поскольку кодовая …

5
Зачем писать тесты для кода, который я буду рефакторинг?
Я рефакторинг огромного унаследованного кода класса. Рефакторинг (я полагаю) защищает это: написать тесты для унаследованного класса рефакторинг, черт возьми, из класса Проблема: после того, как я проведу рефакторинг класса, мои тесты на шаге 1 нужно будет изменить. Например, то, что раньше было в унаследованном методе, теперь может быть отдельным классом. …

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

2
Я должен был использовать фабричный метод вместо конструктора. Могу ли я изменить это и при этом быть обратно совместимым?
Проблема Допустим, у меня есть класс с именем, DataSourceкоторый предоставляет ReadDataметод (и, возможно, другие, но давайте будем проще) для чтения данных из .mdbфайла: var source = new DataSource("myFile.mdb"); var data = source.ReadData(); Несколько лет спустя я решил, что хочу иметь возможность поддерживать .xmlфайлы в дополнение к .mdbфайлам в качестве источников …

6
Как определить приоритет и серьезность «улучшения кода»?
У нас есть поля "приоритет" и "серьезность" в нашей системе отслеживания ошибок. Мы определяем серьезность как «как это влияет на пользователя» и приоритет как «как это влияет на продукт». Мой вопрос о том, как классифицировать задачу «улучшение кода» по степени серьезности и приоритетности. Предположим, что улучшение не меняет поведение, но …

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

11
Стоит ли исправлять существующие дефекты, работая над чем-то другим?
Загадка: во время работы над новой функцией или исправления дефекта вы обнаружите унаследованную проблему в коде. Что вы должны сделать? Исправьте это и рискуйте изменить поведение кода. Он либо до сих пор работал какой-то случайностью, либо дефект не был обнаружен или стоил чьего-либо времени сообщать. Стоит ли оставить это в …

3
Многие строят одну реализацию. Я безнадежен? Использовать сервисный локатор?
Скажем, у нас есть 1001 клиент, который строит свои зависимости напрямую, а не принимает инъекции. Рефакторинг 1001 не вариант по мнению нашего босса. На самом деле нам даже не разрешен доступ к их источнику, только к файлам классов. Мы должны «модернизировать» систему, через которую проходят эти 1001 клиент. Мы можем …

7
Защита для шаблона?
Для меня шаблонный код явно плохой. Однако я встретил разработчика, который проявляет сопротивление при любой попытке уменьшить шаблон. Я понял, что у меня не было легко сформированного, хорошо продуманного аргумента после отвращения, которое я разработал для него с течением времени. Так что я могу сформировать убедительный аргумент в пользу менее …

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

3
Как вы осуществляете навигацию и рефакторинг кода, написанного на динамическом языке?
Мне нравится, что для написания Python, Ruby или Javascript требуется так мало шаблонов. Я люблю простые функциональные конструкции. Я люблю чистый и простой синтаксис. Тем не менее, есть три вещи, в которых я действительно плох при разработке большого программного обеспечения на динамическом языке: Навигация по коду Определение интерфейсов объектов, которые …

4
Дублирование кода без очевидной абстракции
Сталкивались ли вы когда-нибудь со случаем дублирования кода, когда, глядя на строки кода, вы не могли бы разместить в нем тематическую абстракцию, которая точно описывает ее роль в логике? И что вы сделали для этого? Это дублирование кода, поэтому в идеале нам нужно сделать рефрактинг, например, сделать его собственной функцией. …

3
Как безопасно выполнить рефакторинг на языке с динамической областью действия?
Для тех из вас, кому посчастливилось не работать на языке с динамической областью действия, позвольте мне немного освежить в этом информацию. Представьте себе псевдо-язык, названный "RUBELLA", который ведет себя так: function foo() { print(x); // not defined locally => uses whatever value `x` has in the calling context y = …

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