Skip to content

Отрефакторить сильно дублирующий код #98

Open
@artbear

Description

@artbear
  • выделить спец.метод для получения значения по умолчания
    ПутьКХранилищу = Параметр( ПараметрыКоманды, "ПутьКХранилищу", "");
    или НачальнаяВерсия = Параметр( ПараметрыКоманды, "-minversion", 0);

и простейший код метода

Функция Параметр(Знач Коллекция, Ключ, ЗначениеПоУмолчанию)
  Рез = Коллекция[Ключ];
  Если Рез = Неопределено
    Рез = ЗначениеПоУмолчанию;
  КонецЕсли;
  Лог.Отладка("%1 = %2", Ключ, Рез);
  Возврат Рез;
КонецФункции

и тогда код из 92 строк (ниже) превратится в код в ~20 строк :)

и таких мест немало :(

Код, например, в команде Sync - почти 100 строк (65 -157 строки) !!

	ПутьКХранилищу			= ПараметрыКоманды["ПутьКХранилищу"];
	URLРепозитория			= ПараметрыКоманды["URLРепозитория"];
	ЛокальныйКаталогГит		= ПараметрыКоманды["ЛокальныйКаталогГит"];
	ДоменПочты				= ПараметрыКоманды["-email"];
	ВерсияПлатформы			= ПараметрыКоманды["-v8version"];
	НачальнаяВерсия			= ПараметрыКоманды["-minversion"];
	КонечнаяВерсия			= ПараметрыКоманды["-maxversion"];
	Формат					= ПараметрыКоманды["-format"];
	ИмяВетки				= ПараметрыКоманды["-branch"];
	Лимит					= ПараметрыКоманды["-limit"];
	КоличествоКоммитовДоPush = ПараметрыКоманды["-push-every-n-commits"];
	ПереименовыватьФайлМодуляОбычнойФормы = ПараметрыКоманды["-process-fatform-modules"];
	ПроверитьАвторовХранилища = ПараметрыКоманды["-check-authors"];
	ПрерватьВыполнениеБезКомментарияКВерсии = ПараметрыКоманды["-stop-if-empty-comment"];
	АвтоматическаяУстановкаТэговПоВерсиям = ПараметрыКоманды["-auto-set-tags"];

	Если НачальнаяВерсия = Неопределено Тогда

		НачальнаяВерсия = 0;

	КонецЕсли;

	Если ПроверитьАвторовХранилища = Неопределено Тогда

		ПроверитьАвторовХранилища = Ложь;

	КонецЕсли;

	Если КонечнаяВерсия = Неопределено Тогда

		КонечнаяВерсия = 0;

	КонецЕсли;

	Если Лимит = Неопределено Тогда

		Лимит = 0;

	КонецЕсли;
	
	Если КоличествоКоммитовДоPush = Неопределено Тогда

		КоличествоКоммитовДоPush = 0;

	КонецЕсли;

	Если ПрерватьВыполнениеБезКомментарияКВерсии = Неопределено Тогда

		ПрерватьВыполнениеБезКомментарияКВерсии = Ложь;

	КонецЕсли;

	Если АвтоматическаяУстановкаТэговПоВерсиям = Неопределено Тогда

		АвтоматическаяУстановкаТэговПоВерсиям = Ложь;

	КонецЕсли;

	НачальнаяВерсия = Число(НачальнаяВерсия);
	КонечнаяВерсия = Число(КонечнаяВерсия);
	Лимит = Число(Лимит);
	КоличествоКоммитовДоPush = Число(КоличествоКоммитовДоPush);

	Если ЛокальныйКаталогГит = Неопределено Тогда

		ЛокальныйКаталогГит = ТекущийКаталог();

	КонецЕсли;

	Если Формат = Неопределено Тогда

		Формат = РежимВыгрузкиФайлов.Авто;

	КонецЕсли;

	Если ИмяВетки = Неопределено Тогда

		ИмяВетки = "master";

	КонецЕсли;

	Лог.Отладка("ПутьКХранилищу = " + ПутьКХранилищу);
	Лог.Отладка("URLРепозитория = " + URLРепозитория);
	Лог.Отладка("ЛокальныйКаталогГит = " + ЛокальныйКаталогГит);
	Лог.Отладка("ДоменПочты = " + ДоменПочты);
	Лог.Отладка("ВерсияПлатформы = " + ВерсияПлатформы);
	Лог.Отладка("Формат = " + Формат);
	Лог.Отладка("ИмяВетки = " + ИмяВетки);
	Лог.Отладка("НачальнаяВерсия = " + НачальнаяВерсия);
	Лог.Отладка("КонечнаяВерсия = " + КонечнаяВерсия);
	Лог.Отладка("Лимит = " + Лимит);
	Лог.Отладка("КоличествоКоммитовДоPush = " + КоличествоКоммитовДоPush);
	Лог.Отладка("ПроверитьАвторовХранилища = " + ПроверитьАвторовХранилища);

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions