Имя: Пароль:
1C
1С v8
Запрос в цикле
Ø (Волшебник 08.01.2017 09:49)
,
0 FigNik Predumaesh
 
05.01.17
19:36
Давече, увидел код и ужаснулся: В цикле написан запрос к объектной таблице документа с целью получения ссылки по номеру и дате документа!
Цикл, соответственно, по строкам таблицы (в колонках номер, дата и т.п.).
Не обладая сильным ораторским искусством, прошу совета: "С каких слов необходимо начать объяснение, что так делать не надо?"
Проблема реальная и усложняется тем, что написавший это программист имеет сертификат специалиста (и по-моему, не один).
Если у кого-то есть под рукой ссылки на материалы, что так делать не надо, буду благодарен!
Если я не прав, то с удовольствием выслушаю замечания, а то я уже второй день смотрю на этот код и начал думать что за прошедшую неделю мир программирования перевернулся.
Это не стеб! Я действительно хочу услышать объективные отзывы по поводу такого написания кода!
Заранее благодарен откликнувшемся!
1 Джинн
 
05.01.17
19:45
Тролль?
2 Web00001
 
05.01.17
19:50
Вот пожалуйста, консультации лучших специалистов
https://www.google.ru/search?q=site:www.forum.mista.ru+запрос+в+цикле
3 FigNik Predumaesh
 
05.01.17
19:52
Нет, я абсолютно серьезно!
Человек пишет запросы везде и всегда (вообще не использует объектную модель). Причем абсолютно убежден, что производительность в данном случае обоих подходов одинакова (я понимаю, что нужен один запрос).
4 Web00001
 
05.01.17
19:53
(3)Использовать замер производительности не предлагать?
5 PLUT
 
05.01.17
19:53
(3) по колено в коде

http://govnokod.ru/
6 yzimin
 
05.01.17
19:53
(0) Цель какая?

Одно дело, когда этот код работает в релизе, другое - если какая-то разовая обработка.
7 FigNik Predumaesh
 
05.01.17
19:55
Спасибо за ссылки.
Замер - не предлагал, пока в состоянии шока нахожусь.
Код в регламентном задании с периодом 1 мин!
8 yzimin
 
05.01.17
19:56
(7) Покажи уже код)))
9 nordbox
 
05.01.17
19:58
(8) Она(Он) стесняется..
10 VladZ
 
05.01.17
19:59
(0)
Есть многое на свете, друг Горацио,
Что и не снилось нашим мудрецам (с).

И зачем так эррегировать? Ты сначала код типовых посмотри.
11 FigNik Predumaesh
 
05.01.17
20:01
сейчас
12 dachnik
 
05.01.17
20:03
(0) Ну хот бы текст запроса формируется не в цикле? А то я в конце прошлого года наткнулся и на такое... (((( Бывает!
13 FigNik Predumaesh
 
05.01.17
20:03
Для Каждого ТекСтрТаб Из СтрокиПоступлений Цикл
Сообщить("Обработка поступления " + ТекСтрТаб.Файл.Имя + " .");    
НаборЗаписейОткрытыхФорм = РегистрыСведений.ОткрытыеФормыДокументов.СоздатьНаборЗаписей();
НаборЗаписейОткрытыхФорм.Отбор.ДокументЗН.Установить(ТекСтрТаб.ЗН);
НаборЗаписейОткрытыхФорм.Прочитать();
Если НаборЗаписейОткрытыхФорм.Количество() = 0 Тогда
.....

ПоступлениеРанее=НайтиДокументПоступлениеТМЦ(ТекСтрТаб.НомерДокументаПоступления,ТекСтрТаб.ДатаВходящегоДокумента);

...

Иначе
//Есть незакрытые формы данного документа, документ не перемещается.
//Документ будет обработан на следующей итерации.
КонецЕсли;    
КонецЦикла;



Функция НайтиДокументПоступлениеТМЦ(ДокНомер,ДокДата)
    ЗапросДок=Новый Запрос;
    ЗапросДок.Текст=  "ВЫБРАТЬ ПЕРВЫЕ 1
    |    ПоступлениеТМЦ.Ссылка
    |ИЗ
    |    Документ.ПоступлениеТМЦ КАК ПоступлениеТМЦ
    |ГДЕ
    |    ПоступлениеТМЦ.Номер = &Номер
    |    И ПоступлениеТМЦ.Дата = &Дата";
    ЗапросДок.УстановитьПараметр("Номер",ДокНомер);
    ЗапросДок.УстановитьПараметр("Дата",ДокДата);
    ВыборкаДок=ЗапросДок.Выполнить().Выгрузить();
    Если ВыборкаДок.Количество()>0 Тогда              
        Возврат ВыборкаДок[0].Ссылка;
    Иначе
        Возврат Документы.ПоступлениеТМЦ.ПустаяСсылка()
    КонецЕсли;            
КонецФункции
14 FigNik Predumaesh
 
05.01.17
20:05
Что-то не получилось.
Ну в общем, вызов функции происходит в цикле
15 Черный маклер
 
05.01.17
20:07
(13) из 1С-ка клюшки даже дустом не вытравить :)
16 Mort
 
05.01.17
20:07
Цикл на пять итераций и запускается это раз в месяц?
17 FigNik Predumaesh
 
05.01.17
20:08
Нет в среднем на 10-20 и раз минуту
18 Сияющий Асинхраль
 
05.01.17
20:09
(0) В типовых полно запросов в цикле... Что теперь после каждого такого запроса биться об стену головой?...
19 Джинн
 
05.01.17
20:12
(3) Я пишу запросы везде и всегда. И практически никогда не пользуюсь "объектной моделью" без крайней на то необходимости. И?
20 FigNik Predumaesh
 
05.01.17
20:14
А если в данном случае используется файловый вариант?
21 Черный маклер
 
05.01.17
20:16
Даже если запрос в цикле, то совсем не обязательно результат выгружать в ТЗ и проверять количество строк в ТЗ
22 nordbox
 
05.01.17
20:16
(20) Оптимизируй данный кусок кода, как бы ты сделал
23 Джинн
 
05.01.17
20:17
(20) Файловый вариант используется исключительно для разработки. И жадными ларечниками. В первом случае производительность носит локальный временный характер. А во втором это не мои клиенты.
24 Джинн
 
05.01.17
20:19
(21) Необязательно вообще в цикле его выполнять. Можно сразу получить готовый набор за вычетом "открытых форм" и с ним работать. На кой ляд лишние проверки?
25 FigNik Predumaesh
 
05.01.17
20:20
Если запрос - то один и до цикла.
И как-нибудь бы связал результат запроса (ссылки) с соответствующими строками таблицей значений по которой идет цикл.
Если бы ленился - то просто изменил бы модель на объектную.
Т.к. в таблице документов около млн записей (в файловом режиме).
26 Джинн
 
05.01.17
20:21
(25) Лям записей в файловом режиме - это диагноз.
27 yzimin
 
05.01.17
20:25
(25) Проблему-то какую решаете? медленно код отрабатывает фоне?
28 FigNik Predumaesh
 
05.01.17
20:29
Проблема: Как убедить человека, что так писать не стоит
29 FigNik Predumaesh
 
05.01.17
20:30
Вне зависимости от производительности данного решения.
Чтобы не продолжал в том же духе
30 nordbox
 
05.01.17
20:31
(28) А тебе какая до него разница???
31 Cool_Profi
 
05.01.17
20:32
(28) (29) Кто тебе такое сказал?
Premature optimization is a root ao an evil.
Так сказал человек, на пару порядков умней тебя.
Ты сначала померяй скорость, потом истери. А ещё лучше напиши свой код, который кажется тебе лучше. И докажи на цифрах.
32 nordbox
 
05.01.17
20:32
+30 Сколько хозяек, столько и борщей
33 FigNik Predumaesh
 
05.01.17
20:35
Дело в том, что мы работаем с ним вместе. Такого кода он может написать быстро и много. Тогда это станет реальной проблемой - а мне придется все это переписывать.
34 FigNik Predumaesh
 
05.01.17
20:36
На сколько бы это не было приемлемо в моменте, через некоторое время - станет не приемлемо!
35 Джинн
 
05.01.17
20:37
(33) Мордой об тейбл или линейкой по рукам. Вы его начальник или просто коллега?
36 nordbox
 
05.01.17
20:37
(33) Вот возьми и напиши как ты считаешь нужным
и покажи ему аргументированно
37 Cool_Profi
 
05.01.17
20:38
(33) А ты там кто? И кто тот писатель?
38 yzimin
 
05.01.17
20:39
(33) >> а мне придется все это переписывать.

рефакторинг ради рефакторинга?
39 mkalimulin
 
05.01.17
20:39
(0) Пока ты ищешь доказательства того, какой ты умный, некоторые уже себе на квартиру заработали этими самыми запросами в цикле.
40 nordbox
 
05.01.17
20:40
(34)>>На сколько бы это не было приемлемо в моменте, через некоторое время - станет не приемлемо

Через некоторое время ВСЕ становится НЕприемлемым
41 FigNik Predumaesh
 
05.01.17
20:43
Как бы это не звучало, но моя должность - ведущий программист, а его - "ведущий разработчик ПО" (видимо, свою он сам придумал)
42 Неверный Параметр И
 
05.01.17
20:43
(0) Про это прямо написано в стандартах разработки: http://its.1c.ru/db/v8std#content:2149184085:hdoc
Дальше за объяснениями - в книжки и тыпы http://its.1c.ru/db/pubqlang/content/150/hdoc

По поводу соблюдения стандартов в вашей конторе и прочего чего и когда надо именно вам - кроме вас никто не знает.
43 Cool_Profi
 
05.01.17
20:44
(41) ТО есть два Сусаниных. На месте конторы я бы вас обеих уволил.
44 Неверный Параметр И
 
05.01.17
20:47
45 XLife
 
05.01.17
20:47
(0) афтар, пачму у тебя мыло в личке на женский пол, а ты пишешь от мужского?
46 FigNik Predumaesh
 
05.01.17
20:49
У жены позаимствовал.
Всех благодарю, с аргументацией разобрался, спасибо.
47 Cool_Profi
 
05.01.17
20:54
"У жены позаимствовал"
"Дата регистрации:     05 января 2017; сегодня"
48 Fram
 
05.01.17
20:56
я правильно понимаю, что все кто оправдывает (13) сами так делают?
бывают 2 крайности:
1. когда пытаются писать оптимальный код там где это не нужно. тут потеря времени и, в прицнипе, не страшно
2. как в данном случае, когда по..исты пишут (13) для проакшна
и то и другое плохо, но за 2ое точно надо погоны "ведущего" отрывать
49 Cool_Profi
 
05.01.17
21:14
(48) в (13) Есть огромный потенциал для оптимизации. При необходимости тело функции меняется и программа начинает работать на порядки быстрей.
Но если нет необходимости?
50 Fram
 
05.01.17
21:26
(49) ты хочешь сказать этот "ведущий" пожертвовал текщим возможным оптимальным решением ради будущей оптимизации?
51 Garykom
 
гуру
05.01.17
21:45
Эээ кто подскажет "РегистрыСведений.ОткрытыеФормыДокументов" это шо?
52 Garykom
 
гуру
05.01.17
21:48
(13) Моя бы сделал отдельную функцию
Функция НайтиДокументПоступлениеТМЦ(ДокНомер,ДокДата, СтрокиПоступлений),

в которую передавал бы структуру/массив/ТЧ и вызывал ее один раз без циклов.
53 Garykom
 
гуру
05.01.17
21:48
(52)+ Внутри этой измененной функции понятно подправленный запрос
54 Djelf
 
05.01.17
22:42
(33) Раз "Такого кода он может написать быстро и много." то он его не пишет, а копипастит. НайтиДокументПоступлениеТМЦ просто работающий кусочек для копипаста.
Вот еще вариант такого случая

Функция   НайтиДокумент(ИмяДокумента,НомерДок,ДатаДок)
...    
    Запрос.Текст = "ВЫБРАТЬ
    |    ИмяДокумента.Ссылка КАК Ссылка
    |ИЗ
    |    Документ.ИмяДокумента КАК ИмяДокумента
    |ГДЕ
    |    ИмяДокумента.Комментарий ПОДОБНО &Комментарий
    |    И ИмяДокумента.Дата Между  &НачалоПериода И  &КонецПериода";
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "ИмяДокумента", ИмяДокумента);


В (52) правильное решение проблемы.
Тебе нужно нарисовать нормальную болванку для копипаста, чтобы заменить его любимую функцию без особой головной боли, и убедительный тест скорости.
А давить на него ссылками из (42), имхо, совершенно бесполезно...
55 Неверный Параметр И
 
05.01.17
22:46
(54) Написать код за него, показав свое превосходство. Ага-ага. Всегда так делаю. А мнение других (по ссылкам) совершенно бесполезно. =)
56 vde69
 
05.01.17
23:34
код в запросе может быть обусловлен следующими причинами

1. код не критичен к скорости, варианты
- разовая обработка
- размер цикла не может быть большой (например две три итерации)
2. меньшее из двух зол, варианты
- сложность составления общего запроса для всех итераций (запрос изменяется в каждой итерации)
- дополнительная обработка входных данных для запроса в цикле, не поддающаяся перегону в одну общую ВТ

могу еще наковырять вариантов...

хотя с другой стороны сколько я видел полных дибилов (в плане кодинга) с сертификатами спеца 1с, что все возможно...
57 h2lion
 
05.01.17
23:46
(45) Насчет... женского мыла, и мужского рода в сообщениях, мне одному кажется (сам не программист, поэтому предметно отвечать по коду не могу и разницу улавливаю слабо) НО! По моему личному субъективному мнению, мужчина-программист должен быть логичным и последовательным, это профессия прививает. И доказать неправоту, другому специалисту или не будет, или найдет способ сделать это самостоятельно. А вот девушка, разбившись о логичность, но сердцем чувствуя что это не так пойдет за помощью к другим мужчинам на форум. Возможно я ошибаюсь, но это была девушка-вреднуля-программист.
58 wertyu
 
06.01.17
00:09
(0) у 1с есть целая конфа, которая использует не просто запросы в цикле, а запросы в рекурсии
59 Torquader
 
06.01.17
01:25
Запрос в цикле им не понравился.
А ничего, что это запрос по индексированным полям, который выбирает одну запись.
Допустим, что мы хотим выбрать несколько записей, то мы при составлении запроса, чтобы избежать полного сканирования должны их разбить на запросы по одной записи и написать слово ОБЪЕДИНИТЬ, чтобы собрать результаты - и чем это от цикла отличается.
Боюсь, что запрос, вынесенный из цикла, будет исполнен с полным сканированием таблицы, и все желания оптимизации захлебнуться.
60 Starhan
 
06.01.17
02:30
(0) для того что бы сделать замер производительности его кода и твоей версии этого участка - необязательно обращаться на форум.

А то может глупо получится, когда ты его пропесочишь, а он сам тебе этим замером в лицо натыкает.
61 nordbox
 
06.01.17
06:27
(0) я дико извиняюсь но что за регистр
"ОткрытыеФормыДокументов" ??
ето где? что это за регистр? с чем его едят?
62 nordbox
 
06.01.17
07:06
+61 Позвольте пофантазировать, глупому:
Судя по названию,  регистр "ОткрытыеФормыДокументов", это регистр где хранится инфа об открытых доках и его формах сеанса работы юзверя. Кроме того похоже это из какой то отраслевой или самописной конфы.
Если в нем пишется инфа о текущем сеансе юзверя то вообще то откуда там Лям записей???
Далее: Если там хранится история работы юзверей(в этом случае возможен лям записей) НО тогда нафига спрашивается журнал регистрации????
и вообще зачем он нужен??? каково его предназначение???
63 KishMish
 
06.01.17
07:14
(0) тон темы похож на "я уже такой крутой специалист, что не умею говорить с холопами и неучами. а еще я философствую про запросы и объектную модель. и однозначно мне все переделывать за этим лохом. вот какой я крутой. сам себя боюсь"
64 Double_Medved
 
06.01.17
10:05
У меня подруга работает в банке, разрабом на SQL(не чистом, там я так понял база какая-то с вебмордой и т.д. и т.п., шифрование там и т.д.)  Так она говорит что у них ВСЕГДА так - запросы в цикле. ВСЕГДА так, и это в порядке вещей, и НИКТО НИКОГДА не говорил что это плохо, ни старшие разрабы, ни начальники, никто, и так уже давно все работает.
65 Double_Medved
 
06.01.17
10:06
(64)Конечно я считаю что они там все еретики
66 bodri
 
06.01.17
12:19
Иногда встречал в цикле перебора строк документа обращение к функции получения текущей цены, вот за это я уже бы точно отрубал руки по самый хвост)))
67 Garykom
 
гуру
06.01.17
12:39
(64) Так "запросы в цикле" это не то чтобы "совсем плохо".

Это не оптимально, когда есть другие более оптимальные варианты.
Примерно как мыть посуду в посудомойке по одной тарелочке... вместо того чтобы разом всю засунуть в посудомойку и вымыть всю.
68 APXi
 
06.01.17
13:15
(0) Да, было бы лучше если бы он сначала где то создавал менеджер временных таблиц, где то его заполнял, потом где то его использовал, как в ут 11 или ERP, а потом бы пришел ты, два часа разбирался с этим кодом и вынес вердикт "А чё не сделал одной функцией, которая логично и понятно возвращает документ по номеру и дате?". Код должен быть такой который легко читается, а не такой, чтобы его изучать два дня, а потом сидеть и вспоминать для чего тебе это вообще нужно было.
А если скорость не нравиться, то сделай замер, а потом уже обсуждай.
69 Fedor-1971
 
06.01.17
13:30
(64) У них реляционная БД, а не объектная. Там сам разработчик определяет Где, Что и Как хранить и выбирать.
лЛичный опыт: операционисты не слабо выбешиваются из-за медленной работы централизованного ПО (иногда под раздачу попадают и клиенты типа "Горит синим пламенем, надо наисрочнейше провести платёжку - а система что-то начинает пересчитывать и платёж проводится медленно"). Так что, пример из 67 само то и для оных разработчиков и главный девиз "Не надейся на сервер размером в целую комнату - он то же может тормозить по неизвестным причинам, а делай максимально эффективные выборки данных"
70 EvgeniuXP
 
06.01.17
14:23
(0) а восстанови последовательность - и вот тебе цикл, а в нем  запрос\ы :)
71 Torquader
 
06.01.17
19:31
Иногда "запрос в цикле" - это много маленьких транзакций вместо одной большой.
72 nordbox
 
06.01.17
19:47
+71 кроме того посмотри внимательно запрос
ЗапросДок.Текст=  "ВЫБРАТЬ ПЕРВЫЕ 1
ни о чем не говорит?
73 Torquader
 
06.01.17
19:51
(72) Так там и будет одна запись, если, конечно, уникальность номера документа не нарушена.
Боюсь что фокус с выбором только первых без запроса в цикле будет требовать достаточно интересных действий.
74 Torquader
 
06.01.17
19:53
И, на самом деле, для запросов в цикле в нормальном SQL есть идеология PREPARE-EXECUTE, когда мы подготовку запроса к исполнению выполняем один раз, а потом подставляем данные и вызываем исполнение подготовленного запроса.
Это сделали как раз для того, чтобы запросы в цикле выполнять, и создатели SQL очень много над этим размышляли - так что не надо говорить, что запрос в цикле - это однозначно плохо.
75 vde69
 
06.01.17
19:56
(73) поиск по номеру работает быстрее чем аналогичный запрос....

вероятно тут дело в том, что запрос в объектной модели не подвергается трансформациям и оптимизациям как запрос в 1с
76 Torquader
 
06.01.17
20:00
(75) Там пропускается код создания объекта запроса и парсинг текста запроса в запрос SQL.
77 Неверный Параметр И
 
06.01.17
22:53
(74) > и создатели SQL очень много над этим размышляли

А создатели 1С прямым текстом написали http://its.1c.ru/db/v8std#content:2149184085:hdoc

Прямо гаражный сервис Петровича.
- И зачем они, ироды, такую пружинку ставят? Вовсе незачем это делать, я вот 50 лет за баранкой отмахал, если делать двойной выжим сцепления, то...
78 Torquader
 
06.01.17
22:57
(77) Просто у них от текста запроса до самого SQL очень длинный путь - вот и хотят проходить его только один раз.
P.S. в некоторых случаях, на операцию PREPARE SQL-сервер тратит больше ресурсов, чем потом на выбор значения по уже сформированному запросу, а так как 1С PREPARE ещё не придумала, то ничего хорошего из запроса в цикле не получается.
79 Неверный Параметр И
 
06.01.17
22:58
(78) Контрольный.

Как работает SDBL?
80 Torquader
 
06.01.17
23:03
Не стоит забывать, что в 1С, во-первых, есть файловый вариант, где исполнение SQL-запросов имитирует сам движок 1С, во-вторых, есть несколько SQL-серверов, где 1С может хранить данные, и никакие специфические указания, кроме текста запроса SQL 1С самому SQL не передают - причём - даже в случае выполнения доступа через объекты или встроенные функции.
81 vde69
 
06.01.17
23:19
(80) ну я-бы добавил, что 1с еще может быть на посгрее и даже на оракле (последний вообще ни разу не скуль...) по этому не надо пытатся тянуть стандарты скуля в 1с...

по хорошему нужно следовать рекомендациям 1с из (77), но бывают и исключения как например я привел в (56)
82 Torquader
 
06.01.17
23:23
(81) В Oracle тоже PREPARE есть.
Там, правда, ещё много чего интересного есть, но, 1С это не использует.
83 Помогите
 
07.01.17
00:47
(0) Посчитай как будет выгоднее написать, в рублях, учитывая что одним запросом написать сложнее и программист потратит больше человеко-часов. И посчитай сколько при этом будет получено прибыли. Лично я не вижу никакой прибыли если это регламентное задание выполняется в фоне и никому не мешает.
84 фобка
 
07.01.17
09:31
(0) Запрос в цикле - это нормально, порой. Человек который всегда, при каждом случае любыми способами пытается его избежать - плохой программист. КГ/АМ
85 Adam_1C
 
07.01.17
18:07
(0) У него есть сертификат, у тебя я как понимаю нет. Так что не лезь в не своё дело. Ему виднее
86 Любопытная
 
07.01.17
18:26
Забавно. Если бы ТС выложил этот код как свой, тут было бы постов 200 про то, как плохи запросы в цикле. Но в контексте (0) все решили объяснить, что ТС не прав. Из чего можно сделать вывод, что главное желание местных - доказать, что ТС неправ. И неважно, о чем спрашивает или сообщает ТС :)
(0) Перепиши код так, как считаешь нужным, сделай замеры производительности, предъяви свои возражение аргументированно. А просто так истерить смысла нет, твоему напарнику твои истерики до лампочки, а ты свои нервы тратишь :)
87 Злопчинский
 
07.01.17
18:39
Мне как потребителю продукта абсолютно пофиг что там внутри если меня это устраивает по скорости и качеству. Когда упоетс в проблемы тогда и соптимизируем при необходимости. Оптимизация 3 критичных участков которая вылезет со временем будет стоить дешевле чем оптимизация всего кода 99% которого никогда не упрутся в вопросы производительности.
88 Garykom
 
гуру
07.01.17
19:38
(87) Зачем писать копрокод чтобы затем с матами его переписывать, когда можно сразу писать нормальный код, пусть и чуток менее шустро (для новичка).

Зато в будущем будет огромная экономия времени, но конечно денег 2-й или 3-й и т.д. раз снять не выйдет "за оптимизацию" или "за переписывание".
89 Garykom
 
гуру
07.01.17
19:40
(88)+ Так что с точки зрения клиента/заказчика код в (0) пакость, но с точки зрения исполнителя/программиста возможно осознанный шаг, оставили себе место для "я тут ускорил по вашим просьбам - дайте мне плюшек"
90 Злопчинский
 
07.01.17
19:43
(88) у меня присутствует куча клпрокода. Написано быстро. Задачу решило. Работает годами и никому не надо это переписывать. И не понадобится .

Поэтому возможно в (0) ведущий потому и ведущий что понимает где можно не нспрчгаться, а где нужно. А товарищ без ника важность задач фильтровать не умеет - хренли кодеру морочиться важности задач
91 nordbox
 
07.01.17
19:48
(88) Не поверишь )) 2 раза за одну хотелку взял деньги )
есть у меня клиент, у него:
УТ 10.3, кассы онлайн, работают через интерфейс кассира
он захотел остатки что бы были у кассиров(колонка),
НО что бы как только он что то приходует и списывает у кассиров быстренько цифири менялись на экране. (3 кассы)
я ему говорю, что нет проблем, только говорю что загрузка проца и сетки будет не слабенькая, по причине УТ 10.3 это "отдельное" произведение...
он говорит, делай, я сделал, через пол года завыл, он сказал верни все как было, но завыли кассиры от неудобства моментального контроля остатков.
92 Cool_Profi
 
07.01.17
19:52
(91) Видать, так сделал, что оно всё завыло...
93 Злопчинский
 
07.01.17
19:52
(91) угу
Два раза деньги обычно не за код берётся а за переделку процесса
Делаем так! Не надо - не справитесь! Но нам надо! Я не оспаоиваю что надо или не надо, я вам говорю не справитесь! Нет, делай! Сделал. Тонут в работе, ибо хотелка нужная а ресурса жмут. Пару месяцев мучаются , потом отказывается назад...
94 nordbox
 
07.01.17
19:54
(93) точно
95 Злопчинский
 
07.01.17
19:57
(94) ещё бы не точно
Я по моложе лёжа с карабина 87 выбил, а стоя с руки 73
96 nordbox
 
07.01.17
20:03
(95) Новый вид услуги надо вводить: РАЗУБЕЖДЕНИЕ заказчкика в бредовости хотелки
))
97 bizon2008
 
07.01.17
21:21
(96)Зачем? Я делал все, даже полный бред, главное бабки вперед. Клиент всегда прав однако.
98 Мимохожий Однако
 
08.01.17
08:43
(0) Спроси у автора, не стесняйся. Тут Любопытная советовала замерить до и после переделки кода. С этим абсолютно согласен.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший