Serezha
проще взять кодера и ворузить всче на пару дедиков которые будут тянуть весь оверхед
Serezha
чем искать каких то звезд которые напишут оптимально и все будет летать на виртуалке 512 мег
Serezha
это мы тут кодеры дрочеры и нам это важно
Serezha
а бизнесу похер
Snusmumriken
Проще найти кодера который знает sql, и посадить его на те же 200к. Таких много.
Serezha
этот скл кодер не напишет админку
Snusmumriken
В смысле?
Serezha
в симфони и доктрине все завязано на это
Serezha
все комопненты интегрированы - как в рельсах
Serezha
ты берешь кубики и решаешь задачу быстро надежно и красиво
Pavel
еще раз - на рынке есть тысячи кодеров симфони и джанги которые пишут все на орм
Ты не прав. Вокруг меня куча пацанов что пишут с использованием симфонии и джанги. И умеют в sql хотя бы до уровня оптимизации запросоы
Serezha
просто нормальный кодер не будет его дрочить если все работает из коробки
Serezha
я в прошлом году делал сайт на симфоны - потом настроил кеширование в нжинксе и сдал проект
Snusmumriken
Ну во-первых не любой, а во-вторых, никто не мешает делать админку на орме (я чот никогда не видел админок требующих хайлоада 300ккк rps), а бутылочные горлышки переписывать на нормальном sql.
Pavel
просто нормальный кодер не будет его дрочить если все работает из коробки
Пока бизнес устраивает та производительность что есть - все хорошо. И эти пацаны за 200 сразу знают не мало приёмов чтобы сразу сделать неплохо.
Serezha
ну если хотите мое мнение - я считаю что скл проще чем орм
Snusmumriken
Зачем тогда нужен орм? ))
Serezha
чтобы писать бизнес логику а не скл
Pavel
Чтобы ты сказал - вот этот юзер только с паролем. И всё
Pavel
В общем не вижу предмета спора. Все в среднем правы.
Snusmumriken
Аааа. Ну точно. На самом деле, орм нужен только чтобы абстрагироваться от бд, потому что есть куча кодеров которым впадлу зубрить скл. Любой орм в чуть более кривых руках чем нужно (а иногда и в прямых) будет насиловать бд во все порты и тянуть миллионные таблички по одной записи.
Snusmumriken
А для того чтобы "писать бизнес-логику а не скл" — есть такая штука как адаптер. В него добавляются функции, которые делают оптимизированные скл-запросы для конкретных вещей. Это не орм, это адаптер, он проще и узкоспециализирован.
Snusmumriken
Тогда почему он пишет орм-код а не скл-код? Орм тут лишний, если он так прекрасно знает скл — он напишет то что будет работать в десять раз быстрее без орма.
Serezha
доктрине - это не ваш школьный активрекорд это серьезный датамаппер
Snusmumriken
Хех, "любой нормальный" кодер (в том числе за 200к), вытащит пару функций из этого доктрине, оптимизирует для данной конкретной таски и использует в проекте, прицепив к "адаптеру". Все ормы, шо школьные, шо сирьёзные — заточены под "универсальность", следовательно — снижение производительности.
Snusmumriken
Ну или напишет за 2 наносекунды нужный набор запросов, который всё размаппит, он же отлично знает скл, почему бы и нет ))
Snusmumriken
Есть такая прикольная штука как "слои абстракции". И чем больше слоёв в этой самой абстракции, тем больше шанс протечек. Ты читал "закон текущих абстракций" Джоеля Спольски? Прочитай, там маленькая статейка. И норм кодеры, на критичных штуках, стараются уменьшить количество этих слоёв, тупо потому что так меньше шанс факапа. И орм — явно лишний слой абстракции для "норм кодера" на хайлоад-фигне.
Snusmumriken
Вот слепить админку на орме — да, пожалуй. Админки редко когда подвергаются хайлоаду. Тупо наляпать туц-туц по клаве не задумываясь вообще. "Норм кодеры" тоже делают "туц-туц", инфа сотка ))
Serezha
вот жеж блин - уже запилили php-ngx и он рвется в топы течемповер бенчмарков
Snusmumriken
Ну и чего? Пхп вылизан довольно сильно, с чего ему не рваться в топы бенчей, тем более на нгинксе?
Serezha
весь секрет хайлоада - запилите модуль нжинкс для вашего языка и все расходимся 🙂
Snusmumriken
Надо пойти на конфу по хайлоаду с докладом "секрет хайлоада". Весь доклад будет из одной фразы: "запилите модуль ngx под ваш яп и прицепите редиску", даже слайды не нужны
Snusmumriken
Собсно, весь прекол нгинкса (да и ноды какой-нибудь) в том, что все блокирующие операции в потоке ведут к переключению потока пока не разблокирует. Любой яп с блокирующими операциями будет гораздо лучше себя чувствовать на нгинксе. Лично меня, в общем-то, очень радует то, насколько тут простая и элегантная концепция, я сам успел накатать таск-менеджер в аналогичном стиле (фактически на корутинах), и оно тоже замечательно асинхронно работает (пока ждёт результатов хттп-запросов, там главный блок на них).
Serezha
все это держится на сложном рантайме. в ноде очень просто заблокировать основной поток и обрушить производительность
Serezha
как раз для языков с корутинами вот этот костыль с ивент лупом и не нужен
Serezha
программы на Го отрабатывают реквесты также быстро как нжинкс с ивент лупом но более элегантно за счет настоящей многозадачности (кооперативной но это не заметно для программиста)
Serezha
я люблю нжинкс просто по причине что лично мне он облегчает жизнь поддержки десятка проектов на одной машине 🙂 а так в ентерпрайзе он не особо нужен - для чисто балансировки есть лучше продукты а микросервисы на гошке сами в себе хайлоад веб сервера уже
Mark ☢️
УРАААААААААААААААА
Mark ☢️
в опенврт завезли Lua 5.3
Mark ☢️
Lucky
Eh Bee Family
Serezha
Надо пойти на конфу по хайлоаду с докладом "секрет хайлоада". Весь доклад будет из одной фразы: "запилите модуль ngx под ваш яп и прицепите редиску", даже слайды не нужны
Я всегда думал что опенрести быстрый потому что луаджит. А сейчас вот пытаюсь понять как так пхпшный модуль нжинкса в итоге быстрее запросы отдает чем луашный? Там же просто интерпретатор
Snusmumriken
Мало ли что ты думал. Не передёргивай факты а смотри конкретные бенчи и конкретные цифры в конкретных задачах.
Max
1) пхп недавно переписали, во многом вдохновляясь луаджитом 2) джит на реальных веб приложениях даёт не так много, как может показаться. хорошо, если 10%, например
Snusmumriken
Основные внутренние оптимизации луажыта — это циклы (с минимумом условий) и математика. То есть, наибольший прирост имеют игрушки и циклическая обработка данных (с кол-вом итераций > ~50к, в идеале) а не регулярки и шаблоны.
Snusmumriken
А то начитаемся каких-нибудь додиков, надёргаем из контекста кучку фактиков, и будем потом строить глобальные и долгоидущие выводы "это всё херня и всегда будет хернёй, а вот это — супер-круто при всех условиях".
Serezha
Techempower явно не додики:)
Max
когда в пхп пытались включать джит на их веб-фреймворках, то ничего хорошего не получалось. с ruby-джитом в ruby on rails такая же история. тут надо бы сделать какой-то вывод, но вдруг у кого-нибудь всё-таки получится написать хороший джит
Snusmumriken
Techempower явно не додики:)
Это не мешает читателю интерпретировать их левой пяткой ))
Snusmumriken
Пришло время задуматься о доверии. Что заставляет людей верить выводам тех или иных людей и компаний, когда можно без особых проблем провести самостоятельный эксперимент и построить собственные выводы?
Snusmumriken
Снус заранее говорит что ему верить нельзя, худо-бедно можно верить снусовым скриншотам с бенчами, но тоже не желательно. Снус сам себе не верит, даже когда перечитывает собственные авторитерные заявы. Железо меняется, цифры меняются, методы тоже меняются и мнения вслед за ними.
Snusmumriken
Я вижу проблему излишнего доверия в самом инженерном мышлении, когда какие-то абстрактные "очень умные люди" выдали методику, и ты её теперь придерживаешься. У всех инженеров это встречается, у меня тож. Это позволяет быстрее выдавать рабочий результат не отвлекаясь на все проверки и перепроверки всех знаний, которые есть в багаже, и соотношение их друг с другом. Но если инженеру подсунуть очень умный но ложный факт, который худо-бедно встраивается в его опыт — инженер его примет, встроит в свой багаж потеснив остальные, не очень хорошо стыкующиеся факты, и будет использовать. Самим объектом доверия тут работают те самые абстрактные "очень умные люди", а мотивом — не очень жёсткий разрыв шаблонов при встраивании. И сама вера — в других людей. В этом отличие от "труЪ учёного", который не верит вообще ничему, в том числе собственному багажу, и всё-всё новое поступающее пытается стыковать с имеющимся, отсекая и имеющееся, и поступившее, если оно признано лишним. Я сам стараюсь балансировать, но таки ближе к тупому инжу :<
Serezha
вдруг наврали не посчитали и все обвалится прямо подо мной
Snusmumriken
Не передёргивай.
Serezha
сейчас сел пересчитывать ВВП страны - ведь наврали ж статисты наверняка
Snusmumriken
А теперь смотри: один человек такой построил лифт, и он тянет нужную нагрузку. Построил мост — и по нему люди ходят, диву даются. А потом он такой толкает идею о том что все люди кроме таких-то — низшие существа, паразиты на теле общества и требуют уничтожения. И все вокруг ему верят, потому что лифт с мостом-то он построил, не обманул. Значит и тут не обманет! А он сам построил такой вывод потому что ему кто-то собрал неверные данные, а в прошлые разы — собирали более-менее точные ))) Это — такое же передёргивание как у тебя, тебе нравится?
Serezha
я за тестами течемповер несколько лет уже смотрю :) и в код разных фреймворков заглядывал, хотя не запускал никогда сам. доверяю методике
Snusmumriken
Ну вот и хорошо : )
Serezha
тем не менее удивляют вот эти цифры
Snusmumriken
В пределах погрешности, в данной конкретной таске.
Serezha
Snusmumriken
В пределах погрешности, в данной конкретной таске [2.0]
Snusmumriken
Ты ведь в курсе на тему соотносимости синтетических тестов к реальности?
Serezha
если что вот это пхп штатно
Snusmumriken
Ну, мне лень писать [3.0], но надеюсь ты понял что я имел ввиду.
Andrey
Аааа. Ну точно. На самом деле, орм нужен только чтобы абстрагироваться от бд, потому что есть куча кодеров которым впадлу зубрить скл. Любой орм в чуть более кривых руках чем нужно (а иногда и в прямых) будет насиловать бд во все порты и тянуть миллионные таблички по одной записи.
Вот думал хоть здесь про симфони не будут вспоминать. Убегаешь от пыха а он находит тебя в других местах. По поводу орм - дело не только в запросах. Просто тебе внезапно говорят что у нас БД другая и тебе срочно надо с мускула на постгре или еще куда то перейти. орм типа гарантирует это безболезненно но на самом деле любая орм на пыхе - лютое г. Очень сложно разобраться где жрется память и время. Ну и второй аспект - можно набирать программеров которые про sql слыхом не слыхивали. И еще там всякие автоиндексации, перенастройка названий колонок итд. Но тупит и жрет память по определению.
Serezha
в какой вселенной в веб берут прогеров которые про скл не слышали :)
Serezha
на всех собесах джойны в полный рост хотят на бумажке как минимум
Serezha
в нормальных местах индексы експлейн и селективность
Snusmumriken
Хех, я бекендщик, с меня не хотели никаких скл ))
Snusmumriken
И у меня на работе нет ни скл, ни носкл, ни тарантулов ни эластиксёрчей ни постгров ничего такого, собственная персональная БД (разработчики которой сидят в соседнем кабинете и развивают её), единственный способ не-ручного добавления записей в которой — local record = base:NewRecord() record:SetValue(index, value) (и это не орм, дёргаются внутренние методы самой базы, скрипт тоже запускается ей же) Хехехе. И выгрузка примерно такая же, хотя упрощённый язык запросов тоже есть. Даже редиска используется только в одном месте. Правда, на старте меня брали совсем не на 200к, поэтому я не могу претендовать на то что я — норм-кодер (((
Serezha
я человек глупый и доктрин так и не освоил нормально - но даже на среднем уровне сложность работы с датамаппером раз в 10 выше чем с чистым СКЛ
Andrey
я человек глупый и доктрин так и не освоил нормально - но даже на среднем уровне сложность работы с датамаппером раз в 10 выше чем с чистым СКЛ
там ничего сложного но человек ты не глупый. если в коллективе с субд работает один два сотрудника никакой орм в том числе навороченная доктрина в последней версии нафиг не нужна.