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

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

17
Як я можу зробити рефакторинг пріоритетним для моєї команди?
У кодовій базі, з якою я працюю щодня, немає автоматизованих тестів, непослідовних імен та безлічі коментарів на кшталт "Чому це тут?", "Не впевнений, чи потрібно це" або "Цей метод не названий правильним", і код залитий "Журнали змін", незважаючи на те, що ми використовуємо управління джерелами. Досить сказати, наша база даних …

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

12
Узгодження правила скаута хлопчика та опортуністичного рефакторингу з оглядами коду
Я великий віруючий у правило скаутського хлопчика : Завжди перевіряйте модуль чистіше, ніж коли ви його перевіряли. "Незалежно від того, хто був оригінальним автором, що робити, якщо ми завжди докладали певних зусиль, не важливих, як малих, щоб удосконалити модуль. Який був би результат? Я думаю, якщо ми всі дотримувались цього …

2
Що таке "функція заздрості", і чому це вважається запахом коду?
Це запитання в ТА говорить про те, щоб виправити те, що, на думку ОП, є кодом заздрості . Ще один приклад, коли я бачив, як цитується ця витончена фраза, - це нещодавно відповідь тут у програмістах. Хоча я крапля в коментарі до цієї відповіді з проханням про інформації , яку …

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

14
Яка найкраща практика впорядкування параметрів у функції?
Іноді (рідко) здається, що найкращим маршрутом є створення функції, яка приймає пристойну кількість параметрів. Однак, коли я це роблю, я відчуваю, що часто вибираю впорядкування параметрів навмання. Зазвичай я йду за "порядком важливості", перш за все найважливішим параметром. Чи є кращий спосіб зробити це? Чи існує спосіб "найкращої практики" впорядкування …

21
Як ви пояснюєте рефакторинг нетехнічній особі?
Як ви вирішите пояснити рефакторинг (та технічну заборгованість) нетехнічній особі (як правило, PHB або замовнику)? ("Що, це обійдеться мені місяць вашої роботи без видимої різниці ?!") ОНОВЛЕННЯ Дякую за всі відповіді, що наразі є, я думаю, що цей список надасть кілька корисних аналогій, на які ми можемо вказати відповідних людей …

5
Як далеко ми повинні перейменовувати код та дані, коли змінюються номенклатури кінцевих користувачів?
Давно ми додали функцію, за якою наші користувачі могли "прийняти" зображення після того, як вони були додані до черги робочого процесу. Виявилося, ми використали неправильний термін, і користувачі насправді "затверджують" зображення. Змінити Accept to Approve на нашому інтерфейсі досить просто, просто замініть одне слово. Але ми запрограмували всі шари на …

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

10
Як можна найкраще уникати написання роздутого GUI-коду?
Я виявляю, щоразу, коли я працюю з кодом графічного інтерфейсу, код, як правило, розширюється швидше, ніж інші види коду. Це також здається важчим для рефактора. В той час, як в інших видах коду я можу відновити рефактор досить легко - я вважаю, що можу розкласти більший клас на більш дрібні …
48 refactoring  gui 

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

8
Обслуговування коду: зберігати поганий зразок при розширенні нового коду на постійність, чи ні?
Я повинен розширити існуючий модуль проекту. Мені не подобається, як це було зроблено (багато анти-шаблону, як-от копіювати / вставляти код). Я не хочу виконувати повний рефактор з багатьох причин. Чи я повинен: створити нові методи, використовуючи існуючу умовність, навіть якщо я вважаю це неправильним, щоб уникнути плутанини для наступного технічного …

10
Це гарна ідея запланувати регулярний час для очищення коду? [зачинено]
Я керую невеликою командою розробників. Кожен так часто ми вирішуємо, що ми збираємось витратити день чи два, щоб очистити наш код. Було б гарною ідеєю запланувати регулярний час, скажімо, 1 тиждень кожні 2 місяці, щоб просто очистити нашу кодову базу?

6
Який найкращий спосіб впоратися з рефакторингом великого файлу?
Зараз я працюю над більшим проектом, який, на жаль, має деякі файли, де не завжди дотримуються рекомендації щодо якості програмного забезпечення. Сюди входять великі файли (читайте 2000-4000 рядків), які чітко містять багато різних функціональних можливостей. Тепер я хочу переробити ці великі файли на кілька маленьких. Проблема полягає в тому, що …

6
Чому SQL не піддається ремонту? [зачинено]
Всім відомо, що нові розробники пишуть довгі функції. Коли ви прогресуєте, ви краще розбиваєте свій код на більш дрібні шматки, а досвід вчить вас цінності цього. Введіть SQL. Так, спосіб мислення коду SQL відрізняється від процедурного способу мислення про код, але цей принцип здається настільки ж застосовно. Скажімо, у мене …

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