?

Log in

No account? Create an account

Предыдущий | Следующий

"Бизнес по-русски. Разработчики обсуждают с заказчиком новую задачу. В ходе диалога выясняется, что за нее нужно доплатить. Заказчик звонит в отдел, которому нужна эта функция:
- Галя, нас тут разработчики в жопу посылают
- Куда?
- В жопу, Галя, в жопу.
"

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

Первая. Я разработчик.

Система вылизана от и до. На неё даже документация была в полном комплекте, что редкость.
Заказчик на просмотре морщит нос.
Я ничего не понимаю, потею и соображаю, что двух рубашек мне может и не хватить.
А тут посылают не в баню, но куда подальше, где помыться тяжело.
В конечном итоге заказчик рожает:
- Нам всё нравится, только есть два маленьких замечания. Во-первых, СУБД должна быть не MS SQL Serever, а Oracle. Во-вторых, приложение должно быть не на Java, а на .NET. Сколько времени вам нужно чтобы это исправить?

Он ужасно удивился, когда в качестве ответа на свой вопрос получил счет на 80% от суммы начального договора.

Вторая. Я заказчик.

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

Comments

( 42 комментария — Оставить комментарий )
a4inka
28 янв, 2019 15:44 (UTC)
Так ведь тянете одеяло каждый на себя.
ivalnick
28 янв, 2019 15:50 (UTC)
Диалектика, однако.
Как учили. :-)
akitos
28 янв, 2019 15:45 (UTC)
триггер это идеологически!!
ivalnick
28 янв, 2019 15:51 (UTC)
До некоторой степени - да. :-)
(без темы) - akitos - 28 янв, 2019 17:25 (UTC) - Развернуть
(без темы) - sergey_cheban - 28 янв, 2019 18:00 (UTC) - Развернуть
(без темы) - akitos - 28 янв, 2019 20:01 (UTC) - Развернуть
(без темы) - sergey_cheban - 28 янв, 2019 22:01 (UTC) - Развернуть
(без темы) - mindfactor - 29 янв, 2019 00:58 (UTC) - Развернуть
(без темы) - mindfactor - 29 янв, 2019 00:59 (UTC) - Развернуть
(без темы) - akitos - 29 янв, 2019 08:13 (UTC) - Развернуть
(без темы) - sergey_cheban - 29 янв, 2019 14:11 (UTC) - Развернуть
(без темы) - akitos - 29 янв, 2019 15:20 (UTC) - Развернуть
(без темы) - sergey_cheban - 29 янв, 2019 23:15 (UTC) - Развернуть
(без темы) - dmitrmax - 28 янв, 2019 17:15 (UTC) - Развернуть
chieftain_yu
28 янв, 2019 15:50 (UTC)

1) я б тоже удивился.
Спрашиваешь время - а вместо ответа деньги показывают.


-У вас йогурт свежий?
- Грушовый!

ivalnick
28 янв, 2019 15:53 (UTC)
А зачем мы тогда три месяца на согласование ТЗ потратили?
(без темы) - chieftain_yu - 28 янв, 2019 18:08 (UTC) - Развернуть
(без темы) - ivalnick - 29 янв, 2019 09:20 (UTC) - Развернуть
(без темы) - chieftain_yu - 29 янв, 2019 13:22 (UTC) - Развернуть
(без темы) - ivalnick - 29 янв, 2019 13:25 (UTC) - Развернуть
zurabob
28 янв, 2019 16:06 (UTC)
Я БД занимался очень давно, но позиция второго разработчика мне близка. Не раз нарушения нормализации потом аукивались больно. Сделать-то триггер недолго, только потом при изменении хотелок заказчика в процессе эксплуатации напороться на грабли можно.
А тут заказчик сам сделал - самому и расхлебывать потом. Идеальный вариант.
zigzagzug
28 янв, 2019 16:14 (UTC)

Лучше это решать через вьюшку, да. И скорость, и нормализация. А то понавесят черти триггеров ))

(без темы) - ivalnick - 29 янв, 2019 09:19 (UTC) - Развернуть
(без темы) - zigzagzug - 29 янв, 2019 10:00 (UTC) - Развернуть
(без темы) - ivalnick - 29 янв, 2019 13:02 (UTC) - Развернуть
(без темы) - zigzagzug - 29 янв, 2019 13:42 (UTC) - Развернуть
(без темы) - ivalnick - 29 янв, 2019 09:18 (UTC) - Развернуть
livejournal
28 янв, 2019 16:37 (UTC)
Здравствуйте! Ваша запись попала в топ-25 популярных записей LiveJournal северного региона. Подробнее о рейтинге читайте в Справке.
as_romanoff
28 янв, 2019 16:58 (UTC)
я разработчик ... а почему минус 20% а не плюс 20%?
тут вы явно не доработали!
гы.
ivalnick
29 янв, 2019 09:10 (UTC)
Постановка задачи выполнена хорошо, а в нашем случае она стоила именно 20%.
(без темы) - as_romanoff - 29 янв, 2019 09:24 (UTC) - Развернуть
(без темы) - ivalnick - 29 янв, 2019 13:03 (UTC) - Развернуть
(без темы) - as_romanoff - 29 янв, 2019 13:13 (UTC) - Развернуть
(без темы) - ivalnick - 29 янв, 2019 13:27 (UTC) - Развернуть
(без темы) - as_romanoff - 29 янв, 2019 14:00 (UTC) - Развернуть
(без темы) - ivalnick - 29 янв, 2019 14:01 (UTC) - Развернуть
(без темы) - as_romanoff - 29 янв, 2019 15:06 (UTC) - Развернуть
mindfactor
29 янв, 2019 00:56 (UTC)
>Попросил добавить туда третье поле: интервал между поступлением и исполнением запроса.
>Выслушал двухчасовую лекцию о нормализации баз данных.
>Потратил пять минут на добавление поля и создание триггера.

Но зачем ? Достаточно вьюху было сделать, где бы это вычислялось - И ВСЁ !
И там, где эта разница нужна - работать с вьюхой.

SQL-сервер умный, он при запросе вначале фильтрами WHERE обрежет всё ненужное, а только потом побежит считать разницу.
ivalnick
29 янв, 2019 09:17 (UTC)
Там серверу есть что делать.
Для выборки типа "а покажи мне наибольшие задержки за период с и по" вьюха будет создавать слишком большие нагрузки.
tsklab
29 янв, 2019 10:24 (UTC)
Последние вести с полей: MS SQL сервер позволяет делать вычисляемые столбцы как виртуальными, так физическими (PERSISTED). Индексы вычисляемых столбцов можно определить, если удовлетворяются дополнительные требования (можно найти в документации).
ivalnick
29 янв, 2019 10:29 (UTC)
Спасибо!

Буду расти над собой.
На момент событий я был уверен, что триггер - единственный возможный вариант.

В остальном, всё больше упирается в загрузку сервера.
( 42 комментария — Оставить комментарий )

Profile

Аватарка
ivalnick
ivalnick

Latest Month

Ноябрь 2019
Вс Пн Вт Ср Чт Пт Сб
     12
3456789
10111213141516
17181920212223
24252627282930

Метки

Разработано LiveJournal.com
Designed by Tiffany Chow