
Pavel
04.01.2018
23:15:07
Это делает фалькон )

Maksim
04.01.2018
23:15:17
это делает бэкэнд) любой.
а фронтэнд собирает

Pavel
04.01.2018
23:15:37
Какой фронтенд ?

Google

Maksim
04.01.2018
23:15:50
который ты заджикверил и забутстрапил)
но нахера тут фалкон я всё ещё не понимаю)

Pavel
04.01.2018
23:16:31
Не, ты напиши конкретно какой язык че делает
Вот в фальконе логика понятна - приходит запрос, nginx его проксирует на phalcon, тот отрабатывает свою логику согласно разделу новости (acl и все такое), потом идет забирает из редиса 5 ключей и из них рендерит страницу. И отдает.
Это читаемо, логично, тестируемо, все привыкли. А в случае nginx<->redis как это выглядит?

Maksim
04.01.2018
23:18:53
а зачем он забирает всё это и генерит на сервере, если можно всю "статику" тупо доставать из того же редиса нжинксом?) без участия фалькона?
пришёл запрос, проверил, часть сгенерил, часть нжинксом отдал - какой-нить тупорылый js всё склеил воедино

Dmitry
04.01.2018
23:19:07
две основные проблемы программирование - именование переменных и инвалидация кеша ;)

Maksim
04.01.2018
23:19:28
инвалидация в данном случае не отличается никак) ключи известны, данные в них тоже)

Dmitry
04.01.2018
23:20:27
есть вполне реальные случаи, когда кеш не работает

Pavel
04.01.2018
23:20:29
Ну вытаскивать логику на уровень JS, да, попахивает. Придется писать костыли для инвалидации всего этого дела.

Maksim
04.01.2018
23:20:51
но даже в твоей схеме фалкон на кой хер нужен-то?
что бы сползать в мускуль?

Pavel
04.01.2018
23:20:57
5 лет назад так точно было, да и сейчас я был бы против того чтобы на фронтенде что-то такое сложное делать.

Google

Maksim
04.01.2018
23:21:10
поздравляю, как только фалкон ползёт в мускуль он превращается в ничто)

Dmitry
04.01.2018
23:21:17
почему в мускуль.. данные могут быть в быстрых базах

Pavel
04.01.2018
23:21:24

Maksim
04.01.2018
23:21:31
в редисе кеш) а данные где?)

Dmitry
04.01.2018
23:21:46
просто варианты комбинаций этих данных может быть столько, что кешировать результат невыгодно

Pavel
04.01.2018
23:22:17

Maksim
04.01.2018
23:22:22
ну вот...

Dmitry
04.01.2018
23:22:27
а сложная логика на nginx - это тот же интерпретатор опять, perl там или lua...

Maksim
04.01.2018
23:22:34
короче пустой холивар. Кто-то кого-то явно не понимает
взять фалькон, ползать в мускуль - победа. Всем рекомендую Рабочий вариант :)

Dmitry
04.01.2018
23:23:26
в редисе.. не кеш, в редисе данные...

Maksim
04.01.2018
23:23:34
выше прочти)

Dmitry
04.01.2018
23:24:20
скажем так, в мускуле могут быть нормализованные данные, в редисе - денормализованные... но все-равно не настолько, что бы их выплевывать прямо на страницу

Maksim
04.01.2018
23:24:52
ну из описания Павла я понял, что он именно этим и занимается: выплёвывает на страницу)

Dmitry
04.01.2018
23:25:14
ну он очень условно.. мы тут все немного о сферическом коне в вакууме

Maksim
04.01.2018
23:25:42
да ещё и всякие лайки держит в представлении той же новости. ну такое себе решение) фалкон тут за яйца притянут и опять-таки нахер не нужен)

Pavel
04.01.2018
23:26:04
Да конечно мало смысла пытаться сформулировать в двух предложениях не самую простую архитектуру
А таких рекомендаторов всегда были тонны, которые знают как лучше_всего_сделать и просто_и_лихо, а когда доходит до реальных проблем так все эти рекомендации терпят фиаско(

Dmitry
04.01.2018
23:27:20
ну вот например, новостной сайт, когда ты ленту меняешь на ходу для посетителя в зависимости от просмотренного

Pavel
04.01.2018
23:27:33
Потому что например оказывается что прикрутить какой-нибудь счетчик посещений страницы от пользователей за исключением админов уже нельзя..

Google

Maksim
04.01.2018
23:28:12

Pavel
04.01.2018
23:28:19
И надо гавнокодить на lua прямо в nginx мясо кровь кишки. Типизация потеряна, юнит тестами не покрыть. Так и живем.

Dmitry
04.01.2018
23:28:33
ну не будешь же ты с клиента в ленту новости по одной запрашивать

Maksim
04.01.2018
23:28:45
не надо там ничего говнокодить, хоспаде)
господа, вы бы хоть загуглили для интереса.

Dmitry
04.01.2018
23:29:31
опять же, что бы определить - какие новости запрашивать, нужно взять профиль клиента, посчитать что-то и решить - что отдавать

Maksim
04.01.2018
23:30:32

Pavel
04.01.2018
23:31:12

Maksim
04.01.2018
23:31:26

Dmitry
04.01.2018
23:31:33
мы не о проблемах, мы о том, что есть случаи, когда собственно логики мало, i/o быстрый (память), и результат в кеш не положишь, ибо будут сплошные miss-ы
и тут важно снизить затраты приложения

Pavel
04.01.2018
23:32:09
Ты можешь написать конкретно на каком языке в каком месте технологического пирога бэкендовая логика? Или так и будешь вокруг да около ходить?

Maksim
04.01.2018
23:32:16
не ну затраты приложения определённо снизятся, если страницу генерить на сервере

Pavel
04.01.2018
23:32:55
Ну то есть фалькон)

Dmitry
04.01.2018
23:32:58
если ты фейсбук - можешь написать свой компилятор ;) если помельче - можешь фалькон взять, пару кусков на зефире

Maksim
04.01.2018
23:33:16
https://ruhighload.com/nginx.ssi.jpg
даже с картинкой)))

Dmitry
04.01.2018
23:33:47
кто определит - какие блоки отдавать клиенту то?
только приложение

Google

Maksim
04.01.2018
23:33:58
да
оно же данные в кеш и положит
у тебя есть экшен getNewsFeed
там в зависимости от каких-то параметров ты генеришь ответ

Dmitry
04.01.2018
23:35:13
у тебя тысяча клиентов ходит по сайту, и ты каждый на запрос каждого клиента "просмотр новости" перестраиваешь ему список новостей в ленте

Maksim
04.01.2018
23:35:14
ты отрендерил ответ и параллельно закинул его в мемкеш.

Dmitry
04.01.2018
23:35:16
какой тут кеш

Pavel
04.01.2018
23:35:19
фальконом.

Dmitry
04.01.2018
23:35:38
ты думаешь фейсбук кеширует ленту?

Maksim
04.01.2018
23:35:52
уверен даже

Dmitry
04.01.2018
23:35:58
;) нет

Maksim
04.01.2018
23:36:24
ну значит они молодцы) им денег хватает

Pavel
04.01.2018
23:36:49
Ладно я даже согласен с тобой когда сайт действительно тупо состоит из статически нагенеренных новостей. Но вообще то в реальных проектах такого уже нету лет 10.

Dmitry
04.01.2018
23:37:03
дело не в деньгах, дело в том, что у тебя нет ярко выраженных горячих данных, которые влезут в память кеша

Pavel
04.01.2018
23:37:11
Там например 80% статически нагенеренный новостей, а остальное - сплошной динамизм.

Maksim
04.01.2018
23:37:13

Pavel
04.01.2018
23:37:33

Dmitry
04.01.2018
23:37:37
т.е. будет у тебя HIT в 1%... это не кеш, это деньги на ветер

Maksim
04.01.2018
23:37:44
ну возьми тот же фб, который Дмитрий привёл)
расскажи ему, что нужно собирать страницу целиком на сервере

Pavel
04.01.2018
23:38:33
Ну они могут даже не рендериться в html, но собирается страница все равно очень сильно бэкендом.

Google

Maksim
04.01.2018
23:38:42
да схерали?

Dmitry
04.01.2018
23:39:08
собрать json со списокм новостей - это в общем тоже "собрать сайт" ;)
но мне вот из-за фейсбука пришлось, суки, телефон менять, ибо невозможно пользоваться... а не такой уж он и старый был... чоб они сдохли с рендерингом на клиенте ;)

Maksim
04.01.2018
23:40:29
зато это дешевле)

Dmitry
04.01.2018
23:40:38
мне нет ;))
а так да...

Maksim
04.01.2018
23:41:03
ну у тебя есть http кеш, который часть инфы схоронит, которую они пожелают

Pavel
04.01.2018
23:41:04
Дешевле чем на бэкенде? А как же твиттор который отказался от client-side рендеринга ?

Maksim
04.01.2018
23:41:18
дешевле

Dmitry
04.01.2018
23:41:32
поддерживать сложнее на самом деле

Maksim
04.01.2018
23:41:52
в разы

Dmitry
04.01.2018
23:41:55
если ты не фейсбук, который свой реакт пилит

Maksim
04.01.2018
23:42:14
но для этого и придумали всякие штуки типа варниша

Pavel
04.01.2018
23:42:16
https://twitter.com/dan_abramov/status/924441145626816512
Это 2 месяца назад написано

Maksim
04.01.2018
23:43:45
я к своему стыду не пользуюсь ни фейсбуком, ни твиттером. Но на первый взгляд в том же твиттере что на сервере, что на клиенте нечего рендерить))
фейсбук в качестве примера лучше подходит)

Dmitry
04.01.2018
23:44:10
ну серверный рендеринг быстрее дает респонс, факт... одна из причин изоморфизма
а фейсбук глючный как диэтиламид d-лизергиновой кислоты... особо в веб версии

Maksim
04.01.2018
23:46:17
и вообще) мы от темы отдалились)
фалкон-то нахера?)
почему не взять обычный пхп говнокод с реактом, если хочется анальных приключений?)