Каталог решений - Апрельские нешутки, записанные в пятницу не 13-го

Апрельские нешутки, записанные в пятницу не 13-го

Апрельские нешутки, записанные в пятницу не 13-го

В наличии

Пара баек из жизни незадачливого кодера или почему падал сервер.

Категория:

Описание

Жил-был незадачливый кодер на фиксе. Он не очень твердо выговаривал буквы и цифры, путал 1 и 0, приход с расходом и дебет с кредитом, и вообще матчасть знал на твердую тройку, догадываясь о ней по её реакциям на кодерский код, но был прилежен и усидчив в работе, начальники и проектировщики попадались все добрые и понимающие, давали мелкие и средние задачи, которые выполнялись почти в срок, за что к кодеру относились вполне сносно и терпеливо.

Байка №1. Непроверенный кусок кода или «злобный копипаст».

Приходит как-то кодер на работу и видит, что руководитель отдела напряженно смотрит в монитор и по громкой связи разговаривает с сисадмином. Оказалось, что у мощного терминального сервера, верой и правдой обслуживающего до сих пор огромную файловую базу, зашкаливает загрузка всех 16-ти ядер, и это с самого утра, когда пользователей совсем немного.

Тут кодер смутно припоминает, что вчера вечером он внес небольшое изменение в код. Посмотрел, ага, именно он.

Функция ДляУправляемыхФормВернутьДеньНачалаОткрытияСписка() Экспорт
	ДеньНачалаОткрытияСписка = ДобавитьДниКДате(ТекущаяДата(), -3);
	// Учитываем пятницу и субботу
	Пока (ДеньНедели(ДеньНачалаОткрытияСписка) = 5) ИЛИ (ДеньНедели(ДеньНачалаОткрытияСписка) = 6) Цикл
		ДатаЗапретаИзменений = ДобавитьДниКДате(ДеньНачалаОткрытияСписка, - 1);
	КонецЦикла;
	
    Возврат ДеньНачалаОткрытияСписка;
КонецФункции

Скопипастил, а переменную внутри цикла заменить забыл. Приходит пользователь, открывает журнал документов и одно ядро занято, крутит бесконечный цикл. И так далее. «Бомба» срабатывает только по понедельникам и вторникам. Потом заменив одну переменную, сорок минут обновлял базу, отбиваясь от наседающих пользователей, желающих работать. Морали нет, всех время от времени клинит…

Байка №2. Размножающийся Paint.

Как-то кодеру дали очередное несложное задание: сваять макет ценника для акций, акции обозначаются галочками и текстом. Сколько акций, столько и галочек. PNG-файл с галочкой прилагается.

Кодер почесал в затылке, открыл Paint-ом файл, скопировал в буфер галочку, вставил в макет… и получил вместо галочки черный квадрат Малевича. Ладно, решил он, объедем на другой козе. Вставил в макет объект Paint, вставил в открывшийся Paint галочку, закрыл, посмотрел — хорошо получилось. Сдал задачу коллеге-заказчику.

Спустя некоторое время звонит коллега и говорит, что вывод на экран нескольких десятков ценников занимает весьма значительное время, в течение которого компьютер невероятно тормозит.

Подробный анализ ситуации показал, что для вывода каждого ценника на экран, для каждой галочки в этом ценнике, сервер трудолюбиво открывал свой Paint, таким образом размножая Paint в процессах в геометрической прогрессии. Белые экраны конфигуратора и предприятия на тормозящем сервере представляли собой зрелище не для слабонервных. Закрытие сформированного табличного документа с ценниками закрывало все Paint-процессы.

Для чего вообще существует такая возможность, вставлять в макет объект, и почему сервер реагирует на это именно таким образом, осталось за пределами скромного кодерского разума, галочки были переставлены в макет как картинки из файла, макет с несколькими десятками ценников стал формироваться в секунду и все разошлись по своим делам.

Продолжение следует…

has been added to your cart:
Оформление заказа