
Alexander
07.09.2017
13:36:13
пример из Yii тут будет малополезен. там через критерию проще пройти)

Борис
07.09.2017
13:36:20
Ребята, научитесь разбираться в тех инструментах, что вы используете. Если ты @Rm Flood знаешь, как должен быть SQL то берешь XDebug и пошел F7 по кодяре библиотеки. Там делов на 5 минут разобраться как что собирается.

Rm
07.09.2017
13:37:45

Sergey
07.09.2017
13:37:58
че делать в случае проблемы
1. Посмотреть SO
2. Погуглить
3. Спросить в чате
4. ....
n. Включить Xdebug и разобраться

Google

Rm
07.09.2017
13:39:08

Sergey
07.09.2017
13:39:23
это сарказм
в любой непонятной ситуации сразу xdebug

Alexander
07.09.2017
13:39:50
SELECT COUNT(DISTINCT(`message_validate`)) FROM `your_table_name` WHERE `option` = 1

Борис
07.09.2017
13:40:01
не знаю еще как в sql чтоб был
А вот это, брат, уже хуево. Как бы тебе сказать.... ORM позволяет не трогать БД пока запросы уровня getById. Глубже тебе без SQL идти тяжело будет.... советую разобраться чего ты хочешь в SQL а потом воспользоваться советом Sergey Zolotov только пункты n и 4 меняй местами.

Alexander
07.09.2017
13:40:23
теперь ищи как это в ларе реализовать штатными средствами (поди можно)

Rm
07.09.2017
13:41:09

Борис
07.09.2017
13:41:55
Врядли, ORM это выборку объектов (для это квери должен возвращать строки). А тут запрос возвращает один скаляр. Тут просто нужно найти метод $connection->executeSql("") и не дурить себе голову

Alexander
07.09.2017
13:43:32
ну в yii можно выполнить queryScalar, потому я и думаю, что в ларе тоже подобное доступно)
еще там есть countBySql() и просто count() на объекте. если объекту передать criteria, то можно и по критерии посчитать

dypa
07.09.2017
13:47:32

Alexander
07.09.2017
13:48:03
в общем, как обычно, в программировании большинство задач можно сделать десятком способов, и за 9 из них получишь по шапке от вышестоящих программеров)

Rm
07.09.2017
14:21:43
может кто знает как теперь в пагинацию прокинуть, с пагинацией падает, у меня колекция #items: array:5 [▶️]

Google

Rm
07.09.2017
14:21:43
может знаешь как в пагинацию прокинуть?
$posts = $this
->user()
->posts()
->where('posts.option', 1)
->orderBy('created_at', 'DESC')
->distinct()->whereNotNull('message_validate')->get(['message_validate']);
//->paginate(10);
dd($posts);
с пашинацией падает

Oscar
07.09.2017
14:32:13
Из-за гета

Rm
07.09.2017
14:33:10
Из-за гета
ну если гет убрать не праввильно считает
LengthAwarePaginator {#413 ▼
#total: 1
$posts = $this
->user()
->posts()
->where('posts.option', 1)
->orderBy('created_at', 'DESC')
->distinct()->where('message_validate')
->paginate(10);

Alexander
07.09.2017
15:21:57
Други. Скажите какой проект считается высоконагруженным? Сколько посетителей должно быть в сутки? Сколько хитов?

Sergey
07.09.2017
15:26:22
зависит еще от приложения, если это какая-то рекламная платформа, то там миллионы юзеров это окей. если это икомерс то там 100 одновременных юзеров может доставить проблем

Alexander
07.09.2017
15:27:30
В чем мерится? в RPS? То есть вот как определить хайлоад проект или нет?

Kirill
07.09.2017
15:29:08
Очень распростренный вопрос)))
Хайлоад - это когда проект падает иногда и нужно думать об оптимизациях

Sergey
07.09.2017
15:29:42
ну вообще если один сервер не в состоянии обслужить все нужды клиентов, запросов в секунду 100+ это уже начинается хайлоад

Dmitriy
07.09.2017
15:30:54

dypa
07.09.2017
17:12:17

Mikhail
07.09.2017
17:43:59

Dmitriy
07.09.2017
17:45:25

dypa
07.09.2017
18:09:29

Vladislav
07.09.2017
18:09:57
а если данные не влезают на флеху, то big data

Dmitriy
07.09.2017
18:10:51

Saško
07.09.2017
18:14:41
Я могу такой говнокод нагенерить, что он на любом железе 146% времени займёт.
Хорошо быть хайлоад-разработчиком!

Dmitry
07.09.2017
18:18:02
Мне кажется хайлоад - это когда для переваривания нагрузки становится выгоднее оптимизировать код и внедрять всякие специфичные штуки, чем закупать новое железо ;)

Ринат
07.09.2017
18:19:09
и пересмотреть код и нормализацию или денормализацию бд, без нового железа

Evgeniy
07.09.2017
18:21:11
Когда есть возможность рефакторить и перекрайвать бд?

Google

Evgeniy
07.09.2017
18:21:27
Мне бы в этот мир хайлоуда

Mikhail
07.09.2017
18:23:47
Тоесть вы никогда не рефакторите?

Evgeniy
07.09.2017
18:25:21
Никогда и наличия всегда такой возможности немного разное

Mikhail
07.09.2017
18:28:08
Я не понимаю что такое «наличие возможности». Если код действительно требует рефакторинга (часто меняется или вызывает постоянную боль при использовании), то это просто делается.

Evgeniy
07.09.2017
18:30:22
Если вокруг этого кода стрлится все приложение
И когда то давно он он удовлетворял
А сейчас чтобы его отрефакторить
Надо остановить практически разработку команды
Пока кто то один рефакторит
Тот тут надо быть хорошо уверенным что твой рефакторинг сделает лучше чем было
И не создаст новых проблем

Mikhail
07.09.2017
18:33:21
Для этого есть тесты.

Evgeniy
07.09.2017
18:33:28
И да я згаю что такое декомпозиция и рефакторинг частями
У вас все виды тестов и тестируется все что можно?

Mikhail
07.09.2017
18:34:10
Нет конечно.
Все виды тестов и тестируются все критические вещи.

dypa
07.09.2017
18:34:39

Evgeniy
07.09.2017
18:35:05

dypa
07.09.2017
18:35:20

Google

Evgeniy
07.09.2017
18:35:24
Просто есть разница между рефакторингом кода стайла
И рефакторингом наховем это архитекткры или подхода

dypa
07.09.2017
18:35:57
вы вообще поймите то, что higload и bigdata вещи относительные, их нельзя измерять в rps или mb.

Evgeniy
07.09.2017
18:36:15

Mikhail
07.09.2017
18:36:28

Evgeniy
07.09.2017
18:36:29
Для кого то и 10 rps hoghload

Mikhail
07.09.2017
18:36:41
Это не вопрос «нет возможности»

Evgeniy
07.09.2017
18:36:57

Mikhail
07.09.2017
18:37:42
Просто в итоге больше времени затрачивается на понимание/разгребание кода который, например, написан с неудобным и диким апи.

Dmitriy
07.09.2017
18:37:45

Mikhail
07.09.2017
18:38:03
чем его поменять, пусть постепенно и с болью.

Evgeniy
07.09.2017
18:38:27

Mikhail
07.09.2017
18:38:52
Нет, обычно рефакторинг делается в рамках какой-то задачи.