All streams
Search
Write a publication
Pull to refresh
-18
0
Артем @anydasa

php, sql, js, scss, html — все в одном

Send message
Не уверен что я правильно вас понял.
Вы описали так джоб, где композер инсталирует зависимости
deps:php-composer:
    stage: deps
    image: covex/php7.1-fpm:1.0
    script:
      - echo ...
      - composer install --prefer-dist --no-scripts --no-autoloader --no-interaction

Но это не боевой контейнер, а «covex/php7.1-fpm:1.0», вы ведь когда будете изменять php docker image (тут) образы могут быть разные. Вы тестируете не тем образом что будет в продакшене
Не могли бы вы детальнее расказать, для чего для каждого разработчика свой репозиторий? Что заставило прийти к такому подходу?
и возможно, такой pipeline возможно тогда будет лучше

build — создаем контейнеры и пушим в Registry
deps — используем созданные контейнеры из Registry
test — используем созданные контейнеры из Registry

Кстати, ведь для тестов вероятно нужны будут зависимости, но так как это другая джоба, то зависимостей не этапе теста нет. Тут наверное нужно объеденить deps и test в одну джобу?
правильно ли я понял, что мы не можем тут провести тесты, которым требуется DataBase?
мне кажется, что лучше на job-ах deps:php-composer и test:phpunit лучше использовать реальный php контейнер. Ведь если мы добавим в composer.json зависимость, которому будет необходим какой то экстеншн то тесты на зависимость уже не пройдут. Та же ситуация с phpunit, но тут еще и настройки php добавляются.
Актуальная тема! Спасибо!

Скажите, используете ли вы проверку кода (CodeSniffer)? Как вы считаете, уместно ли проверять код именно тут. Ведь на сколько я понимаю, если код не прошел проверку, то его просто вообще нельзя запушить на сервер.
Поправте плз текст ссылки

С инструкцией по установке GitLab CI Runner можно ознакомиться на сайте docs.docker.com.
можно и так, только для чего? вопрос не полон.
Kandy, ваш вариант тоже предполагает что набор фильтров может быть динамическим, и с любым количеством?
Спасибо за вопрос. Он меня натолкнул на размышление. Вообще я не гуру, и даже не спец SQL. Просто данное решение работает очень быстро. Что мне собственно и нужно. Хотелось бы все знать, но увы. Человеческий ресурс.

Вопрос к знатокам.

Делаю запрос, поле filters, которое как помним INTEGER[].
SELECT * FROM products WHERE filters @> ARRAY[7267]

Если индекса, нет
Seq Scan on public.products  (cost=0.00..20.38 rows=1 width=68)
  Output: id, title, filters
  Filter: (products.filters @> '{7267}'::integer[])

Индекс, GIST (gist__int_ops)
Index Scan using products_idx on public.products  (cost=0.14..8.16 rows=1 width=68)
  Output: id, title, filters
  Index Cond: (products.filters @> '{7267}'::integer[])


Индекс, GIN (gin__int_ops)
Bitmap Heap Scan on public.products  (cost=8.01..12.02 rows=1 width=68)
  Output: id, title, filters
  Recheck Cond: (products.filters @> '{7267}'::integer[])
  ->  Bitmap Index Scan on products_idx  (cost=0.00..8.01 rows=1 width=0)
        Index Cond: (products.filters @> '{7267}'::integer[])

Не тот ли это битмап, о котором вы спрашиваете?
Вы поняли верно.

Вообще если говорить о фильтре для каталога магазина, то эти ползунки менее привлекательны, т.к. много движений делать нужно.

Если магазин токовый, то набор фильтров для определенной категории, тщательно продумывается.

Для пользователя гораздо легче просто кликнуть чем думать о том что указать. Тем более если он не в теме.
ползунки не получится.
Если взять в пример, хотлайн или фотос, то там фильтр это запись в бд. Это может быть range или нет, это вообще не важно. Фильтр для товара, на уровне базы, это просто метка. На проекте где я реализовал такой поход, есть дополнительные обработчики, которые определяют в какой фильтр должен входить товар и автоматически назначают его.
Я не спорю в целом. А конкретно в данном случае, фильтры это записи в таблице. т.е. у них есть ID:INTEGER.
Поиск по инту быстрее чем по строке, пусть и полнотекстовым поиском со всеми умными индексами.

а что до «какие значения фильтров есть у найденных товаров?», ну тут мы тоже имеем айдишки на выходе.
Полнотекстовым поиском конечно можно решить эту задачу. Как можно и отверткой копать землю.

Information

Rating
Does not participate
Location
Новая Каховка, Херсонская обл., Украина
Date of birth
Registered
Activity