Задать вопрос
  • Сайт под большие мониторы/расширения?

    Serj-One
    @Serj-One
    i'm sexy and i know it
    заметила, что все даже самые современные сайты выглядят так "скукожено".

    И правильно. Сконцентрированную информацию воспринимать проще и удобней, чем размазанную по огромному экрану. Не надо ничего "раскукоживать" без острой необходимости.
    Ответ написан
    Комментировать
  • Как правильно найти нужное слово регуляркой (JS)?

    RAX7
    @RAX7
    console.log(value.replace(/\bJava\b/g, 'Python'));
    Ответ написан
    Комментировать
  • Структура базы данных магазина/каталога для SQL. Как лучше хранить атрибуты и их значения в БД?

    Я в подобной ситуации, использовал поле с типом JSON. Т.е. содержимое такого поля у одного товара может быть таким: [ "color" : black, "size" : 42, "gender" : "male", "season" : "winter"], а у другого следующим : [ "color" : black, "size" : 42, "kind" : "mountain", "sole" : "vibram"]. Нынешний MySQL позволяет по таким полям осуществлять поиск, а в ЯП имеются функции по раскодировке JSON в обычный массив.
    Ответ написан
    1 комментарий
  • Структура базы данных магазина/каталога для SQL. Как лучше хранить атрибуты и их значения в БД?

    @dimoff66
    Кратко о себе: Я есть
    1) Не очень понятно назначение таблицы product_value, допустим у вас есть товар Куртка зимняя, у него есть два варианта (цвет: черный, размер: 42), (цвет: красный, размер: 43), и что будет в таблице?
    Четыре записи:
    Куртка зимняяЦвет черный
    Куртка зимняяЦвет красный
    Куртка зимняяразмер 42
    Куртка зимняяразмер 43


    И как вы определите, как эти свойства соотносятся и главное как вы это будете использовать?
    У вас же будут вноситься данные по продажам?

    Назначение этой таблицы в таком виде непонятно, я бы предложил сделать таблицы

    attributes_sets (модификации товара)
    • id
    • product_id
    • title


    и

    attributes_sets_values (значения свойств данной модификации)
    • attributes_set_id
    • value_id


    Тогда получится таблица вида

    Куртка: вариант 1 Цвет черный
    Куртка: вариант 1размер 42
    Куртка: вариант 2 Цвет красный
    Куртка: вариант 2размер 43


    и в таблицах с движениями товаров можно указывать просто id модификации, которая и будет содержать полную информацию о включенных в него значениях атрибутов.

    Также можно писать в поле title таблицы attributes_sets значения модификации через запятую "черный, 42", это упростит вывод информации о модификации в отчетах.

    2) В product_value(или attributes_sets_values, если примените пункт 1) можно добавить поля attribute_id, value_int, это позволит для числовых атрибутов не задавать заранее список значений в values, а сразу указывать числовое значение

    3) Цены лучше не хранить в товаре, а сделать отдельные таблицы

    price_types: id, name
    prices: price_type_id, product_id, set_date, price

    Это позволит назначать товару разные цены в зависимости от всякого рода условий, можно также добавить в prices поле user_id, чтобы не возникал вопрос кто поменял цену
    Ответ написан
    1 комментарий
  • Структура базы данных магазина/каталога для SQL. Как лучше хранить атрибуты и их значения в БД?

    @stratosmi
    Неверно в корне.
    Вы нарисовали по сути EAV (есть такая готовая схема данных под эту задачу - погуглите, примеров много).

    Плюсы:
    Удобно ложиться в реляционную модель, удобно программируется (если вам удобно работать с реляционной моделью), на первый взгляд хорошо подходит под любую реляционную СУБД (MySQL, PostgreSQL, Oracle).

    Минусы:
    Неоправдано малоэффективно по производительности.
    Есть решения на порядок более быстрые.

    Впрочем, если у вас каких то жестких требований на производительность или на минимизацию затрат на сервер - годится.

    По мне так EAV удобен как средство редактирования (ну и хранения первичной информации).

    А вот собственно сам поиск гораздо эффективнее осуществляется на full-text search engines, например:
    SphinxSearch (или его клон Мантикора), ElasticSearch и т.п.

    И чем по большему количеству фильтров идет поиск - тем больше этот разрыв (хотя он и по одному фильтру уже весьма заметен).

    В наиболее развитых full-text search engine поиск по свойствам является "дешевой" операцией, совершенно совместимой с основным полнотекстовый поиском.

    Более того, работа с множественными фильтрами по свойствам в этих движках даже проще полнотекстового поиска (так как фильтры не нужно разбивать на слова, прогонять через алгоритм стемминга с его возможными косяками - они уже "готовы к употреблению" сразу).

    Бонусом практически "бесплатно" получаете т.н. "фасеточные итоги", отвечающие на вопрос "сколько у нас товаров с таким то свойством" (это часто используется в отображении фильтров на сайтах).

    ====================

    Вывод:

    Если вам принципиально на MySQL - просто см. описание схемы данных EAV. Она как раз именно что для этого.
    Если вам нужно чтобы все летало - см. SphinxSearch (он крайне быстр и нетребователен к ресурсам).

    P.S.:
    SphinxSearch
    Умеет выдирать данные из MySQL. На их основании строит уже свой собственный узкоспециализированный но очень быстрый поиск для выборок, в вашем случае, по названию и по свойствам товаров.
    Ответ написан
    4 комментария
  • Где удобно хранить куски кода?

    Vadiok
    @Vadiok
    Веб разработчик
    Хранить в на Gist.GitHub, но пользоваться для этого Lepton.
    Еще вариант Code Notes.
    Ответ написан
    3 комментария
  • Правильно ли сделана авторизация?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    современный подход, отдавать авторизационные данные пользователя зашифрованными в виде токена, ключ для расшифровки хранится в памяти, и ничего не ищется в БД и ни с чем не сравнивается, при запросе расшифровываются данные токена, и решается давать доступ или нет на основе его токена (в токене записанно какие у пользователя есть разрешения), что позволяет убрать нагрузку с БД и неограниченно масштабировать функциональность по серверам, тк каждый сервер имеет для расшифровки один и тотже ключ, в случае же проверки данных в единой БД, масштабирование упрется в производительность этой БД.
    Ответ написан
  • Правильно ли сделана авторизация?

    miraage
    @miraage
    Старый прогер
    Я бы возвращал 401 ошибку при кривом/удалённом/отсутствующем токене.

    Можно еще писать не один токен, а несколько (чтобы можно было с разных браузеров/девайсов авторизовываться).

    При загрузке приложения я бы посоветовал посылать запрос на получение текущего юзера по токену. Если вернется 401, значит пользователь не авторизован. Если при этом токен остался на клиенте (например, localStorage), то его надо удалить.

    В целом, стандартный подход.
    Авторизацию я бы еще посылал не через MYPRIVATEHEADER, а как "Authorization: Bearer 2398mv59023m5v32".
    Ответ написан
    2 комментария
  • Правильно ли сделана авторизация?

    sitnikovik
    @sitnikovik
    Веб-разработчик
    С хэшом все правильно. Можно еще класть в куки этот хэш, чтобы при закрытии сессии авторизация сохранялась. И последовательно проверять при открытии сайта, сначала переменную сессию потом куку. Если в куке нет хэша то юзер точно вылетел))

    А при принудительной деавторизации можно сделать так. Ты в индекс файле проверяешь авторизован ли юзер или нет. При каждой заходе на сайт ты сравниваешь хэш в браузере с хэшом базы. Если разные то - просишь авторизоваться снова.
    Ответ написан
    Комментировать
  • Почему востребован Java?

    Потому что Enterprise. Потому что огромные приложения. Потому что относительно проще аналогичных языков. Потому что множество готовых решений и уже написанных приложений. Потому что Android.

    Откуда такие знания про крайне низкую скорость выполнения? В моей практике Java медленнее C++ не более, чем в 2 раза, но в большинстве случаев сопоставимо с C++.
    Ответ написан
    2 комментария
  • Почему востребован Java?

    Foror
    @Foror
    Графоман
    >причина популярности Java
    Как-то так:

    - простой синтаксис, без лишних сложностей - я лет 8 на С++ не програмил, но в последнее время, бывает гляну на С++ код и просто тихий ужас :) А альтернатив С++ просто нет, только Java. Нет, конечно есть всякие Rust, D, но это пока для гиков поиграться.

    - удобная организация библиотек и качественные инструменты для управления зависимостями (остальные только-только начинают догонять) => без головняков собирать большие проекты и подключать сторонние либы

    - проработанная и шустрая многопоточность, в том числе так называемые goroutine, особенно в последних версиях (7-8)

    - JVM, на которой можно легко програмить на Scala, Groovy, Python, Ruby, JavaScript, Kotlin, Ceylon и т.д. и т.п. Если не нравится синтаксис Java. При этом то, что запрограмил на Python будет доступно из Java, и наоборот. Это очень круто. Но все еще высок порог входа, чтобы управлять всем этим хозяйством. Я вот, как раз пилю кое-что в данном направлении, чтобы обрушить этот порог :)

    - Android

    - (Инди) игры (Minecraft, Delver, Lineage - тысячи их)

    На десктопах Java нет, лишь из-за C# и Windows, а так посмотрите InteliJ IDEA 13 это пример насколько может быть сексуальным десктопный интерфейс на Java.

    И еще, те кто пытался писать на Ruby, затем переделывали на Java/Scala, т.к. 1 сервер на Java, проще, чем 10 серверов на Ruby при той же нагрузке.

    >скорость выполнения программ крайне низкая
    Это миф, тянущийся из бородатых 90-х. Современные HTTP серверы построенные на Java по производительности на уровне C/C++ реализаций. Но памяти конечно жрут больше, но это отдельная тема и в наше время это не такая уж и проблема.
    Ответ написан
    1 комментарий
  • Как сделать такие контуры у блоков?

    Vlad_IT
    @Vlad_IT Куратор тега CSS
    Front-end разработчик
    Я хотел сначала дать решение, но после последнего абзаца
    Помогите пожалуйста специалисту, который только возобновил работу после 3 лет декретного отпуска:)

    подумал, что вам будет очень полезно самой почитать и разобраться https://css-tricks.com/building-progress-ring-quickly/
    Эта штука называется по разному - radial progress, ring, progress, cyrcle progress, просто гуглите это название с добавкой "css", найдете много материала.
    Ответ написан
    5 комментариев
  • Как сделать такие контуры у блоков?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Чуть проще и понятнее: тут и тут

    PS: И бонус, как всегда: тут.
    Ответ написан
    2 комментария
  • Как в Crome DevTools можно просматривать все события страницы?

    @xtress
    Web-dev
    Выполните в консоли monitorEvents(document.body); Увидите все события по мере их появления. Если надо фильтровать - второй аргумент для этой функции: monitorEvents(document.body, 'click'); - покажет все клики.
    Ответ написан
    3 комментария
  • IT-шник на дому, а-ля фрилансер должен регистрироваться как самозанятый гражданин?

    @Drno
    ПО закону вы должны ть оформленны и у них на юр лице как сотрудник или как ИП.
    КОгда введут самозанятых - то или ИП или самозанятый.
    Перестаньте деньги на карту получать,берите наличкой... Вы же в ИТ, должны понимать последствия...

    Вторая часть.
    А какой смысл регистрироваться? Никаких бонусов кроме отбора государством у Вас денег это Вам не принесет... Ни помощи какой либо, ни выдачи кредитов, ничего. ПОэтому смысла я лично не вижу никакого
    Ответ написан
    16 комментариев
  • Как правильно подставить url адрес до изображения?

    0xD34F
    @0xD34F Куратор тега Vue.js
    <img :src="comment.comment_image">
    Ответ написан
    Комментировать
  • Как правильно подставить url адрес до изображения?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    В Vue свойства подставляются через bind
    <img bind:src="comment.comment_image"/>
    или просто
    <img :src="comment.comment_image"/>
    Ответ написан
    Комментировать
  • Какой посоветуете фреймворк для создания конструктора?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Для тасканий картинок по канве
    https://konvajs.github.io/
    fabricjs.com
    https://two.js.org/
    Легковесное gui
    https://svelte.technology/
    Если результирующее изображение потребуется сохранять
    https://github.com/eligrey/FileSaver.js/
    Ответ написан
    1 комментарий
  • Какие есть бесплатные сервисы для обработки изображений для портфолио?

    Гугл -> PSD Mockups
    Ну и фотошоп, разумеется.
    Ответ написан
    Комментировать
  • Как в однофайловых компонентах Vue передать props?

    0xD34F
    @0xD34F Куратор тега Vue.js
    export default {
      data () {
        props: ['a'],
        return {
          qwe: "Привет 2"
        }
      }
    }

    Это шизофрения какая-то. Наверное, имелось в виду

    export default {
      props: ['a'],
      data() {
        return {
          qwe: "Привет 2"
        }
      }
    }
    Ответ написан
    Комментировать