Иван Климчук

Иван Климчук

С нами с 16 декабря 2012; Место в рейтинге пользователей: #4
Иван Климчук
02 июля 2020, 02:27
+1
Кстати, тут еще вспомнил, что когда колупал различные скелеты и мануалы по Slim 4, встретил интересный паттерн ADR (Action, Domain, Responder). Это из теорий о гексагональной архитектуре, паттерн сам по себе достаточно спорный и многословный, хотя архитектурно хорош и сделан специально для backend сервисов.
Хотел узнать твое мнение на этот счет.
Иван Климчук
30 июня 2020, 14:42
+5
Смотрел, шчупал (как говорит наш пока президент), но остались двоякие чувства. Для старта заготовка хорошая, но есть пару моментов, которые смущают. Никогда не поздно отправить PR, но сначала подсвечу это тут, чтобы понимать, не нарушает ли это концепцию в целом.

Первое, что меня смутило, это метод process, который нужно явно определять в тех же роутах, вместо `__invoke()`, при использовании которого можно передать просто имя класса.

Второй пункт просто вопрос. Классика миграций — это up/down, но пробовал ли change у phinx? Пишут, что он умеет сам определять, что нужно откатить. И тут в довесок брюзжание на тему, что в одной миграции две таблицы описаны, а лучше бы разделять сущности (имхо).

По толстым контроллерам и нарушением правил по service layer в целом понятно и принято, сделать близко к логике MODX, хоть и не канонично :) Но главное работает.

По github.com/bezumkin/vesp-example кстати, можно поставить в настройках репозитория галочку Шаблон, будет удобно сразу себе в репу утащить и потом просто клонировать уже готовый код, чтобы не возиться с созданием, клонированием, прописыванием remote и тд.

В остальном неплохой инструмент получился, лайк!
Иван Климчук
23 апреля 2020, 09:47
0
Ты можешь воспринимать это как придирку, твое право. И это твоя система, ты за нее в ответе. В то же время ты сам упоминал, что у вас есть окружения, которые настраивали матерые devops, на k8s и прочем непотребстве и там все намного серьезнее и аккуратнее и ведь неспроста это так, согласись?
Я по стечению обстоятельств тимлидствую ещё и над несколькими девопсами и мои рекомендации и замечания основаны на определенном практическом опыте этих людей.
Иван Климчук
23 апреля 2020, 01:09
0
Зная, что у тебя везде доступы одинаковы, ничего не мешает, утилизируя уязвимость код на php (а они в общем-то могут быть), узнать креды подключения БД и получить полный доступ над системой, а то и всеми твоими проектами сразу. А ты эту информацию уже публично раскрыл. Технически да, они изолированы внутри, но если это продакшен, то лучше так не делать.
Иван Климчук
23 апреля 2020, 00:22
0
Глянул в код, вынужден ругаться.

docker system prune -a и прочее — это ж если какие другие окружения на докер подняты, грохнет все к херам. Нельзя так, даже если очень хочется. Я б за нож взялся, случись у меня такое. Хоть это и makefile для удобства, но я бы ограничивал бы его областью конкретного окружения, то есть управлять только тем, что описано в docker-compose.

Делать дампы БД, когда в docker есть data-volumes, которые в случае с mysql работают просто как часики (чего не скажешь о postgress) — выглядит крайне крипово. Они сторят файлы БД на локальной машине, сам сервер — в контейнере. При перезапуске данные всегда на месте. Тем более, что конфиги ты через них уже пробрасываешь.

Остальное уже придирки. Инструмент задачу решает — уже хорошо.
Иван Климчук
23 апреля 2020, 00:11
0
Хехе. Те же детские болезни, что у меня в начале. Возня с hosts и nginx-proxy.
Я решил эту проблему, подняв вместо nginx-прокси Traefik, который отвечает за резолвинг локальных доменов, причем он умеет в нормальный https и позволяет декларативно прописывать домены прямо в docker-compose.yml. А чтобы не возиться с хостами, я сделал локальную доменную зону через dnsmasq.
В ближайшее время выкрою время и допишу парочку своих заметок на эту тему.
А вот насчет того, что креды у БД везде одинаковы, это все же небезопасно, даже если крутится в контейнерах.
Иван Климчук
30 октября 2019, 12:03
0
А можно посмотреть в сторону traefik.io/ и забыть про nginx-proxy и секс с портами навсегда ;)
Иван Климчук
18 сентября 2019, 13:11
0
Пока нет, но планируются. Не скажу, что без них совсем сложно. Местами, конечно, было бы удобнее, но задачи успешно решаются и без них.
Иван Климчук
18 сентября 2019, 11:32
0
Потому что простой, без лишнего мусора и сука быстрый. И еще параллельность из коробки, с которой первоклашка разберется. Ну и очень строгие правила, говнокод даже не скомпилится.
Иван Климчук
18 сентября 2019, 11:22
+1
Это ты на golang не писал, там тебе даже дуло в ногу направить не позволят, не то, что выстрелить :)
Иван Климчук
11 сентября 2019, 11:09
+4
За белорусский язык спасибо!
Иван Климчук
31 июля 2019, 02:24
+2
У меня нет ответа на этот вопрос, я не зацикливаюсь на конкретных инструментах. При случае, если так будет быстрее/дешевле/удобнее, выберу MODX без зазрений совести. Лично я собираюсь развиваться в сторону управления людьми — Team Lead с перспективой CTO (это другие навыки, не код). Относительно кода — предпочитаю PHP+Golang.
Иван Климчук
09 июля 2019, 09:30
+5
На голой установке без оптимизаций не вывезет. Ну и несколько миллионов — тут следует уточнять, потому что 2 и 20 млн — это все несколько, но разница между цифрами большая.
Иван Климчук
23 мая 2019, 11:38
0
Я исхожу из того, что у вас описано в вопросе, что у вас там еще накручено дополнительно, я не знаю и знать не могу, поэтому это уже вам решать. Написано было, что количество задается метрами, без всяких count. А следовательно можно купить либо 0.5 м либо 1.5 метра. Это дроби, но ничего не мешает указывать в поле количество сантиметры, как и цену выставить за сантиметр, тогда вообще ничего менять не нужно, кроме форматирования на сайте (там да, нужно будет цифры разделить на 100, цену — уможить на 100).
Иван Климчук
22 мая 2019, 09:31
+1
Есть еще вариант перевести метры в сантиметры и не усложнять себе жизнь, но на фронте где нужно, записывать их как метры (если это критично).
Иван Климчук
15 мая 2019, 12:26
+1
Так вот со Stripe и беда, потому что они дают просто виджет на JS, который нужно впиндюрить на свой сайт, а там хоть и iframe, снифать не проблема ввод с клавы. В случае перехода на защищенную страницу такой проблемы нет.
Иван Климчук
15 мая 2019, 10:59
+9
Эм, а зачем на сайте запрашивать данные карты? Ну я к тому, что есть системы оплаты, которые проходят сертификацию и аудит по PCI DSS и которым можно доверять (больше чем сайту) и все платежи обрабатывать путем отправки пользователя на эти страницы, не процеся у себя ничего.
Иван Климчук
15 мая 2019, 10:13
0
В логах все и написано, открывайте файл указанный в логе, распознавайте, что это за снипет и исправляйте свои ошибки.
Иван Климчук
14 мая 2019, 17:18
0
Как правило (и это де факто стандарт в разработке) конфиги не синхронизируют при деплоее, т.е. их выносят в исключения в git и других системах контроля версий и так далее. В вашем случае тоже стоит добавить их в исключения и не синхронизировать, следовательно локально и на сервере это будут разные файлы. Менять в процессе разработки вы их тоже не станете, ибо нет нужды. Ну и научитесь то уже MODX писать правильно. :)