Задать вопрос
  • Как систематизировать изучение JS?

    Stalker_RED
    @Stalker_RED
    Если это не первый язык, то основы синтаксиса вы быстро освоите.

    Затем встроенные методы работы со строками, массивами, объектами. Это не обязательно зубрить, какой-нибудь Array.forEach и так рано или поздно усвоится, но желательно знать какие вообще методы бывают и где о них почитать подробнее.

    Приведение типов немного отличается от PHP, надо привыкнуть.

    Дальше всякие специфические js штуки, типа замыканий и странноватого this, с ними можно долго возиться.

    Асинхроность отдельным пунктом.

    Потом (или параллельно) браузерный API и DOM. Объемы там в разы больше чем собственно в языке, но для повседневной работы нужно далеко не все, тут тоже важно понять какие возможности существуют в принципе, и где примерно в справочнике их найти.

    И затем фремворки и библиотеки.

    Естественно вы можете немного переставлять эти пункты местами и что-то изучать параллельно, но у вас не получится изучить Vue до того, как освоите основы синтаксиса.

    Учебник https://learn.javascript.ru/ неплох, но можно почитать и бумажную книгу какую-то.

    Отдельные темы неплохо расписаны на mdn, но все-же это в первую очередь крутой справочник, а не структурированный учебник.

    Основы языка можно потренировать на codewars. Очень круто, если решаешь задачу не подглядывая, а потом сравниваешь свой код с топовыми ответами и разбираешься почему у них 7 строчек, а у тебя 30. Но надо вовремя остановиться и не увлечься написанием всякой нечитаемой фигни.
    Ответ написан
    1 комментарий
  • Как грамотно построить и организовать сетку сайтов?

    RotgarSett
    @RotgarSett
    SEO Эксперт
    — как правильно делать по 30-50-100 сайтов с точки зрения дальнейшего продвижения? один из вариантов: сделать "главный сайт", а на каждый город делать поддомен. какие бывают ещё варианты?


    Если сайт коммерческий и "белый", а не дорвеи, то делайте именно так как написали, то есть один основной сайт и поддомены по разным городам. Можно сделать разделение внутри папок или изменять контент в зависимости от выбранного города на основном домене, но на практике именно поддомены лучше всего работают.

    — как эффективно этим всем управлять, например в WP?

    Есть плагины позволяющие делать хорошее разделение на поддомены во многих CMS.

    — как правильно организовать бэкенд под огромное количество поддоменов и что вообще нужно учесть?


    Снова вам нужен хороший плагин и консультация грамотного сеошника.

    — стоит ли делать ли всё на 1 хостинге?


    Если проект "белый" то да, можно делать все на одном хостинге.

    — на 95% одинаковый контент не будет причиной бана? какая есть лучшая практика с точки зрения SEO?


    Не будет.

    — какие лучшие практики вы знаете по построению сеток сайтов?


    У вас не сетка, у вас региональное разделение по поддоменам. Сетка - нечто иное.
    Ответ написан
    Комментировать
  • Как грамотно построить и организовать сетку сайтов?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    1. а почему именно wp? Когда 1 блог - понятно. Но при сложной кастомной структуре готовая cms может оказаться ошибочным выбором.
    2. как можно что-то обсуждать при абстрактном "сайт". Где конкретика, взаимосвязи и различия сайтов?

    По сути Ваш вопрос звучит так "Я тут решил кое-что сделать, главное что пока в одном экземпляре, но потом будет много. Решил использовать лобзик. Как думаете пойдет и какую фанеру лучше брать?"
    Как тут ответить? Вы объясните что именно делать будете. "Сайт" - это ни о чем. Вам или лень описывать или Вы вообще не понимаете, что делать будете.
    Ответ написан
    5 комментариев
  • В чем ошибка в методе reduce()?

    RAX7
    @RAX7
    Начальное значение для суммы не указал
    let array = [-2, 0, 1, 2, 3];
    let result = array.reduce(function(sum, element, index, thisArray) {
      if(element >= 0) {
        return sum + element;
      } else {
        return sum;
      }
    }, 0);
    console.log(result); // 6
    Ответ написан
    Комментировать
  • В чем ошибка в методе reduce()?

    Vlad_IT
    @Vlad_IT Куратор тега JavaScript
    Front-end разработчик
    Последним аргументом у reduce иде стартовое значение sum, если оно не установлено, то берется нулевой элемент массива, и итерация начинается с первого. Поставите там ноль.
    Ответ написан
    Комментировать
  • Как вызвать окно Save As?

    Stalker_RED
    @Stalker_RED
    Вот готовый демо-пример. Только здесь xml а не csv, первые три строчки нужно будет подправить.
    Ответ написан
    5 комментариев
  • Какой язык подойдёт для бекенда web-приложения?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer

    Язык должен быть компилируемого, а не интерпретируемого типа.
    Он должен быть кросс-платформенным (windows, linux) и не вызывать проблем при работе ни на том, ни на другом.

    Почему?
    Современные интерпретируемые java и python, да и php уже догоняет уже не совсем интерпретируемые, и используют jit компиляцию. По скорости уже вполне норм.

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

    Тонны легаси и проприетарщины тянет не язык, а программист.
    Судя по вашим требованиям и оверхед подходу к выбору языка, вы только ТЗ будете писать месяцами. А к тому моменту, как вы выпустите в продакшн само прилжение, оно уже станет легаси.

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

    А как зависит "течь" от языка? Это зависит от криворукости программиста.

    Должно быть более-менее легко производить дебаг, в том числе желательно и удалённый.

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

    Быстродействие. Не то, что бы у меня хай-лоад, но я хочу, чтобы быстродействие моего кода больше зависело от меня, нежели от языка.

    Быстродействие всегда и зависит от программиста..

    Вообще, может быть рассмотрите ассемблер? На нем даже веб сервер уже есть написанный, и стандарты в нем есть, и компилируемый, и программа в нем точно занимает ровно столько, сколько вы ей дали.
    Ответ написан
    7 комментариев
  • Файл или база данных?

    DevMan
    @DevMan
    БД нужна там, где данных реально много и/или ими нужно оперировать.
    Логи можно хранить и в файле (настроив ротацию) и в бд. Просто потому, что данные из логов достаточно редко анализируются.
    Ключи для продажи сторятся в базе тупо для учёта, чтоб каждому Васе можно было показать какие ключи он купил.

    Ну и вишенка на торте-бд это частный вид файлов.
    Ответ написан
    Комментировать
  • Какие языки учить для бекенд-разработчика(web)?

    Студент it(математического, эконом) универа - java/.net
    Живешь в Москве/Питере/Киеве/Минске - java/.net/python
    Живешь не в столицах - php
    Нет профильного образования - php
    Дофига лет - php
    Хочешь найти работу - php
    Хочешь писать асинхронные прослойки для веб-служб - node.js
    Хочешь писать хорошие асинхронные прослойки для веб-служб - Go
    Достала жена и дети, хочется сидеть заниматься делом и пить пиво после работы с мужиками - Java
    Достала жена и дети, хочется сидеть заниматься делом и пить пиво после работы, и потрахивать баб за 35 - .Net
    Ты не такой как все, ты личность, ты человек - Ruby
    Хочешь свалить в Канаду, США, Австралию - java/.net/python
    Ответ написан
    6 комментариев
  • Как реализовать это на чистом javascript?

    @hurgadan
    document.getElementById('acting').onclick = function() {
      document.getElementById('zakaz').setAttribute('action', '/zakaz.php');
    }
    Ответ написан
    Комментировать
  • Какая есть админка без БД?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    Делать магазин без базы данных - говно, конечно, идея. Но.

    eecommerce.ru/?p=3003
    heeg.ru/index.html
    Возможно, пригодится, на чистом JS. Есть в нем что-то интересное.
    Ответ написан
    Комментировать
  • Как правильно найти нужное слово регуляркой (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 комментария