Задать вопрос
  • Указывать ли нерелевантный опыт в резюме?

    @luna3956
    Ваш опыт на "не айти" работе в любом случае будет отражен в трудовой, поэтому делать из этого тайну смысла нет. Помимо этого, тот факт, что Вы где-то проработали 3 года, пусть и не в IT, является огромным плюсом, поэтому не указывать этого было бы упущением.

    Что касается 2х недель отработки - помню в молодые годы тоже переживал из-за этого) Поверьте, кроме студентов впервые устраивающихся на работу, почти все остальные ищут работу еще до того, как уходят с текущей и это нормальная практика. Подождать кандидата 2 недели это обычное дело как для маленьких компаний, так и для больших - это из личного опыта говорю. Меня бывало и месяц ждали, потому что на прежней работе нужно было сдать проект и не хотел "бросать в беде". Помните, подходящий кандидат для компании достаточно важен, бывает компании месяцы тратят на поиск нужного человека, поэтому 2 недели это не срок. Так что совершенно не стоит из-за этого переживать, ходите на собеседования и смело говорите что у вас есть сейчас работа - это нормально. Как только Вам сделают предложение и оно устроит - сообщайте нынешнему руководству, отрабатываете 2 недели и с чистой совестью на новое место.

    Единственный момент: раз Вы отправляете резюме в IT-компанию, чтобы их не ввело в заблуждение то, что у Вас опыт работы не в сфере IT указан, просто поясните этот момент в тексте, что опыт работы указан просто потому что он есть, а не чтобы что-то донести, и тогда все будет прозрачно и понятно.
    Ответ написан
    3 комментария
  • Можно ли иметь "лишний" ID в URL REST API?

    @luna3956
    Даже если пользователи привязаны к магазинам, то раз Вы допускаете возможность использования /users/:userId, предполагаю, идентификаторы пользователей уникальны не только в пределах магазина, но и всей системы. В таком случае, уровень /shops/:shopId будет лишним в задаче изменения информации о пользователе, даже если у пользователя есть привязка к магазину в плоскости бизнес-логики. Поэтому, используйте /users/:userId.
    Ответ написан
    Комментировать
  • Как сделать сравнение диапазонов дат в mysql?

    @luna3956
    select id
    from Table1
    where
        "2019-02-16" between start and final or
        "2019-02-18 " between start and final


    Если запрос ничего не вернул, значит пересечений нет и мероприятие можно назначить, в противном случае запрос вернет Id мероприятий, в диапазон которых попадает новое мероприятие

    UPD:
    Код выше глядя на рисунок предложил, однако может быть случай, когда новое мероприятие начинается ранее существующих и заканчивается позже них, чтобы охватить и такой сценарий лучше сделать так:

    select id
    from Table1
    where
        start <= "2019-02-18 and final >= "2019-02-16"
    Ответ написан
    5 комментариев
  • Как спроектирована база данных приложения Юла?

    @luna3956
    firebase подойдет для реализации личной переписки(мгновенных сообщений), в остальном же она не нужна. Используйте Postgresql или Mysql и будет вам счастье.

    Спроектирована база довольно обычно, там ничего хитрого:

    Таблица пользователей Users(id, name, ...)
    Таблица объявлений Ads(id, title, text, category_id, user_id, ...)
    Таблица сообщений Messages(id, text, from_user_id, to_user_id, ...)

    и самое главное поиск по категориям


    Гуглите "полнотекстовый поиск".

    Ну и стоит учесть, что в случае крупных проектов там много кэширования. Данные разнесены на множество различных серверов. Каждый пользователь и его данные(объявления, переписка и тд) хранятся на одном сервере. Способы "разнесения" пользователей на разные сервера могут быть разные, но обычно вычисляют хеш от логина или например номера, берут остаток от деления на количество виртуальных серверов, и в зависимости от результата пользователь направляется на соответствующий сервер. Но это Вам вряд ли нужно, это только для проектов с большим количеством данных и высокими нагрузками, просто сказал для Вашего понимания как там устроено.
    Ответ написан
    1 комментарий
  • Авторизация с помощью соцсетей?

    @luna3956
    Смотря через какую соц. сеть авторизовываться, но в целом, преимущественно, по-умолчанию доступ только к основной(общей информации) аля имя, фамилия, дата рождения, пол, город и т.п. Это безопасно настолько, что когда Вы пытаетесь авторизоваться через какое-то приложение, то Вам будет перечислено, какие разрешения пытается получить ресурс, на котором вы авторизовываетесь. Если там стандартная форма с доступом к общей информации, то бояться нечего, но если там богатый набор разрешений как на фото, которые непонятно для чего нужны данному ресурсу, то стоит насторожиться5c4b7d6734f4b676206606.png
    Ответ написан
    Комментировать
  • Большие объемы данных для сайта (50-100 ГБ, фотографии). Организация поиска среди них. Облачные хранилища или что-то другое?

    @luna3956
    В качестве хранилища использовать можно любое s3, смотрите где дешевле. Например вот сравнение. А поиск по имени файла - это поиск не в хранилище, а в обычной базе данных, в которой у вас будет табличка с названиями фотографий и ссылками на сами фотографии, что-то вроде этого Images(id, name, link), где link - ссылка на изображение в хранилище
    Ответ написан
    6 комментариев
  • Правильная структура таблиц для поддоменов?

    @luna3956
    При создании очередного поддомена пользователем добавляете поддомен в табличку Поддомены(id, name, user_id), а в таблицу Статьи просто добавляете уникальное поле поддомен_id, и тогда каждая статья будет строго привязана к конкретному поддомену.

    Либо же можете не добавлять в таблицу Статьи поле поддомен_id и определять принадлежность к поддомену посредством пользователя, добавившего статью. Делать это с помощью таблицы Поддомены, о которой написал выше. Но легче сразу добавить поле поддомен_id
    Ответ написан
    5 комментариев
  • Как сделать, чтобы в базе MySQL не менялась дату при редактировании данных?

    @luna3956
    В колонке Атрибуты уберите у поля date значение "on update CURRENT_TIMESTAMP". Если там есть вариант "on create CURRENT_TIMESTAMP" то поставьте его вместо текущего, иначе просто удалите. В колонке Дополнительно тоже уберите текущее значение
    Ответ написан
  • Как правильно представить новостной пост с комментариями в REST API?

    @luna3956
    Новость и комментарий - разные сущности. Сделайте один метод получения новости, например, getNews(id), и метод получения комментариев к новости, например, getNewsComments(id). Чтобы не делать два запроса из клиента, создаете метод getNewsWithComments в котором дергаете getNews(id) и getNewsComments(id) и склеиваете их результаты в такую json-ку и отправляете клиенту
    {
      "id": 1,
      "header": "News header",
      "body": "Bla bla bla",
      "comments": {
        "Ivan": "Bad comment",
        "Sara": "Good comment"
      }
    }


    Плюс посоветуйте что нибудь прочитать на предмет лучших архитектурных практик в REST API?


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

    @luna3956
    select
        a.branches_id,
        a.surveys_id,
        b.name as branches_name,
        s.name as surveys_name
    from answers a
    left join branches b on
        b.id = a.branches_id
    left join surveys s on
        s.id = a.surveys_id
    Ответ написан
    Комментировать
  • Стоит ли обновить железо при указанных затратах?

    @luna3956
    Однозначно не стоит, за 7к получить два доп. ядра на древнем процессоре при том, что нынешняя система в большинстве случаев устраивает - не лучший вариант.

    Гораздо правильнее продать свой комплект тысяч за 5-6, добавить вырученные деньги к тем 7и тысячам и купить связку мать на h310 чипсете, проц intel g5400 и озу. В итоге получите бОльшую производительность чем сейчас(2 ядра 4 потока при большей тактовой частоте) + относительно свежая платформа coffee lake, если в будущем производительности процессора будет мало легко сможете заменить на условный i3-ий. Покупать за 7к комплект девятилетней давности однозначно не стоит, лучше добавить несколько тысяч и взять то о чем говорю
    Ответ написан
    Комментировать
  • Многомерный массив, почему кусок кода не сработал?

    @luna3956
    Потому что int[,] array2 = new int[10,10]; - это массив с ячейками от array2[0,0] до array2[9,9]

    Нумерация с 0 начинается. То есть первая ячейка массива размера 10 на 10 будет array2[0,0], а последняя array2[9,9].
    А Вы пытаетесь обратиться к несуществующей ячейке ([10,9]), поэтому получаете ошибку, что вышли за пределы массива.
    Ответ написан
    2 комментария
  • Как организовать передачу данных между микросервисами (при наличии общей БД)?

    @luna3956
    У Вас есть главный(центральный) апи, главная база и дополнительные апи со своими базами.

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

    Либо же сделайте невидимую прослойку через центральный АПИ. То есть если пользователю нужно что-то из дополнительного апи сервиса, то запрос идет сначала на центральный сервер, в нем проверяется есть ли права и лимиты, и если все ок то запрос прокидывается дальше в дополнительный апи.

    По сути это почти одно и то же, различие в том, что во втором случае в "глазах" фронта у вас будет один единственный центральный апи
    Ответ написан
  • Как выбрать учителя по php?

    @luna3956
    Не совсем понятно о каких 10-и годах идёт речь, в Вашем сообщении я вижу новичка-перфекциониста, который усложняет себе жизнь принципом "из крайности в крайность"(сам был таким).

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

    Все, что Вам нужно - выбрать ЛЮБОЙ редактор/среду, открыть любой сайт/курс/учебник по php, изучить:

    1 - основные конструкции (переменные, циклы, массивы, ...)
    2 - почитать про ООП, потом посмотреть как это работает на примере php

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

    Теперь, возьмите в качестве фреймворка для проекта, например, yii2(прочитайте как он устроен и что такое mvc), а в качестве проекта, допустим, тот же блог(подсказка: в сети уйма примеров/курсов/видеокурсов как сделать блог) и реализуйте. Проделав это получите уйму знаний и умений. Как только закончите, откройте любой сайт с описанием правильной стилистики кода и пробегитесь по своему проекту, параллельно переделывая код на более правильный. Профит)

    Приятная новость в том, что все вышесказанное даже новичок может сделать за пару недель, и никаких историй длинною в жизнь и учителей Вам не надо. Удачи)
    Ответ написан
    4 комментария
  • Для чего нужен составной ключ в mysql?

    @luna3956
    Составные ключи могут служить заменой специально вводимым идентификаторам.
    Например есть таблица Пользователи вида Users(id, name) и таблица Фотки вида Photos(id, name).

    Таблица содержащая фотки пользователей будет таблица UsersPhotos(user_id, photo_id). В данном случае эти два поля образуют составной ключ, эта связка будет уникальна и нет смысла вводить избыточный идентификатор, если этого не требует логика приложения.
    Ответ написан
    7 комментариев