Запитання з тегом «refactoring»

Рефакторинг - це дисциплінована методика перебудови існуючого коду, зміна його внутрішньої структури без зміни зовнішньої поведінки.

6
Як видалити функцію чи функцію при використанні TDD
У текстах про TDD я часто читаю про "видалити дублювання" або "покращити читабельність" під час кроку рефакторингу. Але що змушує мене видалити невикористану функцію? Наприклад, скажімо, що існує клас Cз методами a()та b(). Зараз я думаю, що було б непогано мати метод, f()який вводиться в життя C. Фактично f()замінює всі …

3
Труднощі з TDD & Refactoring (або - чому це більш болісно, ​​ніж має бути?)
Я хотів навчити себе використовувати підхід TDD, і у мене був проект, над яким я хотів працювати деякий час. Це був не великий проект, тому я вважав, що це буде хорошим кандидатом на TDD. Однак я відчуваю, що щось пішло не так. Наведу приклад: На високому рівні мій проект є …

8
Робота з колегами при розробці потребує консультації [закрито]
Важко сказати, про що тут питають. Це питання є неоднозначним, розпливчастим, неповним, надто широким або риторичним і не може бути обґрунтованим відповіді в його сучасній формі. Для уточнення цього питання, щоб його можна було знову відкрити, відвідайте довідковий центр . Закрито 8 років тому . Я розробив нашу поточну архітектуру …

4
Як занадто багато змінних примірників призводить до дублювання коду?
Відповідно до Refactoring to Patterns : Коли клас намагається зробити занадто багато, він часто виявляється як занадто багато змінних екземплярів. Коли у класу занадто багато змінних примірників, дублюваний код не може відстати. Як занадто багато змінних примірників призводить до дублювання коду?

6
Як я можу перефактурувати кодову базу, а інші швидко виконуватимуть її?
Я перебуваю на приватному проекті, який з часом стане відкритим кодом. У нас є кілька членів команди, достатньо талановитих з технологіями створення додатків, але не відданими розробниками, які можуть писати чистий / красивий і найголовніше довгостроковий підтримуваний код. Я налаштувався на рефакторинг кодової бази, але це трохи непросто, оскільки хтось …

6
Код самодокументації проти Javadocs?
Останнім часом я працюю над рефакторингом частин кодової бази, з якою зараз маю справу - не лише для того, щоб краще зрозуміти це, але і щоб полегшити іншим, хто працює над кодом. Я схильний схилятися над думкою, що самодокументування коду приємне . Я просто думаю, що це чистіше, і якщо …

7
Чи слід змінювати ім’я автора у файлі класу, якщо я вносив більше 80% змін?
Я переробляю існуючий набір тестових класів java для автоматизованих тестів на інтерфейс користувача. Часом я закінчую внесення масових змін у файл класу або повністю оновлення його. Це змушує мене думати, що коли я переписую весь клас, то чи слід змінювати ім’я автора в розділі коментарів на моє? Я жадібний? чи …

3
Як поводитися з обмеженнями сторонніх ключів при переході від моноліту до мікропослуг?
Моя команда переходить з монолітного додатку ASP.NET на .NET Core та Kubernetes. Зміни коду, здається, відбуватимуться так само добре, як і можна очікувати, але там, де моя команда стикається з великим розбратом, є навколо бази даних. Наразі у нас є досить велика база даних SQL Server, в якій зберігаються всі …

7
Як виправдати час рефакторингу коду?
Майте дуже великий проект понад 70 тис. LOC. Проект, безумовно, потребує певного рефакторингу коду в Core Framework та інших частинах. На початку проекту для рефакторингу не було встановлено часу. Однак з часом і більше 40 розробників спільно і покинули проект. З моєї точки зору, це незамінно. Які б були ваші …

3
Рефакторинг з низьким впливом та очищення неохайного коду під час очікування вимог
Я успадкував існуючу базу коду для продукту, який нібито неохайний. Фундаментальна конструкція надзвичайно неадекватна, що, на жаль, я не можу обійтися без повного рефактора (ВИСОКА зв'язок, низька когезія, невпинне копіювання коду, відсутність технічної проектної документації, інтеграційні тести замість одиничних тестів). Продукт має історію, високу схильність до критичних клієнтів «готівкою-коровою» з …

8
У когось іншого є проблема рефакторингу? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

6
Коли перерахунки НЕ кодовим запахом?
Дилема Я читав багато книг найкращих практик щодо об'єктно-орієнтованих практик, і майже кожна книга, яку я прочитав, мала частину, де вони кажуть, що перерахунки - це запах коду. Я думаю, що вони пропустили ту частину, де вони пояснюють, коли перерахунки дійсні. Як такий, я шукаю вказівки та / або випадки …

5
Як уникнути зайвої перевантаження методом?
У вихідному коді нашої програми є досить багато місць, де в одному класі є багато методів з однаковими іменами та різними параметрами. У цих методах завжди є всі параметри попереднього методу плюс ще один. Це результат тривалої еволюції (застарілий код) і такого мислення (я вважаю): " Існує метод M, який …

1
Причини чекати до третього разу у Правилі трьох?
Я щойно натрапив на статтю " Правило трьох " у вікіпедії Правило три - це правило перетворення коду, яке вирішує, коли повторний фрагмент коду слід замінити новою процедурою. У ньому зазначається, що код можна скопіювати один раз, але що коли той самий код використовується тричі, його слід витягти в нову …

9
Використовувати конструктор чи метод сеттера?
Я працюю над кодом інтерфейсу, де я маю Actionклас, щось подібне - public class MyAction extends Action { public MyAction() { setText("My Action Text"); setToolTip("My Action Tool tip"); setImage("Some Image"); } } Коли цей клас Action був створений, ми вважали, що Actionклас не може бути налаштований (у певному сенсі - …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.