Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion v8files-extractor.os
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@
Для Каждого Каталог Из СписокНовыхКаталогов Цикл

Лог.Отладка("Запуск git add для каталога " + Каталог);
Вывод = ПолучитьВыводПроцесса("git add --all """ + Каталог + """", КодВозврата);
Вывод = ПолучитьВыводПроцесса("git add --all " + ОбернутьПутьВКавычки(Каталог), КодВозврата);
Лог.Отладка("Вывод git add: " + Вывод);
Если КодВозврата <> 0 Тогда
Лог.Ошибка(Вывод);
Expand Down Expand Up @@ -724,6 +724,19 @@

КонецФункции

Функция ОбернутьПутьВКавычки(Знач Путь)

Результат = Путь;
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Сорри за занудство, но кто-нибудь может мне объяснить (может, @EvilBeaver ?), почему в скриптах 1script прямо вот принято стало все параметры процедур передавать через Знач? И если мы уже через Знач гарантировали неизменность исходной переменной, зачем тогда делать отдельное копирование в переменную Результат?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

отвечу со своей стороны.

  1. Глобально Знач - рекомендация со стороны 1с. Меньше сериализовывать при перемещении с клиент-сервер и все такое (правда тут нет клиент-сервера). С точки зрения вызывающей функции такая сигнатура позволяет мне быть уверенным, что с моими параметрами ничего не случится, что по крайней мере в части параметров функция без побочных эффектов.
  2. Отдельная переменная под результат - привычка и стандарты кода в организации, где я работаю.

P.S. Естественно готов переделать под стандарты, принятые в команде проекта xDrivenDevelopment

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Знач это хорошо, я еще со времен C++ люблю и уважаю const

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@artbear , const и Знач - это вообще разные вещи! const в c++ только лишь говорит компилятору, что переменную нельзя изменять. Это не приводит побочным эффектам в виде увеличения нагрузки на процессор или перерасходу памяти. В 1С Знач приводит к копированию значения (а значит, выделению памяти). А в данном случае копирование происходит 2 раза. Понятно, что в данном скрипте это не играет вообще никакой роли. Но я против необдуманного использования Знач везде и всюду, только потому, что это рекомендует 1С. Например, будете сочинять какой-нибудь сложный рекурсивный алгоритм с большим уровнем вложенности, и из-за Знач можете получить большой перерасход памяти. @nixel2007 правильно сказал, что здесь нет никаких клиент-серверных вызовов, в которых Знач крайне желателен.

Если Прав(Результат, 1) = "\" Тогда
Результат = Лев(Результат, СтрДлина(Результат) - 1);
КонецЕсли;

Результат = """" + Результат + """";

Возврат Результат;

КонецФункции

Инициализация();

Если ЗапускВКоманднойСтроке() Тогда
Expand Down