|
Вопрос на собеседовании. Оптимизировать запрос в цикле. | ☑ | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0
Kongo2019
16.11.20
✎
12:25
|
Доброго.
Вот все по собеседованиям хожу типа. Все хочу стать настоящим программистом 1С. А то в наших провинциях, так все отчеты рисуем, та мелочёвка всякая. Но то лирика. И вот сегодня один вопрос зацепил в тесте. Вам поставлена задача по доработке нетиповой конфигурации. В данной конфигурации ведется учет остатков товара в регистре накопления в разрезе номенклатура и серия. Серия является обязательной для заполнения в документах. Для проверки наличия остатка есть функция, в которую предаются два параметра в виде ссылки на Номенклатуру и ее серию, и параметр типа дата. Функция возвращает булево значение, есть на остатке или нет. Рассмотрев внимательно данную функцию, Вы видите, что там выполняется запрос к регистру накопления. В запросе используется виртуальная таблица с отбором по номенклатуре и серии. Анализируя работу программы, Вы понимаете, что это так называемый «запрос в цикле». Так как Вам необходимо, по заданию сделать новый документ, который должен иметь табличною часть, в которой возможно несколько строк с разными значениями номенклатуры и серии, и для проверки Вам необходима будет вызвать процедуру проверки остатка столько раз, сколько у вас строк в табличной части документа. Какие ваши действия. Не против, я в голосовалку варианты ответов запихаю. 1. Сообщу руководителю проекта, что данный код не оптимален и предложу переделать. 2. Сообщу руководителю проекта, что данный код не оптимален, но буду использовать уже разработанный функционал. 3. Буду использовать разработанный функционал. 4. Сделаю свою, более оптимальную процедуру. |
|||||||||||||
3
H A D G E H O G s
16.11.20
✎
12:28
|
Других вариантов то и нет.
Тут вопрос на умение работать в команде. Хороший вопрос. 1 |
|||||||||||||
42
Шоколадный глаз
16.11.20
✎
13:14
|
ответить
1 |
|||||||||||||
45
pavig
16.11.20
✎
13:16
|
(0)
Ну конечно же "1. Сообщу руководителю проекта, что данный код не оптимален и предложу переделать." Вы Специалист или как г*вно в проруби болтаетесь? Получил требования, начал делать, обнаружил критичную, с твоей точки зрения, уязвимость в производительности системы в случае реализации таким методом, сообщил ответственному лицу о потенциальной проблеме, получил дальнейшие инструкции - оставлять как есть или переделывать как надо. Может, руководство уже знает об этой проблеме и уже решило исправлять это в каком-нибудь из следующих релизов, а сейчас надо очень просто успеть сделать новый функционал (например, просто для демонстрации возможностей заказчику) к дате выхода релиза? Решение этого вопроса не в твоей компетенции в данном случае. И всё, с тебя взятки гладки, идеальный программист. Не сделал лишнего ненужного, потратил времени ровно столько, сколько было заложено руководством, и при этом оповестил о проблеме, да еще и вызвался её устранить. Просто красавчик. Иначе потом начнется "ну я вот решил оптимизировать бла-бла". Пля, кто тебя просил заниматься оптимизацией? Тебе поставили вполне конкретную задачу. 1 |
|||||||||||||
77
GANR
16.11.20
✎
22:30
|
Если переделывать 15 минут, то сразу же переделанный вариант предложу. Может мне этот код ещё раз 20 запускать и он будет мне же работу тормозить. На фига мне это терпеть?
1 |
|||||||||||||
121
ILM
гуру
17.11.20
✎
11:25
|
На заре моего программирования в 1995 году, в отпуск ушла ведущий специалист отдела разработки. А в её алгоритме ошибка, и начальник отдела попросил меня исправить. Там было 350 строк кода на паскале, когда она вернулась из отпуска, то строк было всего 40, делали они тоже самое, но в три раза быстрее. Она очень на меня сильно обижалась и года три напоминала не лезть в чужой код без разрешения.
1 |
|||||||||||||
123
Джинн
17.11.20
✎
11:35
|
Тут как в армии - обнаружил - доложи. А дальше пусть решение принимает тот, кто управляет процессом.
1 |
|||||||||||||
126
Oftan_Idy
17.11.20
✎
12:02
|
(0) Конечно надо переделать.
К тому же это не сложно, за день точно управишься, с перекурами. Сделаешь отдельную функцию, сделаешь в ней запрос к документу, выдашь в результат строки с ошибками. Заодно управляемую блокировку наложишь на регистр остатков. Если вдруг будет 100500 строк и станет проблемой большой запрос, тогда и будет уже анализировать какой метод в таком случае использовать. Тогда много мелких запрос переварится лучше. Оставлять такое извращение как есть - не комильфо, фу таким быть. 1 |
|||||||||||||
127
art_id
17.11.20
✎
12:20
|
Сообщить, дальше пусть ответственный решает.
Есть у нас один прог, увидел неоптимальный код, который к его задаче вообще никаким боком, и внес изменения. В рабочей база в итоге ошибка вылезать стала, благо это была не критичная самописка по учету моб. связи. Вроде ему даже с вертушки в щи не прописали. Скорей всего устно отделался. 1 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |