TGViewer
There will be no singularity There will be no singularity @nosingularity · 1.96K subscribers
Post #437 796
​Тема, которую я благополучно прослоупочил - нелепые факапы в разработке.
https://vc.ru/life/124730-tred-razrabotchiki-vspominayut-nelepye-oshibki-v-svoey-rabote

Давно хотел рассказать свою историю, произошедшую почти 20 лет назад.

1/2
Работал я тогда в одном маленьком региональном операторе начальником отдела биллинга.
Ситуация там была интересная - биллинг на протяжении многих лет писала команда из 10 человек. Потом сотового оператора продали TELE2, а команда разработки отделилась и осталась в другой компании, занимающейся продажей интернета.

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

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

Он нанял меня на должность начальника биллинга :)
Моя практика SQL на тот момент была ограничена созданием каталога для интернет магазина на Mysql.
Еще я слышал о том, что существуют join'ы ...

Передача биллинга происходила так: я пришел в кабинет к разработчикам (который располагался на том же этаже, что и сотовый оператор) и спросил как будет происходить процесс передачи.
Один из разрабов встал, подошел к стене, выдернул из одного из системников все провода и вручил мне его руки.

Биллинг представлял собой системник high tower с windows NT (или 2000, не помню точно) на борту и сервером MSSQL со всей бизнес-логикой, написанной на хранимках.

Я бегом добежал до своего кабинета и воткнул все все в сеть.

Не помню подробностей как я все это запускал. Видимо, мозг блокирует эти воспоминания :)

Long story short, я немного разобрался как там все устроено.
Бэк, в лучших традициях oracle-style разработки был полностью на MSSQL. Фронтом выступали приложухи, написанные на Visual Fox Pro.
На них работали все отделы - абонентский, бухгалтерия, саппорт и все остальные.

Одна из главных магий этой системы был процесс генерации "книги продаж" для бухгалтеров.
Он должен был запускаться ровно один раз в месяц, в 00:00 первого числа, откатить назад было невозможно, как оно работает - не знал никто.
Внутри процедура генерации занимала экранов 200 T-SQL, кода, который вызывал несметное количество других процедур, часть из которых была зашифрована.
Да, в MSSQL можно шифровать процедуры :)

Смеркалось... Второй из сотрудников нашего немногочисленного отдела случайно запустил эту процедуру в середине месяца. Бэкапов никто не делал...

Следующие пару дней прошли в консультациях на тему "как быть".
В базе была большая таблица, где были записаны все услуги всех абонентов с датами начала и конца биллинг периода.

Один из разработчиков биллинга предложил обнулить конец биллинг периода.
Вечером я сделал UPDATE tbl SET date_end = NULL и ушел домой. Бэкапов по-прежнему никто не делал...

Утром около кабинета стояла делегация почти из всех отделов. Практически с вилами.
Но я был готов, т.к. за несколько минут до этого мне позвонил начальник коммутатора и спросил, не знаю ли я что случилось.
В полночь на коммутатор свалилось 100500 тасков по отключению ВСЕХ абонентов.

Это был старый аналоговый оператор с такими огромными лопатами, а онлайн биллинг тогда был, кажется, только у МТС.
Онлайн - это когда тебя могут прервать в середине разговора, если кончились деньги.
Тут же пересчет балансов происходил в полночь и практически не было абонентов с предоплатой.
More from @nosingularity
  1. Sep 19, 2026fixupx.com/KaiLentit/status/2100629518784328013/video/1
  2. Sep 18, 2026fixupx.com/iam_zachi/status/2100679300756435135
  3. Aug 30, 2026photo post
  4. Aug 25, 2026fixupx.com/meganreyno/status/2091918430374957416
  5. Aug 3, 2026Вышла новость, что Andy Pavlo приняли на борт Clickhouse Inc. Энди довольно известная фигу…
  6. Jul 23, 2026fixupx.com/unclebobmartin/status/2080257779395154409
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →