Pavel Zarubin

Pavel Zarubin

С нами с 07 сентября 2016; Место в рейтинге пользователей: #14
Отправить деньги
Pavel Zarubin
20 сентября 2022, 22:59
0
Особенно после продавливания дженериков.
Которыми пользоваться — моветон

граждане постоянно атакуют, требуя волшебства.
Да? Не слышал такого, можно пример где и какие именно граждане такого просят?)

когда нужно просто поменять какой-то параметр.
Вы на проде в рантайме меняете параметры? Ну что ж, у вас стальные яйца, но так никто не делает, обычно даже php приложение собирается в кубере с новыми конфигами в том числе, и уже «на горячую» один контейнер подменяется на другой, это вроде как общепринятая практика и стандарт, по крайне мере другого я не видел там, где есть хоть мало мальский один вменяемый девопс. А при таком подходе без разницы бинарник там, или миллиард конфигов, один фиг надо собирать контейнер содержимое которого не меняется
Pavel Zarubin
17 сентября 2022, 13:17
0
Ну и еще замечательная статья на эту же тему:
habr.com/ru/post/688548/
Pavel Zarubin
17 сентября 2022, 13:13
0
Пока этого вопроса даже не стоит, первоочередная задача сохранить — то, что есть сейчас
Pavel Zarubin
17 сентября 2022, 13:12
0
А ты на Go перешёл до PHP8
Я на го не «перешел», у нас в компании все еще большая архитектура, и PHP в ней занимает 70%, по этому я каждый день пишу и на том и на том :)
И да, мы стараемся поддерживать в актуальном состоянии всю инафраструктуру, по этому php актуальный и его фишки используются)) В php 8 нет ничего такого волшебного и замечательного, чтобы разделить эпоху до php 8 и после)))

Да перестань ты так хэйтить PHP.
Надеюсь сегодня допишу заметку по сравнению PHP vs Nodejs vs Swoole vs Go в круде, просто хочу объяснить что нет смысла конкретно привязываться к PHP, к тому же в рамках CMS, вы же не пишите практически код используя CMS, CMS — это законченный и полноценный продукт
Pavel Zarubin
15 сентября 2022, 22:41
0
Большое спасибо за столь развернутое мнение! В целом согласен полностью, но есть одно НО, ради которого и затевалась вся эта идея. Да, ты прав, 80% разработчиков — это не нужно, но ты не учитываешь тот факт, что 20% из последней категории задают все остальное развитие для тех 80%, создают инфраструктуру и улучшают и расширяют платформу, а их как раз modx и не уважает, именно по этому он растерял большую часть своей аудитории из тех 20%.
Я сужу по себе например, как только я научился +- программировать, как только технически вырос до того, чтобы создавать архитектурно серьезные дополнения с правильным кодом, с правильным подходом, с соблюдением PSR и ООП modx дал мне под сраку, как ты его не верти, как не крути, но ты постоянно упираешь в хреновые архитектурные решения, постоянно упираешься в отсутствие PSR, в хреновый установщик, в отсутствие нормального дебага и т.д.
Я думаю из тех, кто ушел, таких как я — большинство, этот след прослеживается по их коду и их компонентам, а без них не будет никакой инфраструктуры, не будет нормального магазина, не будет нормального билдера запросов, чтобы where было не сложно было писать, а также не будет производительных запросов, чтобы тикеты при 20000 через pdoTools не тупили. Так вот главная твоя мысль, как я понял, дорабатывай то, что есть. Но то, что есть устарело безумно.
Я правда пытался, года два назад сообщество взяло под контроль разработку modx 3, в то время я хотел переработать XPDO, разработать REPL утилиту, разработать аналог tinker'a для modx (был опыт внедрения в Yii, по этому четко понимал что хочу получить), нормальную ротацию логов и логирование в целом и еще много всего было в планах, прошла неделя, две, три, а я не код писал, я боролся с ужасным легаси, который невозможно не уничтожив переписать
Просто нужно признать что MODX устарел сильно безвозвратно, его надо уничтожить и создать копию с теми же идеями, но с нуля, а если писать с нуля, какой смысл делать это на PHP, который и сам все больше с каждым годом уходит в стагнацию, а nodejs и go оттяпывают куски обрастая сильным комьюнити и инфраструктурой
Pavel Zarubin
15 сентября 2022, 22:20
0
Для распараллеливания — есть корутины, для не умирания — Swoole с ReactPhp.
Это все доступно modx разработчику? Главный посыл — дать CMS разработчику современный инструментарий, для этого надо все разрушить и построить с нуля, а если все равно строить с нуля, то какой смысл это делать на медленном и глупом PHP? Все равно конечному пользователю CMS без разницы что там под копотом, главное сохранить идею и дать максимум возможностей от текущего развития веба
Pavel Zarubin
15 сентября 2022, 22:13
0
а на Go это будет очень многословно
Не более многословно, чем в текущей кодовой базе modx'a я думаю, к тому же, как ты правильно заметил, подобие ООП в го есть, только более строгое (запрет на рекурсивный импорт вводит свои коррективы), менее перегруженное (нет трейтов, наследование более простое (копирование методов и свойств), одна папка — один пакет, который не должен зависеть от других пакетов (запрет на рекурсивный импорт опять же))
Да и это в целом уже не забота конечного потребителя продукта все же

PHP достаточно неплохо со строгой типизацией
Она там не безопасная, как и на тайпскрипте например, только еще более не безопасная )))
Pavel Zarubin
14 сентября 2022, 15:01
+2
> Можешь прислать пример скрипта на Go и как его запустить на бегете?
Без проблем, я сейчас заканчиваю вторую заметку из цикла, отвечаю на вопрос «как и почему GO быстрее php в 10 и более раз не смотря на бенчмарки» (опять же по мотивам телеграмм-обсуждения), третья значит будет про деплой на самый обычный шаред, раз так сильно эта тема волнует)
Pavel Zarubin
14 сентября 2022, 14:58
0
для сайтоделов это слишком большой оверхед
Я думал на счет этого очень долго, сужу по своей компании: мы бы большое количество сервисов из тех, что у нас есть реализовали бы на CMS, но ни одна CMS не дает функционала, который нам нужен, а фреймворки — дают его слишком много, от чего разработка длится кратно дольше, чем если бы сервис был реализован на CMS
Я считаю, что у такой ниши, которым нужно что то среднее между CMS и фреймворком есть своя аудитория, но она молчит и делает сервисы на laravel на каждый чих подключая новую библиотеку и пробуя очередную бесполезную админку, потому что десяток других админок показали себя хреново

> go даже не скомпилирует бинарник
Лучше когда все заработает, как с PHP, зальется на прод, а потом окажется что в богом забытом модуле, который не упустили QA все отвалилось?)
Уж лучше пусть не компилируется) У го стектрейс даже более понятен, чем у PHP за счет отсутствия такого массивного ООП и магии, так что думаю это не большая проблема )
Pavel Zarubin
14 сентября 2022, 14:45
0
> на хостинг систему не поставишь
Почему? Я уже выше писал:
Golang — не питон, он не требует дополнительного ПО для запуска и компилируется в бинарник, подойдет любой шаред, где есть возможность запуска бинарника, всеми любимые шареды поддерживают эту функцию, тот же таймвеб/бегет и т.д., а на помойках в принципе не стоит размещать свой сервис.
когда в сообществе людей и так кот наплакал, аудиторию найти будет сложно
Возможно я сильно наивен, но помимо новой аудитории, я рассчитывал вернуть большое количество старой, ну или хотя бы их заинтересовать. От большинства тех, кто ушел с modx, я слышал что ушли только по одной причине — моральное устаревание, т.е. им нравится и идея, и парадигма и концепция modx, им не нравилось то, что под капотом

Но! Если решить архитектурные проблемы, когда MODX будет компонентным фреймворком, тогда отдельные системы можно переписывать на чем угодно, хоть на том же Go. И такой подход используется сейчас весьма активно в PHP мире. Когда базовая бизнес-логика описана на PHP, потому что есть ядро разработчиков, которые владеют знаниями и могут это нормально поддерживать. А критические подсистемы в плане нагрузки, пишутся на Go и внедряются на уровне отдельных сервисов. В таком случае это будет пушка-бомба!
А вот это очень интересная идея, не думал в этом направлении, спасибо, но это утопия, modx — монолит, который чтобы разбить — нужно приложить больше усилий, чем уничтожить и создать заново. Возможно я ошибаюсь и в третьей версии, что-то изменилось, ее я не щупал, но насколько слышал — нет
Pavel Zarubin
14 сентября 2022, 14:37
0
> уже не подойдёт обычный шаред
Кто вам такое сказал? Golang — не питон, он не требует дополнительного ПО для запуска и компилируется в бинарник, подойдет любой шаред, где есть вомзожность запуска бинарника, всеми любимые шареды поддерживают эту функцию, тот же таймвеб/бегет и т.д., а на помойках в принципе не стоит размещать свой сервис.

> интересно сколько разрабов работающих с modx готовы перейти в ряды go разработчиков.
Большинство modx разрабов и php то не знают, и это не плохо, для большинства modx разрабов ничего не поменяется в корни, а работа с апи cms может быть практически одинаковой.
Pavel Zarubin
13 сентября 2022, 21:45
+1
> У вас будет эта проблема решена?
Golang компилируется в один файл, все что вам нужно для деплоя, залить этот файл на хостинг, нет ни конфигов, ни кучи файлов, вместе с CMS будет идти утилита деплоя, через которую вы сможете залить изменения одной кнопкой и/или командой, соответственно все изменения храните хоть в гите, хоть где либо еще)

> И что конкретно вас так вставляет в админке Modx?
В первую очередь это конечно же дерево ресурсов, возможность перейти из любой точки, в любую другую парой кликов, для заказчика это очень удобно, т.к. он видит структуру сайта наглядно, а также может ее поменять обычным перетаскиванием.
Также очень нравится идея что все есть ресурс и это «все» также видно в дереве)
Pavel Zarubin
13 сентября 2022, 15:52
+4
В телеграмм чате с активной аудиторией пришли к мнению что у такого решения ЦА — не modx разработчики, modx разработчикам не нужны все эти многопотоки, очереди, скорость и т.д., modx разработчикам нужно чтобы они в админке смогли на проде наклацать сайтик, да на хостинге его развернуть одной кнопочкой. Видимо, они правы, ушла эпоха и что то «среднее» людям не надо, либо за очень дорого делаем на фреймворке, либо за очень дешево делаем на cms заливаем и забываем. Возможно они и правы, от своей идеи не отказываюсь, оставлю этот спич на всякий случай, вдруг кто что умное скажет, но при проектировании системы ориентироваться на комьюнити modx уже явно не буду.
Хочу выразить благодарность всем выразившем свое мнение и участвовавшим в дискуссии, всех с праздником!
Pavel Zarubin
06 июня 2022, 03:07
0
modx.pro/components/19348 я хз насколько он сейчас рабочий но с десяток сайтов я им правил
Pavel Zarubin
26 февраля 2022, 16:11
0
Нет, обычный полнотекстовой поиск, там не такие товары и не такой заказчик чтобы заморачиваться с фильтрами и фасетным поиском) Наверное первый, кто дойдет до задачи фасетного поиска на этом проекте, просто перетащит его на какой нибудь условный ларавель, чтобы не иметь в будущем проблем)))
Pavel Zarubin
25 февраля 2022, 20:11
0
Все стандартно, кроме прикрученного эластика для поиска все нормально справляется если к этому вопрос )
Pavel Zarubin
24 февраля 2022, 19:16
0
примерно так будет.
Ну вот об этом я и говорю, какой смысл использовать тогда newQuery если все то же самое и в таком же количестве можно написать напрямую в SQL?

getCollection, который предназначен не совсем для подобных дел
А для каких дел он тогда предназначен, если не может построить оптимальный запрос?

когда стоило последний сравнивать с более подходящим конкурентом – newQuery.
Не знаю, я все таки считаю что сравнивать с newQuery не корректно, newQuery просто транслирует php команды в SQL код, он не автоматизирует ничего и не упрощает
Pavel Zarubin
24 февраля 2022, 17:57
0
Я ж и попросил показать код на newQuery, мне не очень понятно зачем я должен его использовать, если я могу написать то же самое по объему и сложности на обычном SQL
Pavel Zarubin
24 февраля 2022, 17:55
0
Очевидно что не будет, а еще она также будет минимальна если все эти лефт джоины прописать руками в mysql, только вот newQuery так себе билдер
И код на newQuery будет скорее всего похож по количеству и структуре на выходной SQL
почему сравнивается getCollection, а не с newQuery
Потому что в случае с getCollection не надо джойнить tv, а можно их получить через getTVValue через модель собственно
Pavel Zarubin
24 февраля 2022, 17:20
0
Я честно говоря уже настолько долго не работал с modx что понятия не имею что за newQuery, если есть возможность и время, я был бы рад увидеть пример подобного запроса на newQuery, если там надо руками джойнить таблицы с тв, то какой в нем смысл по сравнению с написанием обычного SQL?
Главная причина почему пришлось писать билдер, это адская структура таблиц тв полей и сложность джоина каждого из параметров