Концепцию mvc (model-view-controller) сформулировали больше 40 лет назад в застенках xerox для языка smalltalk.
18 лет назад свет увидел шаблонизатор smarty для языка php. Одно упоминание этого названия повышало стрит кридабилити (конференций тогда не было) до недостижимых высот.
Опыт предыдущих поколений говорит: отделяй мух от котлет, Карл!
Пример. Все мы используем docker. А знаете, что можно управлять им из javanoscript?
Вот, взгляните: https://github.com/AgustinCB/docker-api
Из python: https://github.com/docker/docker-py
Из go: https://github.com/docker/go-docker
И при этом никто не пишет docker-compose на js, все пишут на yaml.
Мы научились делать html-шаблоны и отделили от них css. Локализация - это отдельные конфиги, а не куча if’ов в коде. Docker-compose это yaml. Json-schema это json :)
Это разные языки и форматы, но мы как-то с этим справились.
И только смешивание описания структуры базы данных с кодом до сих пор не считается позорным.
¯\_(ツ)_/¯
18 лет назад свет увидел шаблонизатор smarty для языка php. Одно упоминание этого названия повышало стрит кридабилити (конференций тогда не было) до недостижимых высот.
Опыт предыдущих поколений говорит: отделяй мух от котлет, Карл!
Пример. Все мы используем docker. А знаете, что можно управлять им из javanoscript?
Вот, взгляните: https://github.com/AgustinCB/docker-api
Из python: https://github.com/docker/docker-py
Из go: https://github.com/docker/go-docker
И при этом никто не пишет docker-compose на js, все пишут на yaml.
Мы научились делать html-шаблоны и отделили от них css. Локализация - это отдельные конфиги, а не куча if’ов в коде. Docker-compose это yaml. Json-schema это json :)
Это разные языки и форматы, но мы как-то с этим справились.
И только смешивание описания структуры базы данных с кодом до сих пор не считается позорным.
¯\_(ツ)_/¯
GitHub
GitHub - AgustinCB/docker-api at morioh.com
Docker Remote API driver for node.js. It uses the same modem than dockerode, but the interface is promisified and with a fancier syntax. - GitHub - AgustinCB/docker-api at morioh.com
Для пользователей твиттера, порекомендую пару аккаунтов.
https://twitter.com/M0rtyMerr
it-степдап, фронтенд, rx
https://twitter.com/_bravit
Тролль 80 lvl, булит фронтов, преподаватель haskell
https://twitter.com/M0rtyMerr
it-степдап, фронтенд, rx
https://twitter.com/_bravit
Тролль 80 lvl, булит фронтов, преподаватель haskell
Несколько подборок потери полимеров из-за багов.
Есть шансы, что трезвым после прочтения жить уже не получится…
1 штука: https://zen.yandex.ru/media/code/oshibka-v-kode-privela-k-nevernym-rezultatam-v-kuche-issledovanii-5da6bcc4e4fff000af4c21aa
4 штуки: http://www.syssoft.ru/portal/novosti/bag-na-milliard-skolko-na-samom-dele-stoyat-oshibki-v-programmnom-obespechenii/
8 штук: http://smartnews.ru/articles/10950.html
50 штук: https://dou.ua/lenta/columns/dangerous-mistakes-in-prorgamming/
Есть шансы, что трезвым после прочтения жить уже не получится…
1 штука: https://zen.yandex.ru/media/code/oshibka-v-kode-privela-k-nevernym-rezultatam-v-kuche-issledovanii-5da6bcc4e4fff000af4c21aa
4 штуки: http://www.syssoft.ru/portal/novosti/bag-na-milliard-skolko-na-samom-dele-stoyat-oshibki-v-programmnom-obespechenii/
8 штук: http://smartnews.ru/articles/10950.html
50 штук: https://dou.ua/lenta/columns/dangerous-mistakes-in-prorgamming/
Одна компания с веселым названием «злые марсиане» и не менее веселым логотипом ведет свой канал в телеграмме.
Вот он: @evilmartians
Каждый второй пост там - как они прикрутили к ruby graphql.
Да, они пишут на ruby. В 2020. И, видимо, там есть большие проблемы с graphql :)
Но я не об этом. Последний их пост о том, как они мужественно в обход ActiveRecord (это класс из ORM Ruby On Rails, из-за которой когда-то в 2004 этот язык и приобрел хоть какой-то смысл) добавляют в базу триггеры для инкремента счетчиков в отдельной таблице postgresql при каждом INSERT/UPDATE вместо того, чтоб считать (внимание!) эти суммы в ElasticSearch.
После того, как ко мне вернулся дар речи, единственное, что я смог произнести: «Как тебе такое, Илон Маск»
Прочувствовать можно по ссылке:
https://evilmartians.com/chronicles/pulling-the-trigger-how-to-update-counter-caches-in-you-rails-app-without-active-record-callbacks
(судя по всему, раньше они это делали через колбеки в приложении :) )
Тут прекрасно все:
- и синтаксис ActiveRecord для создания таблиц
- и то как эти таблицы заполняются: User.insert_all(10_000.times.map { { created_at: Time.now, updated_at: Time.now } })
- и запуск EXPLAIN из кода
- и, конечно, царь горы - триггер. На каждый insert и update делается upsert в сводную таблицу на основании выборки count и sum. Upsert в postgres делается на синтаксисе on conflict update, и так себе работает при параллельных запусках (расскажу об этом при случае). Чтобы победить race condition, мужественные марсиане решают провернуть уличную магию с рекомендательными блокировками (не делайте так никогда, во имя святого Стоунбрейкера).
С триггерами в рельсах, кстати, какие-то проблемы и предлагается использовать специальный форк отдельного пакета (!!!) для триггеров от автора статьи.
And one more thing...
Эти ребята приложили руку к @rocketbank.
Похоже, тинькофф что-то знал, когда буллил ракетчиков :)))
PS: На одной из конференций встретил двух знакомых, пишущих на ruby. Они, еле находя время на вздох, хором ржали над людьми, пишущими на серверном js...
Вот он: @evilmartians
Каждый второй пост там - как они прикрутили к ruby graphql.
Да, они пишут на ruby. В 2020. И, видимо, там есть большие проблемы с graphql :)
Но я не об этом. Последний их пост о том, как они мужественно в обход ActiveRecord (это класс из ORM Ruby On Rails, из-за которой когда-то в 2004 этот язык и приобрел хоть какой-то смысл) добавляют в базу триггеры для инкремента счетчиков в отдельной таблице postgresql при каждом INSERT/UPDATE вместо того, чтоб считать (внимание!) эти суммы в ElasticSearch.
После того, как ко мне вернулся дар речи, единственное, что я смог произнести: «Как тебе такое, Илон Маск»
Прочувствовать можно по ссылке:
https://evilmartians.com/chronicles/pulling-the-trigger-how-to-update-counter-caches-in-you-rails-app-without-active-record-callbacks
(судя по всему, раньше они это делали через колбеки в приложении :) )
Тут прекрасно все:
- и синтаксис ActiveRecord для создания таблиц
- и то как эти таблицы заполняются: User.insert_all(10_000.times.map { { created_at: Time.now, updated_at: Time.now } })
- и запуск EXPLAIN из кода
- и, конечно, царь горы - триггер. На каждый insert и update делается upsert в сводную таблицу на основании выборки count и sum. Upsert в postgres делается на синтаксисе on conflict update, и так себе работает при параллельных запусках (расскажу об этом при случае). Чтобы победить race condition, мужественные марсиане решают провернуть уличную магию с рекомендательными блокировками (не делайте так никогда, во имя святого Стоунбрейкера).
С триггерами в рельсах, кстати, какие-то проблемы и предлагается использовать специальный форк отдельного пакета (!!!) для триггеров от автора статьи.
And one more thing...
Эти ребята приложили руку к @rocketbank.
Похоже, тинькофф что-то знал, когда буллил ракетчиков :)))
PS: На одной из конференций встретил двух знакомых, пишущих на ruby. Они, еле находя время на вздох, хором ржали над людьми, пишущими на серверном js...
evilmartians.com
Pulling the trigger: How to update counter caches in your Rails app without Active Record callbacks—Martian Chronicles, Evil Martians’…
Keeping your counter caches in sync using nothing but database triggers
Раз уж сингулярности не будет и мы все умрем, вот мануал как автоматически освободить после себя место на гугловских серверах
https://news.1rj.ru/str/thecodemedia/834
https://news.1rj.ru/str/thecodemedia/834
Telegram
Журнал «Код»
Не самая приятная тема, ну, а что поделать. Google знает о нас слишком много: платёжная история, важные документы, воспоминания в виде фото. Но к счастью, над всем этим у нас есть контроль.
1. Заходите на https://myaccount.google.com/.
2. В поиске вбейте…
1. Заходите на https://myaccount.google.com/.
2. В поиске вбейте…
Forwarded from UX Live 🔥
This media is not supported in your browser
VIEW IN TELEGRAM
Ну все, приехали. Вышла соцсеть для сканирования реальности https://display.land/
Раньше такие сканеры только платные были, а сейчас люди сами начнут мир вокруг начнут переводить в 3д.
Скачивать не рекомендую, только если вы совсем пытливый и вам интересно, так как при регистрации просит и телефон, и гео, и доступ к фото и аву и всё. Плюс очень всратый ублюдочный ux сделанный рукожопым имбецилом. Но апп ещё не в релизе даже.
Раньше такие сканеры только платные были, а сейчас люди сами начнут мир вокруг начнут переводить в 3д.
Скачивать не рекомендую, только если вы совсем пытливый и вам интересно, так как при регистрации просит и телефон, и гео, и доступ к фото и аву и всё. Плюс очень всратый ублюдочный ux сделанный рукожопым имбецилом. Но апп ещё не в релизе даже.
Forwarded from Два огнеметчика и собака
Есть одна байка, которую я часто травлю IRL, а сюда, кажется, еще не запостил.
Вот вы замечали, что программисты 30+ часто тяготеют к какому-то рукоделию? Ну не все, конечно, но дофига - плотничают, варят, корчуют машины, строят дачки - список длинный.
Так вот, думаю, что знаю, почему.
Однажды, за несколько лет до "эры смартфонов", писали мы знатный продукт - фреймворк, позволяющий писать кучу разных виджетов и размещающий их на декстопе. Эка невидаль в наше время, но учтите, что это было на кнопочных телефонах (razr v3, например, был у нас в линейке). Погода, биржа, спорт - все, как и сейчас. Полупрозрачные плашки, градиентные фоны.
Один из дизайнеров с американской стороны перемахнул после этого проекта в эппл, и поучаствовал в дизайне UI первого айфона - было интересно наблюдать хорошо знакомый стиль.
Конечным заказчиком этого безумия был крупный амеровский сотовый оператор, система прошивалась на телефоны с завода, юзеров были миллионы.
Было, короче, чем гордиться. Оператор потом сделал у себя на сайте флешовую демку, которая показывала, как у них все круто, и еще лет 5 после окончания проекта я захаживал туда, поглядеть, какую штуку мы забомбили. Потом сайт убрали.
Когда я решил погуглить этот проект, в надежде найти его в категории "наше славное прошлое", я по первой ссылке с гугла попал на форум, на котором разъяренный владелец свежекупленного телефона, исходя на пену, пытался добиться от общественности, цитирую: "как снести это говно с моего телефона!". Хер ему, конечно, но все же. Остальные ссылки были похожи по сути.
Ссука, мы с командой потратили на этот проект почти год жизни: овертаймили, гоняли в командировки и вообще напрягались - и через сраные 5 лет он уже никому не нужен.
А вот с года два назад я запилил вешалочку в прихожую - сваренную из 4мм стальных уголков, заполненных цельной доской, и с 1т грузовыми чугунными крюками в качестве крючочков для курточек. 30 кг весит.
И когда через 300 лет команда археологов будет раскапывать наш осевший сам в себя дом, они еще поебутся ее от стены отрывать.
Вот вы замечали, что программисты 30+ часто тяготеют к какому-то рукоделию? Ну не все, конечно, но дофига - плотничают, варят, корчуют машины, строят дачки - список длинный.
Так вот, думаю, что знаю, почему.
Однажды, за несколько лет до "эры смартфонов", писали мы знатный продукт - фреймворк, позволяющий писать кучу разных виджетов и размещающий их на декстопе. Эка невидаль в наше время, но учтите, что это было на кнопочных телефонах (razr v3, например, был у нас в линейке). Погода, биржа, спорт - все, как и сейчас. Полупрозрачные плашки, градиентные фоны.
Один из дизайнеров с американской стороны перемахнул после этого проекта в эппл, и поучаствовал в дизайне UI первого айфона - было интересно наблюдать хорошо знакомый стиль.
Конечным заказчиком этого безумия был крупный амеровский сотовый оператор, система прошивалась на телефоны с завода, юзеров были миллионы.
Было, короче, чем гордиться. Оператор потом сделал у себя на сайте флешовую демку, которая показывала, как у них все круто, и еще лет 5 после окончания проекта я захаживал туда, поглядеть, какую штуку мы забомбили. Потом сайт убрали.
Когда я решил погуглить этот проект, в надежде найти его в категории "наше славное прошлое", я по первой ссылке с гугла попал на форум, на котором разъяренный владелец свежекупленного телефона, исходя на пену, пытался добиться от общественности, цитирую: "как снести это говно с моего телефона!". Хер ему, конечно, но все же. Остальные ссылки были похожи по сути.
Ссука, мы с командой потратили на этот проект почти год жизни: овертаймили, гоняли в командировки и вообще напрягались - и через сраные 5 лет он уже никому не нужен.
А вот с года два назад я запилил вешалочку в прихожую - сваренную из 4мм стальных уголков, заполненных цельной доской, и с 1т грузовыми чугунными крюками в качестве крючочков для курточек. 30 кг весит.
И когда через 300 лет команда археологов будет раскапывать наш осевший сам в себя дом, они еще поебутся ее от стены отрывать.
There will be no singularity pinned «Где-то в 2010 году меня спросили: знаю ли я кого-то, кто разрабатывает на FoxPro, а то "Все резюме на hh каких-то дедов, 55+ лет". До этого FoxPro в последний раз я видел еще за 8 лет до этого, в одном маленьком региональном сотовом операторе. Там на нем…»
Тут выяснили, что Рик использует Debian на компе с 128-битный квантовым процессором AMD QX3700+ (на частоте 7.99hz) и SSDху на 393,912.1 GB NVME M.2 (это 400Tb), память на 3,584,825,480 GB (3584 петабайта).
А ядро линукса у него 3.2.0 из 2012 года.
https://twitter.com/zavtracast/status/1197114816747524101
А ядро линукса у него 3.2.0 из 2012 года.
https://twitter.com/zavtracast/status/1197114816747524101
Twitter
Завтракаст
Тут выяснили, что Рик использует Debian на компе с 128-битный квантовым процессором AMD QX3700+ (на частоте 7.99hz) и SSDху на 393,912.1 GB NVME M.2 (это 400Tb), память на 3,584,825,480 GB (3584 петабайта). А ядро линукса у него 3.2.0 из 2012 года. https…
Зачем мне нужно было заводить канал в телеге?
- рефлексия. Это законный метод остановиться и осознанно сформулировать мысль.
- дисциплина. Постить регулярно - это работа. Я не знаю чем заняты люди с несколькими десятками тысяч постов в твитере, а главное - почему их кто-то читает, но на данный момент подготовить контент на один пост у меня занимает не меньше часа. Даже вот этот.
- тренировка по донесению своих мыслей до широкого круга людей. Полезно в качестве подготовки перед конференциями.
- контента генерируется так много, что я не успеваю ни то что его весь посмотреть, я не успеваю рассортировать ссылки, чтобы их посмотреть позже. И если кто-то за меня уже все выяснил и сделал краткое содержание, этот кто-то молодец. Я хочу быть молодцом :)
а так же:
- это дешевый метод быстро сосчитать количество людей, у которых ты имеешь кредит доверия :)
- можно делиться мемасиками путем репоста, а не рассылки :)
- “дорогой дневник…“, со временем с пруфами можно будет посмотреть какой же балбес я был :)
Про что я буду дут писать?
Думаю, что все присутствующие знают, что я перестал работать в компании, где проработал много лет и теперь пилю свой стартап. Этот мир приносит много открытий, большая часть которых приводит к выводу, вынесенному в название канала. С некоторыми из этих открытий я буду делиться с вами всеми сразу, вместо того, чтоб отлавливать вас по одному :) А так же прочие новости, подходящие под настроение :)
- рефлексия. Это законный метод остановиться и осознанно сформулировать мысль.
- дисциплина. Постить регулярно - это работа. Я не знаю чем заняты люди с несколькими десятками тысяч постов в твитере, а главное - почему их кто-то читает, но на данный момент подготовить контент на один пост у меня занимает не меньше часа. Даже вот этот.
- тренировка по донесению своих мыслей до широкого круга людей. Полезно в качестве подготовки перед конференциями.
- контента генерируется так много, что я не успеваю ни то что его весь посмотреть, я не успеваю рассортировать ссылки, чтобы их посмотреть позже. И если кто-то за меня уже все выяснил и сделал краткое содержание, этот кто-то молодец. Я хочу быть молодцом :)
а так же:
- это дешевый метод быстро сосчитать количество людей, у которых ты имеешь кредит доверия :)
- можно делиться мемасиками путем репоста, а не рассылки :)
- “дорогой дневник…“, со временем с пруфами можно будет посмотреть какой же балбес я был :)
Про что я буду дут писать?
Думаю, что все присутствующие знают, что я перестал работать в компании, где проработал много лет и теперь пилю свой стартап. Этот мир приносит много открытий, большая часть которых приводит к выводу, вынесенному в название канала. С некоторыми из этих открытий я буду делиться с вами всеми сразу, вместо того, чтоб отлавливать вас по одному :) А так же прочие новости, подходящие под настроение :)
Многие слышали сегодняшнюю новость о том, что сбербанк прислал клиенту призыв расправляться с евреями.
Кто не знает что случилось, расскажу: сбер присылает буквенный код латиницей, который надо назвать при подаче заявки на кредит. И вот в этом буквенном коде случился рандом, который выглядит как призыв убивать (на английском).
Понятно, что при объемах сбера в этих кодах, наверное, уже есть целиком вся запрещенная литература, если присмотреться. Только все эти смс приходят людям, которые не знают английского.
Не знаю как вы, а я давно убедился, что если skynet будет, то сбер - это его mvp.
Была у меня такая история.
Нужно было расплатиться в кассе одного медицинского учреждения. Терминал не шел на сотрудничество и мне порекомендовали прогуляться до сбера и обкешиться. Т.к. карты сбера у меня нет, я решил снять денег с карты @rocketbank. Нужно мне было всего 3000 рублей.
Засовываю я карту в банкомат, ввожу пин и… сразу получаю деньги и карту обратно. денег ровно 3000 рублей.
Удивлен я был как герой того анекдота про термос.
Стало понятно что сингулярность подкралась откуда не ждали и у нее зеленоватый оттенок лица.
Пару дней я подумывал какие консервы лучше покупать, чтоб забить ими погреб на даче, но потом случилась еще одна история.
Понадобилось мне снова посетить этот санаторий сотоны с зеленым логотипом, только пообщаться не с бездушной машиной, а с сотрудником. Для этого надо было взять талончик в автомате электронной очереди. Но в автомат электронной очереди была очередь.
Почему? Потому что в автомате закончилась бумага.
Тут меня отпустило, т.к. стало понятно, что skynet, похоже, откладывается до момента, пока не будет налажена бесперебойная поставка бумаги.
Кто не знает что случилось, расскажу: сбер присылает буквенный код латиницей, который надо назвать при подаче заявки на кредит. И вот в этом буквенном коде случился рандом, который выглядит как призыв убивать (на английском).
Понятно, что при объемах сбера в этих кодах, наверное, уже есть целиком вся запрещенная литература, если присмотреться. Только все эти смс приходят людям, которые не знают английского.
Не знаю как вы, а я давно убедился, что если skynet будет, то сбер - это его mvp.
Была у меня такая история.
Нужно было расплатиться в кассе одного медицинского учреждения. Терминал не шел на сотрудничество и мне порекомендовали прогуляться до сбера и обкешиться. Т.к. карты сбера у меня нет, я решил снять денег с карты @rocketbank. Нужно мне было всего 3000 рублей.
Засовываю я карту в банкомат, ввожу пин и… сразу получаю деньги и карту обратно. денег ровно 3000 рублей.
Удивлен я был как герой того анекдота про термос.
Стало понятно что сингулярность подкралась откуда не ждали и у нее зеленоватый оттенок лица.
Пару дней я подумывал какие консервы лучше покупать, чтоб забить ими погреб на даче, но потом случилась еще одна история.
Понадобилось мне снова посетить этот санаторий сотоны с зеленым логотипом, только пообщаться не с бездушной машиной, а с сотрудником. Для этого надо было взять талончик в автомате электронной очереди. Но в автомат электронной очереди была очередь.
Почему? Потому что в автомате закончилась бумага.
Тут меня отпустило, т.к. стало понятно, что skynet, похоже, откладывается до момента, пока не будет налажена бесперебойная поставка бумаги.
Я еще не рассказывал о поездке на highload 2019 2 недели назад.
Т.к. любой желающий, купивший билет, мог заявить свой митап, я решил попробовать.
Мне выделили зал с несколькими рядами кресел, огромным телеком и звукоусиливающим оборудованием. При этом более уважаемым людям дали маленькие будки вместимостью 10 человек. За что мне были такие почести, я понял не очень, но энивей, спасибо, @HighLoadChannel 🙂
В итоге зал забился полностью, что меня тоже очень удивило 🙂
Запись, если что, вот: https://www.youtube.com/watch?v=g0vhMNh_4tg&t=8s
Теперь про саму конференцию.
Я езжу на нее много лет, и каждый раз привожу оттуда много инсайтов. В этом году лайнап мне показался довольно странным. Большую часть, как мне показалось, занимали базы данных и k8s, поэтому большую часть докладов я пропустил.
Зато получилось много пообщаться с разными компаниями.
И вот что я вам хочу сказать.
Сингулярности не будет 😟
Абсолютному большинству компаний, которые там были представлены, наплевать на качество того, что они делают. Причем такая история и в avito, и в lamoda и в других крупных компаниях.
Концепция, как говорят киношники - "добьем на посте". Т.е. когда исходный материал так себе, на постпродакшене это можно поправить.
Так же и тут - все поголовно используют ORM (есть и страшнее, но об этом в следующих выпусках), а разбираться с этим будут потом DBA (если они есть, конечно) уже на проде.
Честно - я расстроился. И пока я расстраивался, я пропустил важную вещь, которая догнала меня через несколько дней.
Вы, наверное, все знаете, что я делаю инструмент, проверяющий качество того кода, который работает с базой данных. Я искренне надеялся, что этот инструмент сэкономит много человеко-часов не самой творческой работы backend инженеров. Но оказалось экономить нечего, потому что никто по-человечески не пишет.
Но при этом абсолютно все, кто связан с Ops - DevOps и DBA сказали - "дай нам этот инструмент, мы будем этих безруких мудаков макать в их поделки аргументированно".
Я это все осознал не сразу. Но когда осознал, стало понятно, что внезапно в моем стартапе случился pivot (смена направления).
Мой инструмент нужен, но просто другой целевой аудитории.
Я знал, что больше 90% стартапов делают не то что они задумывали с самого начала. Но я-то думал, что я не такой 🙃
С одной стороны - хорошо что это произошло довольно рано и я не потратил усилия на инструменты для разработчиков, с другой - обидно, блин 😟
Кроме того, теперь не очень понятно что делать со стратегией монетизации. Если раньше у меня все складно было посчитано на одно рабочее место в месяц, прикинут объем рынка, куда бежать и что делать, то сейчас - ¯\_(ツ)_/¯
Т.к. любой желающий, купивший билет, мог заявить свой митап, я решил попробовать.
Мне выделили зал с несколькими рядами кресел, огромным телеком и звукоусиливающим оборудованием. При этом более уважаемым людям дали маленькие будки вместимостью 10 человек. За что мне были такие почести, я понял не очень, но энивей, спасибо, @HighLoadChannel 🙂
В итоге зал забился полностью, что меня тоже очень удивило 🙂
Запись, если что, вот: https://www.youtube.com/watch?v=g0vhMNh_4tg&t=8s
Теперь про саму конференцию.
Я езжу на нее много лет, и каждый раз привожу оттуда много инсайтов. В этом году лайнап мне показался довольно странным. Большую часть, как мне показалось, занимали базы данных и k8s, поэтому большую часть докладов я пропустил.
Зато получилось много пообщаться с разными компаниями.
И вот что я вам хочу сказать.
Сингулярности не будет 😟
Абсолютному большинству компаний, которые там были представлены, наплевать на качество того, что они делают. Причем такая история и в avito, и в lamoda и в других крупных компаниях.
Концепция, как говорят киношники - "добьем на посте". Т.е. когда исходный материал так себе, на постпродакшене это можно поправить.
Так же и тут - все поголовно используют ORM (есть и страшнее, но об этом в следующих выпусках), а разбираться с этим будут потом DBA (если они есть, конечно) уже на проде.
Честно - я расстроился. И пока я расстраивался, я пропустил важную вещь, которая догнала меня через несколько дней.
Вы, наверное, все знаете, что я делаю инструмент, проверяющий качество того кода, который работает с базой данных. Я искренне надеялся, что этот инструмент сэкономит много человеко-часов не самой творческой работы backend инженеров. Но оказалось экономить нечего, потому что никто по-человечески не пишет.
Но при этом абсолютно все, кто связан с Ops - DevOps и DBA сказали - "дай нам этот инструмент, мы будем этих безруких мудаков макать в их поделки аргументированно".
Я это все осознал не сразу. Но когда осознал, стало понятно, что внезапно в моем стартапе случился pivot (смена направления).
Мой инструмент нужен, но просто другой целевой аудитории.
Я знал, что больше 90% стартапов делают не то что они задумывали с самого начала. Но я-то думал, что я не такой 🙃
С одной стороны - хорошо что это произошло довольно рано и я не потратил усилия на инструменты для разработчиков, с другой - обидно, блин 😟
Кроме того, теперь не очень понятно что делать со стратегией монетизации. Если раньше у меня все складно было посчитано на одно рабочее место в месяц, прикинут объем рынка, куда бежать и что делать, то сейчас - ¯\_(ツ)_/¯
YouTube
Что на самом деле вернет SQL-запрос
Что на самом деле вернет SQL-запрос или заключаем контракт между базой и приложением. Митап 8 ноября 2019 года в рамках конференции Highload 2019
Если на демо дне у вас все пошло не так, вспомните, что даже у Илона «наше всё» Маска бывают проколы на презентациях.
https://youtu.be/IdaDdZHBOZA
Но при этом не забывайте, что при Джобсе такой фигни не было!!!
https://youtu.be/IdaDdZHBOZA
Но при этом не забывайте, что при Джобсе такой фигни не было!!!
YouTube
Elon Musk's Tesla Cybertruck BulletProof Glass FAILS GLASS TEST!
The truck looks pretty amazing to me, but i couldnt help but laugh when the glass actually broke... xD #Tesla #CyberTruck #CyberTruckFail
