Задать вопрос
  • Как заинтересовать человека(студента) в IT?

    sim3x
    @sim3x
    Не надо нам тут лишних людей
    Ответ написан
    Комментировать
  • Как лучше создать поиск для сайта используя MySql + ElasticSearch?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Кладете все данные в ES, и агрегациями делаете и фильтры и ищете. А уж если так хочется и MYSQL, то в нем можно например пользователей хранить, только не пойму, нафига оно нужно, если есть ES.
    distinctplace.com/2014/07/29/build-zappos-like-pro...
    Ответ написан
    3 комментария
  • Как лучше создать поиск для сайта используя MySql + ElasticSearch?

    al_gon
    @al_gon
    Обычно в таких сценариях всё лежит в поисковом движке. Всё это поля для поиска и id самого товара. Больше этого не надо.
    Идет запрос к ES обычно страничный, находятся Id's идет запрос к SQL и вытаскиваются все нужные поля, часто между ES и SQL есть кэш.

    Как упаковать в Yii2, это отдельный вопрос (коим не владею), скорее всего вам понадобится позже фасетированние и автокомплит.
    Ответ написан
    4 комментария
  • Знания Junior php разработчика?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что должен знать идеальный джуниор (мое личное мнение):

    - Сетевой стэк. Нужно иметь хотя бы базовое представление о том как с сервером общаются. Ну то есть не нужно лезть в дебри, но понимать что такое HTTP или чем TCP от UDP отличается - нужно. В целом это пара часов чтения википедии.
    - GIT или любая другая распределенная VCS. Базовые навыки, что бы хотя бы понимал что есть git revert или git rebase, что такое фичабрэнчи и примерное представление как это работает и зачем надо.
    - Базовые основы unix. Ну то есть что бы не пугаться таких вещей как ssh хотя бы.
    - PHP. Без этого никуда. Он должен понимать что такое слабая динамическая типизация (не заучивать табличку кастов типов, а понимать плюсы и минусы, такая же история с приоритетами операторов - не заучивать а знать как избегать проблем с чтением кода)
    - Понимать что код чаще читают чем пишут, а потому не экономить 5 минут на написании кода, а писать так, чтобы сэкономить 30 минут человеку, разбирающемуся в куске кода.
    - Знать базовые вещи в плане безопасности. XSS и как защищаться, SQL инъекции и как защищаться, CSRF, MITM. Понимать что такое NDA, что данные пользователей - секретная информация. Как хэшировать пароли (не md5 а password_hash) и почему это важно.
    - Знать SQL. Глубоких знаний не требуется, нужно лишь понимание того, что такое нормальная форма, желательно разобраться с вопросом денормализации данных. Идеально иметь хотя бы базовые представления о том как работать с NoSQL решениями.
    - Процедурное программирование: почему глобальные переменные порождают сложность, что такое состояние, как можно использовать классы для изоляции состояния и т.д. Инкапсуляция. Инварианты, пост/пред условия, сохранение целостности...
    - Разделение ответственности. Это один из важнейших принципов, и упрощать все это до "mvc фреймворк" слегка неправильно. Вы должны понимать что от чего отделяете и главное зачем.
    - Автоматические тесты. Джуниор должен знать что это такое и иметь хотя бы минимальный опыт их написания. Должен понимать разницу между юнит и интеграционными тестами. Быть знакомым с пирамидой тестирования.
    - Уметь решать стандартные задачи не задавая слишком много вопросов. Например регистрацию пользователя по email-у вы должны написать, или авторизацию через соц сети, или комментарии, или новостную ленту.
    - Уметь дебажить. xdebug, blackfire и тд.

    В целом где-то за годик весь этот список можно влегкую покрыть с нуля.

    p.s. Я в списке специально не указывал ООП, поскольку всеравно первые пару лет у разработчиков выходит процедурщина на классах. Это не плохо, но того что в моем списке более чем должно хватать для решения стандартных задач. Но термины вроде "инкапсуляция/полиморфизм/наследование" требуются в обязательном порядке подавляющем количеством интервьюверов, а стало быть знать это надо. Единственное что - рекомендую в свободное время глубже погрузиться в этот вопрос а не тупо заучивать формулировки.

    Так же вещи вроде docker джуниорам знать не обязательно просто потому, что их врядли допустят сходу к управлению инфраструктурой. А так пару неделек на изучение и вперед.
    Ответ написан
    12 комментариев
  • Что такое ElasticSearch?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Знаете, я с вами соглашусь, что хорошую вводную по Elastic трудно найти. Пока сам не переварил доков и не набил шишек многие элементарные понятия оставались для меня неясными. Поэтому вот моя вводная: Elastic можно использовать как NoSQL БД, только надо быть внимательным, т.к. всё-таки его основная задача поиск, а не удовлетворение функций БД. Например, если вы не настроили хранение исходных данных, а только индексацию, то свои данные вы уже не извлечёте из него. НИКОГДА. Только отдельные выражения, удовлетворяющие условиям поиска. Всё, тупик. Так же нельзя повторно индексировать уже загнанные в него данные. Т.е. перед загрузкой данных надо грамотно настроить индексацию, т.к. перестроить индекс, как это делается в реляционной БД невозможно. Нужно придумать новую схему индексации и перезалить данные в Elastic. Именно поэтому основное использование Elastic - как дополнение к существующей БД из которой данные можно перезалить по одному или полностью в Elastic (можно, конечно сделать схему Elastic->Elastic, но тоже есть нюансы).
    Ещё пару слов про схему. Это ЛОЖЬ, что в Elastic нет схемы данных. Она как раз есть и ооочень жёсткая. Жёсткая до того, что однажды определив, вы не сможете её поменять. Изначально Elastic оказывает медвежью услугу, разрешая вам дополнять схему по-умолчанию, но когда вы разберётесь с этой темой, то можете обнаружить, что Elastic "понастроил" такого у себя внутри, что остаётся только охреневать и переделывать всё явно, отказавшись от его "услуг" по автоматическому добавлению полей в схему.
    Так же в Elastic очень непросто строить сложные запросы на поиск и агрегатные запросы. Совершенно неинтуитивно. Но если освоитесь, то будет вам счастье. )))
    Несмотря за такие "страшные" вещи - Elastic классная система и по производительности агрегатных запросов не уступает платной версии MSSQL в поиске в многопроцессорных системах (проверял на одинаковых аппаратных конфигурациях с 16 ядрами). Так что если вам хочется большую скорость в агрегатных запросах и главное - это бесплатность, то берите и осваивайте Elastic. Мощности и возможности у него огромные. Но... нужно потратить приличные усилия на изучение.
    Ответ написан
    1 комментарий
  • Как собрать обьект из JSON на PHP?

    Sanasol
    @Sanasol Куратор тега PHP
    нельзя просто так взять и загуглить ошибку
    json_encode делать из объекта изначально, тогда структура и класс должны сохраниться.

    Ну либо в классе createFromJson метод делать, в нем json_decode и заполнение объекта данными.

    Никакого магического третьего варианта вроде бы и нет.
    Ответ написан
    3 комментария
  • Как добавить реляционную модель при вставке модели в yii2?

    qonand
    @qonand
    Software Engineer
    Вы сейчас движетесь в не правильном направлении, зачем Вам создавать и связывать объекты внутри модели? это прямой путь к плохому коду. По сути дела это все кусок бизнес-логики. А бизнес-логика как известно не должна храниться в ActiveRecord (я так понимаю что Вы используете его), она должна храниться в отдельном классе.

    P.S. связывать данные две записи можно с помощью link()
    Ответ написан
    Комментировать
  • В чем разница между ассоциацией, агрегацией и композицией на уровне кода?

    romy4
    @romy4
    Exception handler
    atis //: ну вот тут побольше инфы и умно. реально про ассоциацию не описать двумя предложениями
    Ответ написан
    5 комментариев
  • Как вывести конкретное сообщение при попытке закрыть страницу?

    @GreatRash
    Это к счастью никак не обойти. Если это обойдут в каком-то браузере, то лично для меня этот браузер перестанет существовать.
    Ответ написан
    Комментировать
  • Как для каждого блока задать свой цвет?

    @GreatRash
    Можно эмулировать если задать бекграунд с альфой: codepen.io/GreatRash/pen/gwYKJk
    Ответ написан
    2 комментария
  • Что есть виджет в yii2?

    @karminski
    Senior React.JS Developer
    Виджет - логически завершенная самостоятельная часть интерфейса. Виджеты позволяют вам упростить ваш код, привести его в логический порядок, и использовать повторно его код. Например, список новостей. Вы можете разместить его на главной странице сайта, а также на странице какого-нибудь продукта. Если очень условно - то виджет это как контроллер, единственное действие которого (run) рендерит какую-нибудь вьюху.
    Ответ написан
    Комментировать
  • Нужно ли ставить запрет копирования текста на киносайте?

    и пожалуйста, не делайте этот идиотизм, когда копируешь текст и в копипасту еще добавляется всяка потреботина, типа я скопировал информацию с этого ресурса + ссылка на ресурс
    Ответ написан
    Комментировать
  • Нужно ли ставить запрет копирования текста на киносайте?

    @vilgeforce
    Раздолбай и программист
    Не нужно. Обойти защиту не сложно, смысла в ней нет. А гемор есть.
    Ответ написан
    Комментировать
  • Может ли работодатель требовать после увольнения не заниматься тем, чем занимался до приема на работу?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ответ один: Только NDA.
    Всё остальное - полный бред:
    После увольнения - трудовой договор прекращает своё действие.
    Принуждение оформления любых других бумаг или шантаж/угрозы преследуются по закону.
    Ответ написан
    Комментировать
  • Как отсортировать строки по varchar столбцу в Mysql?

    @SharuPoNemnogu
    не язык плохой, программисты такие...
    попробуйте так (не проверял)
    ORDER BY LENGTH(column) DESC, column ASC
    Ответ написан
    Комментировать
  • Насколько важно прочитать Совершенный код и Паттерны проектирования?

    ChernovDmitry
    @ChernovDmitry
    Паттерны банды четырех прочитал через 5 лет после того как начал работать программистом. Читал перед сном, было интересно, даже смешно местами, примеры там прикольные. ИМХО студенту эту книгу читать смысла нет, нужно сперва самому написать дофига кода, только после этого приходит стадия когда чужой код читать интереснее чем писать что то самому.
    Ответ написан
    1 комментарий
  • Насколько важно прочитать Совершенный код и Паттерны проектирования?

    Rou1997
    @Rou1997
    Нет никаких книг, которые было бы необходимо прочитать в общем случае, существует множество источников и способов получения научного знания.
    Ответ написан
    Комментировать
  • Почему возникает ошибка при добавлении пакетов в Yii2 через Composer?

    qonand
    @qonand
    Software Engineer
    скорее всего на ПК не стоит fxp/composer-asset-plugin. Нужно его соответственно установить
    composer global require "fxp/composer-asset-plugin"
    Ответ написан
    2 комментария
  • Где стоит записывать куки и сессии в Yii2, в модели или в контроллере?

    webinar
    @webinar Куратор тега Yii
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Есть модель для авторизации. В ней сэтапятся данные в куку и сессию.
    Это правильно?

    А почему нет?
    Ответ написан
    2 комментария