Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: В каких случаях нужно наследовать Controller?

Лучший ответ:
Я периодически создаю классы, которые и не модели и не контроллеры - т.е. они просто содержат в себе всякие функции-утилиты.
Вы создаете сервисные классы.А что я вообще получаю от класса Controller в своих контроллерах? 
Работу с запросами и ответами, сессии, куки и т.пНапример, инъекция зависимостей в функцию - это от него?
Нет, это по всему ларавел приложению работает. Можете определить свой класс и использовать DI там.Как понять где он мне нужен а где нет?
Если ваш класс не содержит работу с запросами и ответами, то нет смысла наследоваться от Controller.
Можете залезть во внутренности базового класса контроллера, посмотреть, что он содержит. Лишним не будет.

Худший ответ:
Если ты не понимаешь зачем это нужно, с великой долей вероятности этого делать не надо :)
Контроллер умеет регистрировать посредников (Middleware), валидировать данные, авторизовывать действия и много чего еще. 
В твоей ситуации это, судя по всему, не нужно в классе (он будет самодостаточным)
Вопрос: Оцените пожалуйста дизайн онлайн магазина, плюсы и минусы сайта?

Лучший ответ:
Ой ой ой. Сразу, я посредственный дизайнер, но сайтов повидал много. Может тебе чем-то поможет.
1) Зачем такой огромный шрифт? 15px тут хватит. 
2) Зачем все такое огромное?
3) Для товаров в каталоге, по мне так, лучше оставлять только название и цену. Звезды тут не нужны, они имеют смысл в серьезных магазинах на дестяки тысяч товаров и ежедневным оборотом в сотни тысяч, а то и в миллионы. 
4) На главной фильтр товаров я бы убрал. Сделал слайдер на 100% длинны и убрал эти ужасные полосы по бокам, так же это должна быть не просто галерея, а иметь смысл, подписи - новые модели, скидки и тд. Точки внизу сделай поменьше. 
5) Подбери другой шрифт. По мне это самое трудное - выбрать подходящий шрифт, от него на 50% будет зависеть то, как дизайн будет восприниматься
6) Мне нравятся закругленные углы.  Я читал, что тут работает психология, человек острые углы воспринимает как, агрессию. От них лучше избавиться . 
7) Ну исправь ты этот "ФильтОр"
От себя о практики, не бойся подсматривать чужие дизайны. Бери пару сайтов, комбинируй их и получай новый. Так работает все в нашем мире.  Так же постоянно смотри и критикуй другие сайты. Эти советы мне давали опытные дизайнеры, когда я пробовался в их сферу, возможно, возьмешь на вооружение. Так же изучай и подчеркивай для себя моменты в чужих сайтах.
P.S. Вэйп все еще актуален???

Худший ответ:
Оцените пожалуйста дизайн 
Анимации какой-то интересной не хватает.
Вопрос: Как оптимизировать постоянные обновления PHP?

Лучший ответ:
Можете доставлять данные клиенту с помощью вебсокетов, можете на неактивные вкладки прекращать генерировать AJAX запрос.
А в целом, раз в 30 секунд это не нагрузка вообще. Сколько пользователей нужно иметь одновременно на сайте, чтобы раз в 30 секунд суммарно нагенерировали много запросов? Возможно сам бекенд у вас не оптимизирован? Тяжелые функции? Сложные запросы в базу? Не оптимальные алгоритмы?

Худший ответ:
Херня. PHP для real-time оповещений НЕПРЕДНАЗНАЧЕН! Либо юзайте нормальный код, либо переходите на nodejs!
Вопрос: Что такое классические алгоритмы и структуры данных в вакансиях?

Лучший ответ:
Классические алгоритмы - алгоритмы поиска, сортировки и обработки данных. Структуры данных - стеки, кеши, массивы, списки.
Ну и буду старомоден, ничего лучше в этом мире до сих пор нет, как трехтомних Дональда Кнута - Искусство Программирования.  Просмотрев оглавление первого тома - получите весь список! Ну а если просто прочтете по две-три странички каждого раздела, то будете в курсе, как они работают. Если разберете еще и примеры, то будете классным специалистом . А если и до решения задач доберетесь, то вас многие фирмы почтут за честь иметь в штате. Выполнение одного из заданий сложностью 45 - нобелевка.
Но вам сейчас нужно просто прочитать оглавление! Начните с этого.
Упс, еще и третий том обязательно оглавление.

Худший ответ:
хз что там с классическими, но 
https://docs.python.org/3.5/library/collections.html
знать обязаны
ну и вот это вот все https://www.youtube.com/watch?v=ZZuD6iUe3Pc
Вопрос: Как обеспечить постоянную работу майнера на vps?

Лучший ответ:
Запускайте в беуграунде через & или через screen

Худший ответ:
Это бессмысленно.
Даже на выделенном сервере при задействовании всех 100% на CPU (без GPU) - хостинг будет обходиться дороже.
Дураков нет - если бы это было выгодно - хостеры бы сами майнили и никому бы не продавали за бесценок свое железо.
Весь фокус в том, что без специализированного железа это не выгодно.
Впрочем, вы можете попробовать майнить дома - домашние тарифы на электроэнергию невысоки.
Как сохранять сессию - хорошо рассказали рядом.
Вопрос: Где можно скачать самую большую MySQL англоязычную БД городов мира?

Лучший ответ:
Я как-то работал с базой от Expedia, мне показалась что она довольно полная.

Худший ответ:
Не проверял что внутри, но размер внушительный - https://www.maxmind.com/ru/free-world-cities-database
Остальные базы тут - https://www.google.ru/?gfe_rd=cr&ei=P9J2V7a1H8OCNI... :)
Вопрос: Как менять стили в зависимости от стейта в React?

Лучший ответ:
render() {
  const { isSelected } = this.state;
  const content = isSelected ? '1' : '0';

  return (
    <App>
      <Button
        onClick={this.handleClick}
        isSelected={isSelected}
      >
        Button
      </Button>
      <p>{content}</p>
    </App>
  );
}
В примере div.App заменен на StyledComponent App

Худший ответ:
Так вы уже почти всё сделали сами... просто передавайте в кнопку isSelected, типа так.
Вопрос: Как реализовать плавную смену фоновых изображений?

Лучший ответ:
Лучше сделать не смену фона у одного блока, а несколько блоков, каждый с уникальным фоном. А скрытие и отображение блоков сделать через плавную смену opacity.
Типа так: <section id="slider">
  <div class="slider__item" style="background-image: url("../slider/img/intro-slide-1.jpg"); opacity: 0">
  <div class="slider__item" style="background-image: url("../slider/img/intro-slide-2.jpg"); opacity: 1">
  <div class="slider__item" style="background-image: url("../slider/img/intro-slide-3.jpg"); opacity: 0">
  ...прочее содержимое
</section>

Худший ответ:
Каким образом вы хотите сделать смену слайдов?
Вопрос: Что лучше изучать для использования с Laravel, React.js или Vue.js?

Лучший ответ:
А хорошо ли интегрируется React.js с PHP фреймворком Laravel? 
И если да, то насколько ?
Так же как с любым другим PHP фреймоврокм, нормально.Vue.js умеет все тоже самое что и React.js ? 
ДаА в чем особенность React.js и Vue.js ? 
В доках обоих фреймворков прекрасно все описано.Когда я увидел чарты (график) производительности React.js я офигел ! Он очень мощный!
А если использовать React.js с Laravel будут такие же результаты?
Можете показать пальцем на того человека, который убедил вас что производительность фронтенд фреймворка может быть прямо связана с бекенд фреймворком? Палкой хочу ударить просто.И прошу вас или объяснить или же оставить ссылку про то, как же все таки происходит интеграция между двумя сторонами на том фреймворке (React or Vue) который предпочитаете.
REST/GraphQL API, 1000 раз спрашивали ужеДобавлю, что я знаю ES6, уже писал на Koa используя async/await, у меня достаточно хороший опыт/практика в разработке на NODE.JS.
Тогда забудьте про PHP и его фреймворки. Зачем они вам, если REST для SPA прекрасно пишется на ноде? Прошу вас отвечать поподробнее на вопросы.
Я бы может и ответил, если бы вы задали не самый банальный список вопросов в мире.

Худший ответ:
Вам надо изучить, как собирается и компилируется фронт. Ищите материалы по Webpack и т.п. Фронт собирается в один js и css файл, который вы подключаете в html - и всё. Первоначальные данные фронт подтягивает сам при первом включении при помощи ajax-запросов или берёт из html, куда вы их предварительно эмбеддите бэкендом.
Автор Laravel просто сделал конфиг вебпака и инициализационный скрипт, который позволяет юзать компоненты vue прямо на странице (vue подключается в рутовый div). Интеграция на этом заканчивается. Вы можете сделать так же с любым бэкендом.
Если же сравнивать react и vue, то на первом вам придется писать больше кода, и больше держать в голове, будьте готовы к этому. До последнего сопротивляйтесь внедрению redux, зато сразу старайтесь использовать mobx. Но я бы лучше сразу взял vue. По возможностям и скорости они почти одинаковые.
Вопрос: Как повторно использовать компоненты верстки в разных проектах?

Лучший ответ:
Чувак ты прям по адресу)) Я тоже таким болел и болею)) Вот как делаю я. Я создал для себя свои собственные компоненты которые наработал в ходе куча разных проектов. Когда надо их подключаю а когда не надо просто комментирую их.  Выглядит это вот так:
То есть в самой папке компонента я храню вьюшку компонента  и его стили.<!-- breadcrumb -->
<ul class="breadcrumb">
    <li class="breadcrumb__item">
        <a href="#" class="breadcrumb__link">Level 1</a>
    </li>
    <li class="breadcrumb__item">
        <a href="#" class="breadcrumb__link">Level 2</a>
    </li>
    <li class="breadcrumb__item">
        <a href="#" class="breadcrumb__link breadcrumb__link_is-active">Current page</a>
    </li>
</ul>
<!--/. breadcrumb -->//
// Component: breadcrumb
// --------------------------------------------------

.breadcrumb {
    .nl();
    margin-bottom: 15px;
    margin-top: 40px;
    position: relative;

    &__item {
        display: inline-block;
        position: relative;
        margin-right: 5px;

        &:before {
            font-family: 'FontAwesome';
            font-size: 13px;
            color: #fff;
            content: '\f105';
            display: inline-block;
            vertical-align: middle;
            margin: 0 5px 0 0;
        }

        &:first-child:before {
            display: none
        }
    }

    &__link {
        font-size: 16px;
        color: #fff;
        text-decoration: none;

        &:hover,
        &:focus,
        &_is-active {
            color: @color-main;
        }

        @media(max-width: @screen-ms-max) {
            font-size: 14px;
        }
    }
}
В общем суть понятна да?) Что делать если начинаешь новый проект и все надо переносить?
Ничего переносить не надо, у меня есть такая папка называется TARS BUILDER.
Это получается Голый Tars только уже с моими компонентами и плагинами. Его походу дела и дополняю всегда. 
Например верстаю сижу и тут бац понял что тут можно удобно сделать так-то сяк-то, иду в папку Tars Builder и там же сразу делаю это улучшение. Короче говоря пока верстаю на поле боя я там понимаю как и что мне удобно и переношу эти апгрейды в свой фреймворк/шаблон TARS BUILED.
Так же создаю походу дела свою миксины, переменные и тд. 
Таким способом я легко начинаю новый проект на TARS.

Худший ответ:
мы используем templates/шаблоны для каждого компонента, часть классов идет с шаблоном, остальные классы, если нужно, можно добавить при генерации кода
фронтенд логика к html шаблонам никак не привязана, в отличие от всех популярных фреймворков,  поэтому они легко используются в любом проекте
компоненты унифицированы, поэтому их всего пара десятков, и заменить или поправить html в них очень легко
Вопрос: Материнка требует 8+4 CPU питание, на БП есть только 4+4. Как разрешить ситуацию?

Лучший ответ:
Имею Ryzen 1400 с 4-пин питанием, все норм. 8 хватит с головой. 8+4 это что-то слишком заоблачное, я и БП таких не видел. Во всех этих разъемах питание соединено в параллель, потому будет работать даже если вы только 4pin воткнёте. Другое дело, что хилые соединения могут перегреваться из-за больших токов, но новые Ryzen, тем более не топовые 1800, не так много потребляют.
Питание нужно оценивать, учитывая всю конфигурацию. Может у вас будет три мощных видеокарты, тогда 700W не хватит. Разогнанный Ryzen 1600 в пике жрет ватт 250, ему одному точно хватит.
Переходники лепить не стоит - в вашем блоке питания их некуда будет подключить, питание процессора идёт по отдельной линии.

Худший ответ:
1. Запустится.
2. Не известно.
3. Можно заморочиться, если провода или штекер не выдерживают тока(для определения можно пощупать на предмет нагрева), а так что на плате все параллельно, что в БП все провода из одной точки(параллельно)
Вопрос: Как получить массив из js кода на php в переменную?

Лучший ответ:
$data = str_replace(array('<script>', '</script>', 'var '), '', $data);
$array_results = explode(";", $data);
if (is_array($array_results)) {
      $stats_data = array();
      foreach ($array_results as $key => $value) {
        if (!$value) {
          continue;
        }
        $_temp = explode(" = ", $value);
        $result_data[$_temp[0]] = str_replace(';', '', $_temp[1]);
      }
}
Как-то так

Худший ответ:
спасибо с переменными хорошо справляетса но беда началась при парсинге масива<script>
pImgs[23] = {};
pImgs[23]['MULTIVIEW'] = {};
pImgs[23]['MULTIVIEW_THUMBNAILS'] = {};
pImgs[23]['4x'] = {};
pImgs[23]['DETAILED'] = {};
pImgs[23]['2x'] = {};
pImgs[23]['MULTIVIEW_THUMBNAILS']['p'] = '/tpm/main.jpg';
</script>
Вопрос: (Решение: нерабочая планка) Установленная оперативная память в Windows 7 x64. Почему разные данные в отчёте ОС, Биос и HWiNFO64?

Лучший ответ:
Мне кажется налицо косяк операционной системы. Однако, я бы, для того чтобы в этом убедиться, для начала:Глянул журналы винды (хотя они капец какие неинформативные, но что уж есть)загрузился с Live-CD/DVD/USB ОС семейства Linux (дабы исключить/подтвердить косяк винды) и в них глянул сколько памятизагрузился с Live-CD/DVD/USB ОС семейства Windows (дабы исключить/подтвердить косяк винды) и в них глянул сколько памятипоменял модули местами в слотах (ну мало ли)запустил по очереди с каждым модулем в отдельности и в разных слотахпроверил обновления для материнской платы, почитал, что там в них обновили и накатил ихсделал CLEAR CMOSСнова всё проверил, при необходимости включая шаги 1-5
И, если в результате лив-дистрибутивы видят всю оперативку, а винда наотрез отказывается - под нож её. Можно попробовать ей дать шанс, и поставить все обновы, но я не верю в чудеса))

Худший ответ:
А есть ли в биосе memory remap? Если есть, попробуй включить
Вопрос: Как добавить выплывающие блоки элементам списка?

Лучший ответ:
Дополнение к ответу 0xD34F :
Зависимое переключение https://jsfiddle.net/ygbs1w79/1/

Худший ответ:
У каждого блока должен быть свой isShow. Массив, описывающий блоки, кладёте в data, обрабатываете его с помощью v-for. Типа так.
Вопрос: Как 1 витую пару развести на 2 роутера?

Лучший ответ:
Самая простая и адекватная это вторая схема.
Провод от провайдера в WAN вашего роутера.
Провод из LAN  порта вашего роутера тянете в квартиру соседнюю и включаете в LAN порт роутера там, предварительно выключив на нем DHCP.
Cобственно все.
Первая схема тоже будет работать, но она будет дороже  и настройка сложнее. 
Сколько жил в кабеле тоже не важно. Все равно в соседнюю квартиру кабель тянуть отдельный.

Худший ответ:
Интересно, как это получилось, что квартирный ввод был сделан 2-парным кабелем? Предельная экономия у провайдера, что ли? Если бы этот кабель был 4-парным, вывести линию к соседу по схеме 2 не составило бы труда, абсолютно не затрагивая весь ваш ремонт: 
1. Вскрываете изоляцию вблизи конца кабеля, отделяете синюю и коричневую пары, перерезаете их поближе к разъёму RJ45 и обжимаете эти пары на ещё один RJ54, используя порядок 1 - БС, 2 - С, 3 - БК, 6 - К. Этот разъём втыкаете в LAN.
2. На лестничной площадке, за пределами вашей квартиры, снова взрезаете изоляцию этого кабеля, снова отделяете синюю и коричневую пары и перерезаете их. Со стороны провайдера просто оставляете их в покое, а со стороны вашей квартиры наращиваете перерезанные концы отрезком кабеля с сохранением цветов. Я это обычно делаю пайкой, стараясь сохранить шаг и плотность свива витой пары - тогда линия сохранит своё волновое сопротивление и даже не заметит сростка.
3. Напаянный кусок кабеля ведёте к второму роутеру у соседа, настроенному как ТД, и там обжимаете третий RJ45, используя тот же порядок, что и в п.1.
Если же 2-парный кабель принципиально незаменим на 4-парный, то остаётся прокинуть второй кабель под плинтусами - современные плинтуса, как правило, снабжены кабель-каналами, и они прекрасно замаскируют даже сверления в стене.
Вопрос: В чем разница между issue и bug в тестировании?

Лучший ответ:
Баг - это когда вместо скидки к цене делается надбавка. А ишью - это когда у цены со скидкой слишком много цифр после запятой и она не влазит в отведенный ей контрол.

Худший ответ:
Bug - это невыполнение требований ТЗ или несоответствие реальных данных ожидаемым при тестировании продукта тест-кейсом.Issue - это проблемы, выявленные тестером на любом этапе тестирования, не являющихся отклонениями для ожидаемых результатов во всех предыдущих тест-кейсах.
Производится принятие решение рабочей проектной группой: закрыть, нивелировать до низшего приоритета (оставить на потом), или превратить в Bug.Всё остальное - это не баг.
Вопрос: Как заставить валидаторы не отрабатывать на пустом поле?

Лучший ответ:
ну так unique и должен возвращать false если уже есть запись с пустым таким полем. По сути вопроса, не вдаваясь в подробности того что у вас там какая-то лажа, смотрите в сторону skipOnEmpty[['field_name'], 'string', 'skipOnEmpty' => true], //у стринг валидатора по-умолчанию и так 'skipOnEmpty' => true

Худший ответ:
Зачем валидировать пустые поля?
Про валидацию почитайте Проверка входящих данных
Вопрос: Как настроить вывод изображения статьи для кнопки «поделиться»?

Лучший ответ:
Здравствуйте.
По идеи, соцсети должны подхватывать заголовок, описание и изображение из спецтегов Open Graph.<meta property="og:title" content="Заголовок для отображения в сниппете">
<meta property="og:image" content="ссылка на картинку">
<meta property="og:description" content="Описание для сниппета, текст под названием страницы">
Насколько я помню, их умеет добавлять Add Meta Tags и Yoast SEO и наверняка какие-то другие плагины для seo.

Худший ответ:
вам на странице нужен метатег с нужной картиной<meta property="og:image" content="путь до картинки" />
Вопрос: На каких ресурсах, сайтах можно узнать как обстоят дела в той или иной профессиональной области?

Лучший ответ:
Я могу ответить сразу за все сферы: все думают, что платят за то, что работаешь в IT, в итоге - всё IT начали "наводнять" неучи-PR-щики. 
А работодателям - это выгодно: они эмулируют конкуренцию и снижают ЗП всем подряд, включая нормальных знающих работников, ссылаясь на то, что мы ещё найдём тучу подобных тебе на твоё место и постепенно отсеивают незнающих, оставляя ЗП хороших знающих сотрудников на начальном уровне.
В итоге: трудозатраты, образование и опыт претендентов стали абсолютно размазанными на IT-рынке труда, что способствует отсеву "чужих" людей из IT.
Реальные сотрудники - превратились в скитальцев, которые не хотят сталкиваться с подобными вещами и которые ищут грамотных работодателей (готовых хорошо платить за работу и их опыт) и высококлассный коллектив, который был сформирован этим же работодателем для успешного ведения своего бизнеса.
В любой структуре, в момент её расширения, появляются различные вакансии для новых сотрудников с разным опытом и знаниями. 
Но, в большей степени, ключевую роль играет необразованность и невладение предметной областью самих руководителей таких новых подразделений и невозможность грамотно оценить потенциал кандидата до приёма на работу для конкретных задач, поставленных этому подразделению. 
И как следствие - виноват всегда тот, кто не справился с задачей, а не тот, кто допустил это.

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

Лучший ответ:
Забудьте о глобальных переменных.
Сделайте две таблицы. Первая - дерево (tree).id   | name           | parent_id
1    | Спорт          | null
2    | Футбол         | 1
3    | Чемпионат РФПЛ | 2
Вторая - данные (data).id   |   tree_id  | data
1    |   3        | Инфа о чемпионате РФПЛ
Пользователю показывайте инфу из "дерева"и давайте выбрать категорию, когда выберет - показывайте данные, соответствующие категории:select * from data where tree_id=3

Худший ответ:
А как быстро найти (с минимум запросов ессно) категорию/или ее существование (например: Хоккей) в дереве, зная имя родителя (Спорт: т.е. получить ее id) ? Ведь суб-категория может быть намного глубже и дерево может быть более ветвистое.
Вопрос: Какой должен быть текст согласия на отправку и обработку персональных данных?

Лучший ответ:
Вопрос: какой всё же текст должен быть - короткий или развёрнутый?Юридически грамотный.

Худший ответ:
в россии надо соблюдать требования закона "О персональных данных" от 27.07.2006 N 152-ФЗ 
в частности читай Статья 18. Обязанности оператора при сборе персональных данных
Вопрос: Как со списка объектов в Python 3 удалить повторяющиеся значения?

Лучший ответ:
А что значит "вытащить все имена"? Если хотите узнать кол-во уникальных имен, то самым простым способом будет преобразование списка в множество set(nameslist ). Если необходимо узнать сколько раз встречается конкретное имя, то нужно использовать collections.Counter

Худший ответ:
Создать словарь string->int, где ключ - элемент из списка, а значение - количество элементов. На основе него создать новый список, выбрав ключи с единичным значением.
UPD: Andrey Druzhaev можноfrom collections import Counter

names = ["a", "b", "c", "d", "a", "d", "d"]

print(list([k for k, v in Counter(names).items() if v == 1]))
UPD: Andrey Druzhaev это уже глупый вопрос, т.к. это обычная фильтрация.
Можно так.filter(lambda s: s != "Bill", namelist)
Или так[x for x in namelist if x != "Bill"]
В Python 3 можно даже так:filter('Bill'.__ne__, nameslist)
И ещё способwhile "Bill" in namelist: namelist.remove("Bill")
Открывайте любую книгу по питону и читайте. Там всё есть.
Вопрос: Как использовать require в nodejs как require в PHP?

Лучший ответ:
взять php

Худший ответ:
Чтобы код просто "перекопировался" как в пхп и другой файл мог видеть и использовать переменные текущего файла? Никак.
В ноде файлы это модули в которых не существует других сред окружений кроме собственной.
Вопрос: [code-review] Верстка, какие замечания?

Лучший ответ:
Жутко не хватает эффектов ховера на элементах.На фокусе нужно какое-то изменение поля e-mail.Слишком медленная анимация на ссылках — такие можно делать только там, где это по какой-то причине необходимо. Здесь же пользователь устанет быстро от такого.

Худший ответ:
ТЗ бы скинул своё, а то мы откуда знаем по ТЗ ты сделал или нет :)
Вопрос: Лучшая книга для изучения Spring Framework?

Лучший ответ:
Однозначно лучшая книга по Spring - официальная документация. Из книг: Spring in Action и Spring 4 Pro

Худший ответ:
docs.spring.io/spring/docs/current/spring-framewor...
Ну если уж книга то Spring in Action
Вопрос: Кто может помочь разобраться с косяками приложения?

Лучший ответ:
0. Найти репозиторий с исходниками
1. Найти еще одного программиста
2. Показать ему исходники
3. Договориться о цене его времени

Худший ответ:
Тебе только новое приложение надо. Программист пропал, и теперь только Бог ведает как это чудо инженерной мыли работает.
Могу предложить свои услуги, как начинающего разработчика (дизай конечно не такой крутой бы вышел, да и взятся только под новый год смогу, зато за копейки и за опыт).