Показаны сообщения с ярлыком боль. Показать все сообщения
Показаны сообщения с ярлыком боль. Показать все сообщения

2014-12-13

Пол года с Groovy и Grails

Пол года уже как пишу на Groovy/Grails и пора бы уже сформулировать отношение к этим вещам в письменном виде. Сравнивать буду, естественно, с Python/Django. Совсем немного пощупал cherrypy/jinja когда готовил олимпиаду для студентов, но они не сильно отличаются.
TL;DR версия: groovy восхитителен, джависты, для мелких тасков крутейшая штука, берите и используйте, grails не нравится потому, что рвет связность кода, особенно заметно на больших масштабах и совершенно немодульный.

Дальше будет описание отдельных аспектов и иногда сравнение.

2014-09-28

Паспорталипсис

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

2014-07-07

Прохождение валютного контроля

Апофеозом банковского приключения стало прохождение валютного контроля, в сумме занявшее три недели. Уложился за несколько дней до дедлайна.

2014-07-06

Как я в банке счет открывал

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

Во сколько обойдется это удовольствие? 5к при открытии и в дальнейшем 2к в месяц, плюс разнообразые комиссии от 0.05% до 1%. Взвесив разные факторы я выбрал Альфа-Банк, дальше прямо там в офисе сидели с девочкой и крутили-вертели проценты, чтобы высчитать наиболее дешевое обслуживание, пока мне не надоело. Отобрал калькулятор и насчитал пакет Импортер, который обойдется примерно в 30к в первый год с учетом стоимости открытия. Я не занимаюсь импортом, наоборот, я занимают экспортом услуг и получаю ежемесячную зарплату, но, видимо, банку не интересны такие как я, поэтому в пакет входят странные вещи типа дополнительного валютного счет. Дальше началось веселье с документами.

2014-02-12

Прикладная топология в исходном коде

Не развидеть

Бывают такие вещи, которые, однажды увидев, начинаешь замечать абсолютно везде. Для меня недавно таким открытием были теги {@see} и {@link} в джавадоках. Я неистово стал превращать исходники в такую вики. Параллельно сделал другое открытие, код не изотропен, связность пространства нарушается: попав из точки А в точку Б, я не всегда могу вернуться назад с той же скоростью - приходится обходить иерархию или вспоминать назание класса (черт возьми, у меня в активной памяти буфер на 7 элементов, названия класса из него выталкивается, даже если я пререшел из него десять секунд назад), чтобы по Ctrl+N перейти на него. Тут не спасают даже линки в джавадоках. Дальше я собрал подборочку таких моментов с реальными примерами.

2014-02-09

Заставившие задуматься эпизоды из жизни эникейщика

В очередном капитанском посте у jdevelop увидел старую эпичную ссылку про инженерную археологию и реверс-инженеринг завода. Сразу вспомнилось несколько кулстори из жизни эникейщика, произошедших на заре карьеры: такие себе инсайты, заставившие крепко задуматься о происходящем и мысленно провести After Action Review.

2014-02-02

Про обыденность и хрупкость планов

В продолжение темы планирования. На этот раз про мелкие вещи, не требующие работ по организиции. Я заметил два исхода.

Первый - обыденно, мимоходом. Я решил поехать домой, в день отъезда дойду до вокзала, возьму билет, плацкарт или купе, пофиг. Приду домой, кину в средний рюкзак две смены футболок, трусов и носков. Вечером на такси доеду. Никаких напрягов. Если случится форс-мажор, в худшем случае поеду на два дня позже. Или, например, праздничное мероприятие, вся подготовка к которому состоит из одного пункта: погладить рубашку, если важное мероприятие, или достать чистую футболку в остальных случаях. Очень много такого, на что я не трачу время, хотя, люди вокруг меня воспринимают это как что-то важное и достойное серьезной подготовки. Есть цель, куча альтернатив, конкретный путь сильно второстепенен, если вообще важен - можно совершенно не греть этим голову.


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

Я уже говорил тебе, что такое безумие? Каждый хренов раз. Раз за разом одно и то же. Как же перевести действие второго рода в первый. Альтернативных вариантов тут явно недостаточно - все не предусмотришь. Может быть попробовать дзен? - проникнув через дела, жу ши в великую пустоту.

2014-01-24

Про планирование и самоорганизацию

Недавно я столкнулся с реальным миром простых людей, которые не планируют мероприятия. Вернее не шарят важную информацию о процессе. Когда: да не беспокойся ты, все будет круто, а потом, внезапно, выясняется что мест нет потому что никто никому ничего не говорил. Пришлось форкнуться и за день организовать паралленльную движуху. Скайп (обсудить) и гуглодок (вики для вынесения ключевой информации) - два мегакрутых инструмента для самоорганизации.

2014-01-05

Пенсионный облом иностранцев

Техническим поражением закончилась моя борьба с пенсионным фондом. А все дело в том, что у иностранец с видом на жительство. И хотя работаю уже несколько лет и даже письма счастья раньше получал с какими-то копейками.

Пришел сначала в МДМ. Спрашиваю: у вас пенсионный фонд есть? Девочка хлопала ресницами, долго звонила по телефону менеджерам и выдала: у нас фонда нет, изкините.

Затем пошел менять карточку ВТБ24, заодно думаю дай спрошу. Все отлично, приносите страховое свидетельство. Приношу уже под вечер, девочка начинает оформлять. Вбивает номер ВНЖ - нет говорит, такого гражданина. Тупо ради прикола даю загранник - та же фигня. Убегает, прибегает, пробует, опять убегает. И так по кругу в течении 40 минут. Потом выдает - никак не получится. Я уже злой, говорю ведите меня к старшему. Приводит. Мужик аваще адекватный - сразу видно почему начальник. 1 минута на выслушать суто проблемы, берет телефон. Говорит: завтра, как Москва проснется, спрошу у них и перезвоню. На следующий день перезванивает и говорит: программа умеет только граждан, никак это изменить не получится, сожалею, но пенсию перевести в наш банк не получится.

Ладно, иду на сайт пенсионного фонда. Описываю проблему, мол что за херня, почему отказывают. Ответ прошу направить по email. Приходит спустя несколько недель электронный ответ. Многостраничный вордовский док с выдержками из закона. Суть в одном предложении: Отказ в переводе средств пенсионных накоплений из ПФР в НПФ по причине «Иностранный гражданин» в законодательстве отсутствует. Ок, пересылаю ответ тому начальнику из ВТБ24 на email с визитки в вопросом, какого собственно хрена. Так он ничего и не ответил.

Ладно, нашу зарплату переводят в Сбербанк. Получил карточку, думаю дай спрошу у них, чтоб два раза не ходить. Та же история, начинает забивать номер ВНЖ. Говорит, номер ваш не бьется. И показывает монитор, вот смотрите, я вас не обманываю. Ну пора уже на работу ехать, я ей ну ладно.

Хотел еще прийти перед новым годом в филиал ПФРФ, чтобы спросить что за дела, но свалил домой. По-любому всем банкам поставили одну и ту же программу из пенсионного фонда, написанную рукожопым студентом на каком-нибудь FoxPro. И он тупо забил/не знал/забыл перегрузить номера ВНЖ, или написал неправильный запрос к базе людей. Потому как менты успешно меня пробивали, зачекав за переход в неположенном месте. Если сяду на трактор, обязательно заберу накопления.

2013-12-11

Нанотехнологии на страже сна

Умное пробуждение

Jawbone UP

Поздняя ночь, читаю я значит Голодного и тут мне попадается пост про то, какое ему офигенное устройство подарили. Тут я понимаю, что мне вставать через несколько часов и весь день ходить как зомби. Заказать его можно только с амазона, а с ним у меня давняя нелюбовь - но тут они, внезапно, согласились заслать девайс в Россию.

Про Ubuntu и клиническую смерь панголина

Про убунту

Убунта (хотя, пожалуй, это свойственно почти всем дистрибутивам) похожа на лоскутное одеяло, состоит из кучи софта, разрабатываемого разными людьми. Стандарты? ЛолШТО? Есть, конечно, FHS, но всем плевать. Без интернетов под рукой восстановить систему после нетривиального падения не реально. Куча файлов со своим уникальным именованием, куча ключиков и параметров.

Самый эпичный момент был при обновлении до 12.04: из-за проблем с оборудованием, Космонавты выпилили режим гибернации из-за проблем с некоторыми версиями материнок. Включается он эпичнейше: не переключателем (как сделали бы разумные люди), не раскомментированием строк в каком-нибудь конфиге (как сделали бы разумные, но ленивые люди), а воссозданием конфига. Когда я это прочитал, единственная мысль была: НО? КАК? БЛЯДЬ? Я должен был бы его воспроизвести без интернета???

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

2013-11-30

Что общего у шансона и олимпийской эстафеты

Ехал я как-то в междугороднем автобусе, ехать было 4 часа. Так неудачно совпало, что ехать мне пришлось с простыми и чоткими парнями. И все бы ничего, но они решили послушать музончик-шансончик. Опять же, пофиг, у всех вкусы разные, но они решили его послушать на хрипяще-пердящем динамике на батарейках, очень громко, так чтобы весь автобус насладился вечными хитами. Обычно я в наушниках и мне пофиг, но тут это было особенно громко. На первое предложение сделать тише они согласились, но потом уснули и сделали максимально громко, чтобы даже во сне не расставаться с любимыми исполнителями, наверное им снились вышки, запретка, осень и воля. Рядом оказался еще один любитель послушать музыку в наушниках и мы таки смогли убедить простых парней вырубить музон.

- Ну а чо йоба, я хочу музыку слушать
- А я мы не хотим, нам не нравится твоя музыка
- У нас свободная страна, че хочу то и делаю
- Вот одень наушники и слушай

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


Возвращаясь к сабжу, казалось бы, что общего? А общего то, что the right to swing my fist ends where the other man's nose begins.

P.S. сюда же: такое событие можно и потерпеть чуток, терпи пожалуйста, но не вынуждай терпеть тех, кто не хочет. Даже если их меньшинство, не говоря уж про случай большинства.


2013-10-17

IntelliJ IDEA on Ubuntu productivity guide

IDEA from JetBrains is the first choice tool for me since our team migrated to it year and a half ago and there no way back to Eclipse or NetBeans. Everyting is perfect except one flow which turns into major for experienced user: shortcuts tailored for Windows developers and on Ubuntu it turns into hell: lock screens, tty changes, crazy window movement, e.c. for almost all shortcuts. There many keymaps available in IDEA (gnome, kde), but not for Unity. The last drop was master-class from one of developer. So I decided to retrofit Ubuntu: single IDE experience for me more important then single OS experience (especially concider usage of multiple different OSes).

Following recommendations are for Ubuntu 12.04 LTS. Shortcuts and tools may change. I will update this post whenever I configure new shortcut.

CCSM

Fist of all you should install compizconfig-settings-manager, most of customizations could be done in this tool. Launch ccsm.

Find Unity menu turn Hide launcher - autohide (mouse experience), then disable Key to execute command (alt + f2) and Key to show HUD (alt) - both annoying.

Next open Grid menu and disable both Put left and Put right it will free (control+win+arrow) which we will remap later.

At General options disable Toggle window shaded (frees settings shortcut).

At Move window menu disable Initiate window move (alt+f7 or find usages).

Open Desktop wall and remap next bindings: Move within wall from control+alt+arrow to contol+super+arrow, Move with window within wall from control+alt+shift+arrow to control+shift+super+arrow. It will free source code and tab navigation.

Keyboard layout

Locate keyboard layout in system preferences. Find Miscellaneous compatibility and turn on Special keys handled in server. It will turn off virtual terminal change with control+alt+f*, you can remap it in. Frees ctrl+alt+f12.

Keyboard

In system preferences open keyboard (why we need two different dialogs). At Launchers bind launch terminal to alt+f2. At System tab bind Lock screen to super+L (oh, you can finally autoformat code now).

Terminal

Open terminal (alt+f2 now), open Keyboard shortcuts in Edit menu and turn off Enable the menu access key and Enable the menu shortcut key (no more mess with base midnight commander shortcuts). At Profile preferences turn on Unlimited scrolling.

To be continued

Any more ideas?





2013-10-09

Безысходность черного ящика

Давно уже ничего не писал, зато, наконец, собрался с силами и заслал пачку пуллреквестов, которые не давли мне покоя последние пол года. Как заапрувят - расскажу подробнее.

Виды систем

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

2013-09-12

Костыли, протухший код, трагедия общин и устаревшие технологии

"там есть довольно элегантный костыль,
я бы сказал, трость"

Поток созания

Костылинг

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

2013-07-12

Барыжим на Avito

Чтобы продать что-то ненужное
Сначала нужно купить что-то ненужное

После того как два моих друга начали успешно вести купи-продай на сабже, я подумал: хватит терпеть дома весь этот хлам, который работает, но жалко выбросить. Нашел 4 вещи, которые можно толкнуть: 3G Huawei 1550 (который я проапгрейдил) и CDMA EVDO (кому этот стандарт сейчас нужен), аккумы от раций (почему-то подумал, что в комплекте нет) и ноутбучный жесткий диск. Прошло 4 дня и тут мне пришла смс с вопросом о модеме. Оно работает, подумал я.

Целый день переписывались, чел выяснял всякие подробности. Особо его интересовал вопрос разлочки. До первой прошивки, я точно помню что проверял и модем был разлочен. Симка от мегафона подходила. Я решил таки вставить и убедиться, чтобы не было неожиданностей. Видимо оно залочилось, когда я обновлялся. Когда я вставил симку от мегафона, он предложил ввести мне код. Всего 10 попыток. Тут я резко начал искать калькулятор кодов, нашел и со второй попытки снял разлочку.

2013-06-12

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

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

Про коммуникабельность

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

Про решение проблем

До сих пор считаю, что абсолютно любую проблему можно решить. Рассказ про 7 перпендикулярных линий у меня вызывает яростное отторжение. Есть способы. Нерешаемых проблем нет. Начиная, с проактивности из 7 навыков, и кончая тяжелой артиллерией - картами реальности из Целей и Критической цепи. Инструменты на любой вкус. Всё решаемо. Если есть воля, мотивация, эмоциональная энергия - куча слов - всё возможно.

Но однажды возникает проблема. Я вижу, что она решаема, даже вижу как - совсем не проблема, ерунда. Но воли сделать даже минимальное усилие нет. Есть понимание, что было затрачено достаточно усилий, время вспомнить про феномен Базермана и сказать стоп. Спросить себя "а не херню ли я делаю", или сказать: "делай как считаешь нужным, но без меня", или уйти, просто в другую комнату или совсем - варианты по обстоятельствам.

Странные вещи

Иногда люди делают странные вещи. Попытка доказать бредовость затеи, аппеляция к физическим законам, математике, здравому смыслу натыкается на яростный отпор "всё разговор окончен...". Если это меня никак не касается, то в этот момент разговор же и заканчивается. Но иногда требуют от меня делать странные вещи. В этот момент встает дилемма: продолжать делать по своему, провоцируя конфликт, или делать бредовую вещь, с ясным осознанием того, что делаешь бред. Диалог крайне затруднителен. И, обычно, после нескольких итераций заканчивается: пофиг, мне это не трудно. Но иногда люди делают опасные вещи. Если они опасные для себя, то мне в общем-то поровну: взрослые люди должны сами за себя отвечать. Гораздо хуже, когда своей глупостью, они начинают представлять опасность для окружающих. Здесь уже приходится быть начеку, чтобы вовремя вмешаться.

P.S.

Кстати, возвращаясь к тому Петрову из 7 линий, быть может ему уже всё равно?

2013-06-09

Bleeding Edge

Очень интересное ощущение - оказаться на переднем краю (во временных масштабах Java) развития какой-то технологии (JavaFX) после работы со стабильной, читай мертвой (Swing). Стабильный API, JavaDoc, книги, стопицот ответов на StackOverflow в конце концов. Для любой проблемы известно не одно решение, боле того "после двух релизов баг становится фичей", а следовательно ждать исправления нет смысла. Первое что замечаешь - нет JavaDoc, в том, что есть - нет примеров. Второе - есть баги. Тысячи их, а багтрекер почему-то не просто доступен только после регистрации, более того, он закрыт для индексации. Когда делал что-то на Swing у меня ни разу не было желания засабмитить багрепорт, сейчас - постоянно. Третье - всё самое вкусное и желанное будет в версии next. Восьмерка выйдет весной следующего года, если опять не отложат.

Инкапсуляция говнокода

When a small hack could solve all my problems
Рано или поздно все сталкиваются с нерешаемой красивыми путями проблемой, а чем активнее развитие технологии, тем чаще это случается. У всех, правда, разный порог нерешаемости. Приняв неизбежность, пишем свою обёртку, если код написан с принципом Open-Closed в голове, то перегружаем пару методов, если нет - то копируем всё. После чего исправляем ту самую проблему, пишем обоснование и ссылку на багрепорт. Когда-нибудь это можно будет удалить.

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

2013-04-29

Как я футболку печатал

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

Скептичный Ленин
Прихожу я значит в полиграфическую контору. Выбираю нанесение и отдаю картинку. Оказалось, что просто прозрачной картинки недостаточно, нужно было превратить в вектор. Ну и 400 рублей за обтравку: я ей фигасе, там ровная граница - контур обведется в одно нажатие. Девочка попробовала, герб обтравился, а голова - нет. Мне уже было пофиг - сошлись на пол цены.

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

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

В общем, на футболке Ленин получился не таким скептичным, как на исходнике. Но я удовлетворен. По приезду надо будет нафигачить футболок с Кошем. Благо макетов они выложили уйму.

2013-04-24

Бизнес-логика в базе


Типичный опердень
Выборка 41.5%
Фильтрация 5.8%
Обработка 13.4%
Аналитика 17.7%
Пост-обработка 21.6%
Комментарии 0%

Или почему это зло

Если бизнес-логика в базе

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

Второе - возможность легко и непринужденно использовать результат такого запроса в качестве источника данных.

Если бизнес-логика в приложении

Нет размазывание бизнес-логики между приложением, и базой. Что же такого на стороне приложения?
1. Не нужно вырезать и вставлять куски кода, чтобы их прогнать в изолированном окружении
2. Легкая отладка - можно остановиться в любом месте обрабоки и посмотреть на данные
3. Версионирование - кто вообще версионирует код, в базе?
4. Легковесность базы - нет логики, достаточно простого SQL, нет требований к базе, можно на коленке разворачивать схему любой версии на любой пользовательской машине. Когда база всего-лишь тупое хранилище данных, нам для работы достаточно командной строки, в идеале поля для выполнения кода с подсветкой синтаксиса. Сам билд становится переносимым, позволяя развернуть рабочее приложение на чистой машине.
5. Декларативный подход против императивно-функционального - СУБД сама выбирает оптимальный порадок выборки данных, зато во втором варианте процесс обработки можно "читать"
6. Комментарии - их нет. Ноль целых ноль десятых процента. Какой смысл их писать, если один кусочек логики размазывается по всему запросу? В случае пошаговой обработки можно пояснять что мы делаем на каждом этапе и почему.
7. Пошаговость процесса и функциональный стиль написания - позволяет писать тесты. Тестирование кода, работающего с базой - это уже джедайские практики. Я ни разу не видел тестов внутри базы, покрывающих пакеты, хотя инструменты имеются.
8. Возможность написать высокоуровневый DSL, который будет адаптирован к бизнес-домену, что позволит транслировать код в SQL с жутким мультипликатором. На эту тему у ребе metaclass можно прочитать много интересного.

Минусы хранения логики в приложении

1. ORM, которые строят сложные и, порой, неоптимальные запросы. А еще, многие из них не умею работать с курсорами, что усложнает написание кода в функциональном стиле с минимумом побочных эффектов. Претензий много.
2. Резко вырастает объем данных, которые нужно загрузить для выборки, одна из причин, по которой аппликейшен сервер держат поближе к базе данных (в сравнении с расстоянием до клиента).

Итог

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

P.S. Пояснения к легенде

Выборка - это Select и Join,
Фильтрация - Where и Having,
Обработка - различные функции, рассчеты, кейсы,
Аналитика - агрегатные и аналитические функции,
Пост-обработка - захардкоженные константы, сортировка и группировка.