
Мио
04.05.2018
08:09:47
да я сначала на этих двухкомпах запущу посмотрю.
просто не хочется вместо i3 арендовать xeon

Alexander
04.05.2018
08:23:28

Ad
04.05.2018
08:35:14
Посмотрел и захотелось выпить.

Google

Ad
04.05.2018
08:35:26
Шо ж вы делаете.

eldarQa
04.05.2018
08:35:40

Alexander
04.05.2018
08:35:50

eldarQa
04.05.2018
08:36:28
Я просто доработкой занимаюсь, лол

Ad
04.05.2018
08:36:39
Два запроса много

Anonymous*
04.05.2018
08:36:43
Ну так вычесть одного из другого, не?
не умеешь в арифметические операции?

Alexander
04.05.2018
08:37:34

Ad
04.05.2018
08:39:46
И одним запросом сделать, не трахайте мускуль лишний раз

Denis
04.05.2018
08:39:55
а тут нельзя было джоинами в один запрос слить посоны?

Ad
04.05.2018
08:40:04

Alexander
04.05.2018
08:40:17

Denis
04.05.2018
08:40:41
Нужно.
а насколько это быстрее чисто так эмперически?
в те самые три раза на время всех селектов?

Google

Ad
04.05.2018
08:41:55
Чем два запроса медленнее, чем один?

Denis
04.05.2018
08:41:59
ага нашел на SO
https://stackoverflow.com/questions/377729/performance-single-join-select-vs-multiple-simple-selects
норм там парень пооптимизил сотенку селектов с 1 минуты до 0.6 сек
ну я так понимаю они медленнее тем что в базу нужно постучаться, и тем что в базе есть еще какието оптимизации перформанса. без этого то джоин-селект это по сути н селектов все равно

Ad
04.05.2018
08:43:40

eldarQa
04.05.2018
08:44:09
Переписать на подготовленные запросы кстати?
Я сам просто этому особо внимания не уделяю, если селекты небольшие то юзаю тольок query

Ad
04.05.2018
08:44:10
Отдельно там порадовал limit 1 еще.

Alexander
04.05.2018
08:45:09
Истина в кэшировании :)
Мало проектов, где 100 запросов идут в БД и ни один кэшированию не подлежит

Ad
04.05.2018
08:45:45

Alexander
04.05.2018
08:46:33
Не работал с ним, все плохо там?
Сейчас сам делаю ИМ на ларе, максимум 1-2 запроса в БД идет на запрос

Denis
04.05.2018
08:46:47

Ad
04.05.2018
08:46:56
150 запросов на странице товара, я ахуеваю, мама дорогая, даже маженто себя так нагло не ведёт.

Alexander
04.05.2018
08:47:09
штээээ
что он там выбирает???

Ad
04.05.2018
08:47:31
Я офигел

Alexander
04.05.2018
08:48:21
Интересно, а сколько трафика нужно, чтобы на хостинге с 1гб RAM такой магазинчик положить
Как я понимаю, человек 50 зайдет за секунду и усе

Ad
04.05.2018
08:48:52
Если редис и кэширование... хотя хм
Хз

Alexander
04.05.2018
08:49:27
Не, если брать самый дефолтный вариант
Много же в интернете таких "мастеров", которые на фрилансе делают такие магазины

Google

Alexander
04.05.2018
08:49:54
150 запросов в БД - это же дохуя
Я когда 10 некэшируемых вижу, у меня уже какой-то диссонанс возникает

Ad
04.05.2018
08:49:56
20 хостов в секунду кладёт

Alexander
04.05.2018
08:50:26
Нормасик
Щас бы рекламку по высокочастотным запросам на такой сайт пустить и кайфануть

Ad
04.05.2018
08:50:27
Но есть куча нюансов в настройке

Alexander
04.05.2018
08:50:32
Вот заказчик рад-то будет)

Ad
04.05.2018
08:52:19
Например, если шаред хостинг то его вырубят за нагрузку на бд на таком лоховском тарифе. Если впс... а бывают нынче серьезные впс на таком мизере памяти? Центоси комфортно становится на двух.

Alexander
04.05.2018
08:53:03
На убунту стоит щас проектик с 1гб
RAM
VPS :)

Ad
04.05.2018
08:53:26
Nginx + php-fpm?

Alexander
04.05.2018
08:54:16
Там даже апача стоит

Ad
04.05.2018
08:54:29

Alexander
04.05.2018
08:55:29
Его максимум 5-7 чел юзают
Изначально LAMP стоял, закинул туда через гит все и усе

Ad
04.05.2018
08:57:40
Ну тогда понятно
Так-то да, можно поднять, но я о серьезных проектах

Alexander
04.05.2018
09:00:39
Понятное дело)
В серьезных проектах не кэшировать данные на уровне nginx - уже довольно тревожно, не говоря уж о том, что апача это не умеет в принципе

Grigoriy
04.05.2018
09:11:12
Очень сложно читать, очень сложно понимать, практически не реально тестить
Збс привел оценку в обоснование:
Так нельзя делать потому что "мне тяжело это читать"
...
код с юзом и ссылкой занимает 6 строчек, с вайлами и указателями 50.
сложно читать да.
===
тестить невозможно?
напиши
static $iteration;
if (null === $iteration) $iteration = 0;
$iteration++;
тести.
===
хочешь снаружи тесты писать - делай классом и спрашивай $this->getIteration()
если и есть вменяемая причина, то она в том что на размерах массивов от 50к элементов наблюдается существенная просадка по времени выполнения. Для дерева размером 50-100 элементов это такая чушь

Vladimir
04.05.2018
09:35:05
господа, не подскажите как у select option грохнуть базовый ивент click?
https://prnt.sc/jdlapr
ну или переопределить

Google

Grigoriy
04.05.2018
09:44:18
кто подскажет как классом Transliterator или другим способом не имея списка всех символов всех кодировок менять похожие символы на английские?
стоит Any-Latin, Cyrillic Latin и все равно польский город CHAŁUPKI CHOTYNIECKIE :D ломает прогу

Alexander
04.05.2018
09:45:23

Romka
04.05.2018
09:45:49
(непхп) Кто-то с openresty работал? Нужно прямиком с lua писать логи в syslog, кто-то знает модуль для этого?

Vladimir
04.05.2018
09:45:56
я же говорю, делал)
$(".chooseTheProject option").click(function(e) {
e.preventDefault();
if($(this).hasClass('active')){
$(this).removeClass('active');
$(this).css('background-color','white');
$(this).css('color','black');
}
else{
$(this).addClass('active');
$(this).css('background-color','green');
$(this).css('color','white');
}
});

Chuvi
04.05.2018
09:46:49

Vladimir
04.05.2018
09:46:59
все применяет
https://prnt.sc/jdlapr
вот короче просто ::selection

Admin
ERROR: S client not available

Alexander
04.05.2018
09:47:25
Скинь codepen или еще что-либо :)
А лучше - возьми либу какую-нибудь, где хороший апи для взаимодействия

Vladimir
04.05.2018
09:47:29
видимо навешивает как то браузер сам

Bo
04.05.2018
10:31:43
Ребят, подскажите. Читаю про фабричный метод, много примеров, где используют статичный метод для создания объекта. Есть какая то фишка в этом, почему именно статика?
class ProductFactory
{
public static function build($type) {
$product = "Product_" . $type;
if (class_exists($product)) {
return new $product();
}
}
}

Grigoriy
04.05.2018
10:34:28
книжки писались когда статика была в тренде. не вижу других причин
статика это в первую очередь имя класса, который завтра может поменяться если ты поменяешь сам фабрикатор

Родион
04.05.2018
10:35:12
запись короче )
хотя можно и (new ProductFactory)->build()

Grigoriy
04.05.2018
10:35:25
так что либо это твоя собственная обертка в которую ты потом подключишь чужой или другой свой фабрикатор, или вообще выкень нахер
я бы сразу смотрел в инжекторы DI
// app.php
$di->set('factory', new ProductFactory());
// file.php
$di->get('factory')->build() если уж очень хочется

Родион
04.05.2018
10:36:44
кстати со статикой конструктор не стартует
может это кому нибудь нужно например

Grigoriy
04.05.2018
10:37:00
формально с помощью ДИайки ты создаешь глобальную переменную куда положишь фабрику или обьекты, только она еше разные полезные штуки делает.
таким образом все связи проги оказываются только в конфиге

Bo
04.05.2018
10:37:29
супер, спасибо!

Google

Grigoriy
04.05.2018
10:40:00
супер, спасибо!
если немножко развернуть то возможно они боролись с экономией килобайта памяти на то чтобы не создавать обьект фабрики и типа это как бы более правильно.
правильно для проги. мозгоуничтожительно для кодера через неделю

Alexander
04.05.2018
10:42:58
Интересно, когда для пыхи babel или babel'оподобное сделают (или уже есть, я туп?)
Где весь код перед продакшном будет рефакториться и сжиматься

Anonymous*
04.05.2018
10:43:57
а зачем
он же не передаётся на сторону клиента
если только обфускаторы
или компиляция в опкоды

Alexander
04.05.2018
10:47:36
Ну, к примеру, чтобы убрать абстракции
Если на пальцах, то берешь ту же лару, пишешь в консольке php artisan production, он тебе создает новую папку, скажем, dist, и туда закидывает только то, что используется
Т.е. чекает конфиг, если используется redis, то убирает драйвера мемкэшд и преобразует фасад Cache во всем коде в Redis, тем самым убирая необходимость обращаться к Cache на продакшене

Grigoriy
04.05.2018
10:51:17
Не думаю что это чем-то поможет кроме 20-30 миллисекунд бонуса на запрос
Как по мне то не хватает какого-то преобразователя в js код
Пхпшный роутер возвращает данные
Пхпшный контроллер отправляется вместе со скриптом на клиент и обрабатывает кнопки без перезагрузки
Сразу исчезнет необходимость писать скрипты как таковые. И шаблонизаторы распопуляряться как никогда
А то мы пришли к выводу что челы пишут single-page чтобы потом сделать server-side rendering...


Denis
04.05.2018
10:54:31
Ну, к примеру, чтобы убрать абстракции
Если на пальцах, то берешь ту же лару, пишешь в консольке php artisan production, он тебе создает новую папку, скажем, dist, и туда закидывает только то, что используется
Т.е. чекает конфиг, если используется redis, то убирает драйвера мемкэшд и преобразует фасад Cache во всем коде в Redis, тем самым убирая необходимость обращаться к Cache на продакшене
когда подвезут jit-компиляцию в 8ой пыхе или когда там то все это говно с псевдобабелем будет медленнее jit-а скорее всего

Grigoriy
04.05.2018
10:54:49
просто потому что пыха не умеет паковать обработчики нажатий клавиш когда выплевывает хтмл
вернее это не пыха не умеет, а в целом хттп протокол деды писали

Adel
04.05.2018
10:56:44

Grigoriy
04.05.2018
10:58:55
избавит от проектирования инфры с нгинексами еще на год многие компании. от найма администратора... ну много чего хорошего бы сделала.
но я бы не с этого начинал

Евгений
04.05.2018
11:05:11

Alexander
04.05.2018
11:06:30
не понял
тип php не может клиенту послать обработчики событий

Dmitriy
04.05.2018
11:06:44

Evgeniy
04.05.2018
11:14:01