Снегопат https://snegopat.ru/forum/ |
|
Скрипт рефакторинга. Кто-то вообще пользуется? https://snegopat.ru/forum/viewtopic.php?f=3&t=634 |
Страница 1 из 3 |
Автор: | EvilBeaver [ 05 авг 2014, 09:22 ] |
Заголовок сообщения: | Скрипт рефакторинга. Кто-то вообще пользуется? |
Одна из самых нужных мне вещей - средства рефакторинга в 8.2, как известно, отсутствуют. Был неприятно удивлен наличием детских багов в скрипте refactoring.js. Например, если выделяем метод и говорим, что параметры передавать надо по "Знач", то само место вызова тоже получает добавки "Знач", что, понятно, ошибочно. Код: А = 1; Б = 2; НовыйМетод(Знач Б, Знач А); // здесь не должно быть "Знач" у параметров // этот метод выделен скриптом рефакторинга Процедура НовыйМетод(Знач Б, Знач А) ; КонецПроцедуры Это из самого страшного, но есть и другие сырости. В целом скрипт больше похож на демонстрацию концепта, а не на рабочий вариант. Им кто-то пользуется? |
Автор: | EvilBeaver [ 06 авг 2014, 08:56 ] |
Заголовок сообщения: | Re: Скрипт рефакторинга. Кто-то вообще пользуется? |
Похоже, что никто не пользуется. А если я его перепишу - будете пользоваться? |
Автор: | SiriuS [ 06 авг 2014, 12:41 ] |
Заголовок сообщения: | Re: Скрипт рефакторинга. Кто-то вообще пользуется? |
EvilBeaver писал(а): Похоже, что никто не пользуется. А если я его перепишу - будете пользоваться? Конечно будем. И даже готовы генерировать новые идеи по функционалу скрипта |
Автор: | artbear [ 06 авг 2014, 16:25 ] |
Заголовок сообщения: | Re: Скрипт рефакторинга. Кто-то вообще пользуется? |
EvilBeaver писал(а): Похоже, что никто не пользуется. А если я его перепишу - будете пользоваться? Пользуемся как раз выделением метода. Но ошибки есть, но не так часто, чтобы взяться и самому переписать Если перепишешь, будем рады. Тестовых кейсов могу накидать. |
Автор: | JohnyDeath [ 07 авг 2014, 10:39 ] |
Заголовок сообщения: | Re: Скрипт рефакторинга. Кто-то вообще пользуется? |
Конечно будем. Текущий скрипт у меня не взлетел по причине периодических конфликтов и недопониманий со SciColorer-ом. Потом про него вообще забыл. |
Автор: | EvilBeaver [ 08 авг 2014, 11:33 ] |
Заголовок сообщения: | Re: Скрипт рефакторинга. Кто-то вообще пользуется? |
artbear писал(а): EvilBeaver писал(а): Похоже, что никто не пользуется. А если я его перепишу - будете пользоваться? Тестовых кейсов могу накидать. Да, сделай, пожалуйста. |
Автор: | Ndochp [ 11 сен 2014, 11:38 ] |
Заголовок сообщения: | Re: Скрипт рефакторинга. Кто-то вообще пользуется? |
На вике страницы скрипта не нашел, здесь вроде тестов хотели - вот некорректно обрабатывающаяся ситуация (код приведен не полностью): Код: Процедура ВосстановитьЗначенияРучныхКорректировокТабличнойЧасти(ИмяТЧ, СкорректированныеСтроки) Перем НеобходимоПредупредитьОбИзмененияхБУ, СтрокаДляКорректировки, МассивСтрокДляКорректировки, СкорректированнаяСтрока; Перем СписокКорректируемыхКолонок;//список колонок, которые могут корректироваться пользователем, их корректируем, остальные сверяем Перем СпецСумма;//Сумма долгосрочного и краткосрочного для 91, 99, потом для проценнтов и тд МассивКорректируемыхКолонок = ПолучитьМассивКорректируемыхКолонок(); #Если _ Тогда МассивКорректируемыхКолонок = Новый Массив; #КонецЕсли Для каждого СкорректированнаяСтрока Из СкорректированныеСтроки Цикл НеобходимоПредупредитьОбИзмененияхБУ = Ложь; Отбор = ПолучитьКлючСтроки(СкорректированнаяСтрока); МассивСтрокДляКорректировки = ЭтотОбъект[ИмяТЧ].НайтиСтроки(Отбор); Если МассивСтрокДляКорректировки.Количество() = 0 тогда СтрокаДляКорректировки = ЭтотОбъект[ИмяТЧ].Добавить(); ИначеЕсли МассивСтрокДляКорректировки.Количество() = 1 тогда СтрокаДляКорректировки = МассивСтрокДляКорректировки[0]; Иначе ВызватьИсключение "201409101233 Нашлось несколько строк с одним ключем"; КонецЕсли; Выделяю строки с "отбор =" до конца блока. Автоматом получается Код: Функция ПолучитьСтрокуДляКорректировки(ИмяТЧ) Отбор = ПолучитьКлючСтроки(СкорректированнаяСтрока); МассивСтрокДляКорректировки = ЭтотОбъект[ИмяТЧ].НайтиСтроки(Отбор); Если МассивСтрокДляКорректировки.Количество() = 0 тогда СтрокаДляКорректировки = ЭтотОбъект[ИмяТЧ].Добавить(); ИначеЕсли МассивСтрокДляКорректировки.Количество() = 1 тогда СтрокаДляКорректировки = МассивСтрокДляКорректировки[0]; Иначе ВызватьИсключение "201409101233 Нашлось несколько строк с одним ключем"; КонецЕсли; Возврат СтрокаДляКорректировки; КонецФункции То есть теряется параметр "СкорректированнаяСтрока" несмотря на то, что выше эта переменная явно объявлена как локальная переменная модуля (в первой строке "Перем"). |
Автор: | alonehobo [ 09 окт 2014, 06:50 ] | ||||
Заголовок сообщения: | Re: Скрипт рефакторинга. Кто-то вообще пользуется? | ||||
Добавил по аналогии с выделением метода - выделение переменной;
|
Автор: | EvilBeaver [ 09 окт 2014, 11:01 ] |
Заголовок сообщения: | Re: Скрипт рефакторинга. Кто-то вообще пользуется? |
alonehobo писал(а): Добавил по аналогии с выделением метода - выделение переменной; Отлично. Добавьте в основной репозиторий, пожалуйста. |
Автор: | alonehobo [ 09 окт 2014, 11:11 ] |
Заголовок сообщения: | Re: Скрипт рефакторинга. Кто-то вообще пользуется? |
Не имею возможности |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |