Рефакторинг — это процесс переписывания, в ходе которого содержимое страницы обсуждения перемещается, удаляется, пересматривается, реструктурируется, скрывается или иным образом изменяется. Он применяется только в тех контекстах, где редакторы делают подписанные заявления (например, в пространствах имен Talk и User talk ).
Рефакторинг имеет ряд применений, в том числе:
Рефакторинг более настойчив, чем копирование , но менее существенен, чем архивирование . Как и копирование, он всегда сохраняет смысл и намерение исходного редактора. Как и архивирование, он может скрыть материал от немедленной видимости. Его следует использовать как инструмент для отделения ненужного материала от обсуждения на лету , не дожидаясь формального архивирования всего обсуждения.
Термин «рефакторинг» заимствован из рефакторинга кода в вычислительной технике , когда код реструктурируется (для улучшения его качества) таким образом, чтобы не изменять работу программы.
Хорошие практики рефакторинга являются важной частью поддержания продуктивной страницы обсуждения. Страницы обсуждения, которые запутаны, враждебны, чрезмерно сложны, плохо структурированы или перегружены перекрестными разговорами, могут отпугнуть потенциальных участников и создать недопонимание, которое подрывает плодотворные обсуждения.
Рефакторинг следует проводить только тогда, когда есть предположение о добросовестности редакторов, которые внесли свой вклад в страницу обсуждения. Если на странице обсуждения недавно были жаркие дискуссии, добросовестность может отсутствовать. Если другой редактор возражает против любого выполненного рефакторинга, эти изменения следует отменить. Тем не менее, если страница больше рекомендуемого размера, то архивирование страницы обсуждения или ее разделов без рефакторинга все равно может быть выполнено.
Ранее в истории Википедии, и особенно до 2006 года, содержимое страниц обсуждения суммировалось для экономии места — метод рефакторинга без консервации. Однако сообщество стало предпочитать тотальное архивирование обсуждений на страницах обсуждения, поскольку архивирование сохраняет более полную запись обсуждения, не приводит к искажению (случайному или разрушительному) мнений других редакторов и сохраняет материал, который может быть полезен в будущем. Тот же принцип стал применяться к рефакторингу в более широком смысле.
Как правило, редакторы не должны редактировать комментарии друг друга таким образом, чтобы это влияло на смысл — это создает искажения, нарушает ход разговоров и делает дебаты и обсуждения невозможными для отслеживания — но существуют случаи, когда комментарии редактора необходимо удалить из хода разговора, поскольку сами комментарии нарушают ход разговора. В общих чертах, следующие типы рефакторинга являются законными, с перечисленными оговорками:
Неконфликтная очистка — все, в чем вы уверены, что другой редактор поблагодарит вас за усилия, а не рассердится.
Реструктуризацию следует проводить осторожно, чтобы избежать изменения смысла.
Удаление текста допускается только с согласия автора или при наличии уважительной причины в соответствии с политикой.
Следуя правилам страницы обсуждения Википедии , редакторам рекомендуется удалять любой ненадлежащий контент. Ссылка на историю страницы обсуждения должна быть добавлена, если удаленный текст был частью обсуждений других редакторов. См. WP:Diff для руководства по созданию ссылки на историю страницы и WP:Talk page guidelines#Behavior that is admit is admited для руководства по ненадлежащему контенту страницы обсуждения.
Для рефакторинга материала доступно несколько инструментов и методов:
<s>text to be struck</s>
создает {{rf}}
Используемый инструмент или метод следует выбирать в соответствии с конкретными потребностями материала.
Создание FAQ рекомендуется для любых моментов, которые, вероятно, будут неоднократно подниматься и рефакториться. Существующий материал следует соответствующим образом обобщить и переформатировать в простой формат вопрос/ответ, чтобы последующие редакторы могли удовлетворить свои опасения, не поднимая вопрос снова. Аналогично, длительные текущие обсуждения могут выиграть от рефакторинга шаблона с резюме. Шаблон {{ quote box }} можно использовать для предоставления плавающего блока резюме рядом с рефакторинговым обсуждением, или комментарий можно добавить внизу (или иногда вверху) раздела.
В некоторых случаях обсуждение следует разбить на новые разделы или подразделы. Это полезно, когда раздел становится слишком длинным или когда разговор начинает расходиться на ряд отдельных пунктов. Повторное разделение может помочь как читателям, так и участникам понять ход обсуждения и помочь им найти соответствующие части текста.
Для длинных обсуждений участники часто вставляют произвольные разрывы, добавляя новый заголовок подраздела. Фактически, такие разрывы часто озаглавлены как «Произвольный разрыв» или «Удобный разрыв» с индексным номером, чтобы отличить их от других произвольных заголовков разрывов. Обсуждения, которые охватывают несколько пунктов или становятся более сложными, напротив, могут выиграть от создания подразделов для рассмотрения различных пунктов или, в крайних случаях, от разделения разделов текста на совершенно новые разделы. В этих случаях может потребоваться реорганизация больших фрагментов текста, и если это так, следует позаботиться о том, чтобы никакие комментарии не были вырваны из контекста или не потеряли связь с исходным пунктом, к которому они обращались. Может быть целесообразно копировать разделы текста, а не перемещать их (добавляя комментарий, который отсылает к исходному тексту), дублировать подпись исходного автора в разных пунктах, которые были перемещены в разные разделы, или начинать новый раздел с вводного утверждения, объясняющего исходный контекст комментария.
Смотрите примеры ниже.
При рефакторинге следует учитывать следующие моменты:
Помните, что не каждый редактор согласится с вашим рефакторингом или даже с концепцией рефакторинга в целом. Предоставьте ссылки на оригинальную, неразрезанную версию, чтобы другие могли проверить ваши изменения и при необходимости вернуться к оригиналу, чтобы уточнить, что на самом деле сказал автор. Такое сочетание рефакторинга и архивирования часто предотвращает жалобы на потерю информации. Ясно дайте понять, что вы что-то рефакторили, чтобы никто не думал, что это была оригинальная страница обсуждения.
Если вы считаете, что люди могут возражать против рефакторинга их обсуждения, сделайте свое резюме на другой странице. Вместо того, чтобы сокращать архивы 7–10 Обсуждение:Новый Империализм , создайте новую страницу под названием [[Обсуждение:Новый Империализм/Резюме архивов 7–10]]. Ссылайтесь на начало соответствующих архивов и на текущую страницу обсуждения. Это дает новичкам возможность быстро понять, не рискуя потерять то, что было сказано ранее. Наличие связанного архива может помочь удовлетворить как тех, кто считает, что их слова должны оставаться нетронутыми, так и тех, кто хочет аккуратного резюме.
Простой рефакторинг можно легко выполнить с помощью стандартного редактирования браузера Wikipedia, но если вы столкнулись с особенно сложной или утомительной работой по рефакторингу, продвинутый текстовый редактор или любой из ассортимента языков сценариев может оказаться чрезвычайно полезным. По сути, любой инструмент с расширенными функциями поиска и замены, возможностями регулярных выражений или программной обработкой текста станет вашим лучшим другом. Алфавитный указатель материала, сортировка разделов в хронологическом порядке, изменение нескольких ссылок, реструктуризация больших таблиц — эти задачи могут быть болезненными и трудоемкими для выполнения вручную, но могут быть выполнены за считанные минуты программным путем. Большинство высококлассных текстовых редакторов типа «Office» имеют расширенные возможности редактирования текста, и доступно множество легких, но мощных приложений для редактирования текста — см. список текстовых редакторов . Существует также множество языков сценариев для обработки текста; распространенными являются Perl , Python , скрипты оболочки Unix и AppleScript .
Для длительных работ по рефакторингу может быть полезно пометить страницу(ы), подвергаемую рефакторингу, тегом Template:In use . Просто добавьте его {{in use}}
в начало страницы(ий). Это предупредит других редакторов о том, что страницы находятся в разработке, и должно помочь минимизировать конфликты редактирования .
Страницы обсуждений или разделы страниц обсуждений, которые выиграли от рефакторинга: