Size: a a a

1С, БСП, DevOps и Архитектура

2020 February 14

JD

John Doe in 1С, БСП, DevOps и Архитектура
Походу вернулись к https://t.me/ssl1c/44760 :)
источник

VP

Vitaly Popov in 1С, БСП, DevOps и Архитектура
Нет, предлагаю например, вести массив данных, в котором будут содержаться только валидные данные.

На последний шаг может добраться только пустой массив, например
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Vitaly Popov
Нет, предлагаю например, вести массив данных, в котором будут содержаться только валидные данные.

На последний шаг может добраться только пустой массив, например
Ну погоди, а если на последний шаг добрались не все данные? Как определишь что это все полные данные, а не за вычетом невалидных?
Напоминаю: записать в БД надо только если все в полноте, т.е. невалидных нет.
источник

VP

Vitaly Popov in 1С, БСП, DevOps и Архитектура
John Doe
Ну погоди, а если на последний шаг добрались не все данные? Как определишь что это все полные данные, а не за вычетом невалидных?
Напоминаю: записать в БД надо только если все в полноте, т.е. невалидных нет.
Ничего не добавлять для записи в БД.

Если ты говоришь, что например нам из сервиса приходит набор полей, и мы его записываем в как-ойто объект. То сначала надо сформировать объект, дальше проверить правильно ли он сформирован, и только потом записывать.
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Vitaly Popov
Ничего не добавлять для записи в БД.

Если ты говоришь, что например нам из сервиса приходит набор полей, и мы его записываем в как-ойто объект. То сначала надо сформировать объект, дальше проверить правильно ли он сформирован, и только потом записывать.
1. Лишаемся возможности удобной отладки - вместо флагов / признаков успеха и вложенности придется анализировать, а что там на вход следующему методу передается.
2. Придется заглядывать внутрь вызываемого метода, чтобы понять, что он ничего запретного не сделает при неуспехе предыдущего.

Но избавляемся от избыточных отступов вложенности. Подход понятен, благодарю, попробую взять на вооружение, хоть и перечисленные выше минусы пока кажутся неприемлемыми.
источник

RB

Ramis Bakhtiev in 1С, БСП, DevOps и Архитектура
John Doe
Ну, и как в этом коде реализуется невыполнение последующих шагов при неуспехе предыдущих?
Успех = СделатьЧтоТо_1();
Если Успех Тогда
Успех = СделатьЧтоТо_2();
Если Успех Тогда
 Успех = СделатьЧтоТо_3;
 //...
КонецЕсли;
КонецЕсли;

//-----------

Успех = СделатьЧтоТо_1();
Если Не Успех Тогда
Перейти ВсеПлохо
КонецЕсли;

Успех = СделатьЧтоТо_2();
Если Не Успех Тогда
Перейти ВсеПлохо
КонецЕсли;

Успех = СделатьЧтоТо_3;
//...

//Тут все плохо
~ВсеПлохо:

вот он код лишенный каких либо изьянов
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Ramis Bakhtiev
Успех = СделатьЧтоТо_1();
Если Успех Тогда
Успех = СделатьЧтоТо_2();
Если Успех Тогда
 Успех = СделатьЧтоТо_3;
 //...
КонецЕсли;
КонецЕсли;

//-----------

Успех = СделатьЧтоТо_1();
Если Не Успех Тогда
Перейти ВсеПлохо
КонецЕсли;

Успех = СделатьЧтоТо_2();
Если Не Успех Тогда
Перейти ВсеПлохо
КонецЕсли;

Успех = СделатьЧтоТо_3;
//...

//Тут все плохо
~ВсеПлохо:

вот он код лишенный каких либо изьянов
Ну здрасти - на дублирование кода предлагаешь закрыть глаза?
источник

RB

Ramis Bakhtiev in 1С, БСП, DevOps и Архитектура
John Doe
Ну здрасти - на дублирование кода предлагаешь закрыть глаза?
Успех = СделатьЧтоТо_1();
Если Не Успех Тогда Перейти ~ВсеПлохо; КонецЕсли;

Успех = СделатьЧтоТо_2();
Если Не Успех Тогда Перейти ~ВсеПлохо; КонецЕсли;

Успех = СделатьЧтоТо_3;
//...

//Тут все плохо
~ВсеПлохо:
вот, теперь все действительно идеально
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Ramis Bakhtiev
Успех = СделатьЧтоТо_1();
Если Не Успех Тогда Перейти ~ВсеПлохо; КонецЕсли;

Успех = СделатьЧтоТо_2();
Если Не Успех Тогда Перейти ~ВсеПлохо; КонецЕсли;

Успех = СделатьЧтоТо_3;
//...

//Тут все плохо
~ВсеПлохо:
вот, теперь все действительно идеально
Ничего в плане дублирования не поменялось - оно как было, так и есть
источник

RB

Ramis Bakhtiev in 1С, БСП, DevOps и Архитектура
дублирование только метки перехода, условие и так выполнялось
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Ты правильно сказал: дублирование метки перехода
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Думаю, если создать голосовалку, то твой вариант с меткой и переходом наберет 90% дизлайков)
источник

ВМ

Василий Мазурок in 1С, БСП, DevOps и Архитектура
источник

ВМ

Василий Мазурок in 1С, БСП, DevOps и Архитектура
Картинку в тему подвезли.
источник

RB

Ramis Bakhtiev in 1С, БСП, DevOps и Архитектура
John Doe
Думаю, если создать голосовалку, то твой вариант с меткой и переходом наберет 90% дизлайков)
я не понимаю как ты можешь сомневаться в таком отточенном промышленном коде....
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Василий Мазурок
Картинку в тему подвезли.
Баян
источник

ВМ

Василий Мазурок in 1С, БСП, DevOps и Архитектура
John Doe
Баян
Зато в тему Вам...
источник

ВМ

Василий Мазурок in 1С, БСП, DevOps и Архитектура
Да и пятница жеш
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Василий Мазурок
Зато в тему Вам...
В какую тему?
источник

ВМ

Василий Мазурок in 1С, БСП, DevOps и Архитектура
John Doe
В какую тему?
Про языки программирования )))
источник