Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Пример использования структурных шаблонов в React.js?

Лучший ответ:
Декоратор. Многие HOC являются декораторами/прокси.
Фасад. В мире React фасадами я бы назвал селекторы. Мы прячем комплексную структуру стора (причем, неважно, что используется - flux, redux, context, whatever) за простыми функциями-геттерами. Это могут быть как обычные геттеры, так и вычисляемые значения.
Медиатор. Допустим, есть форма с двумя полями с датами "начало" и "конец".  Первому нельзя ставить значение выше второго, и наоборот, второму нельзя поставить значение ниже первого. Тут и вступает в бой основной компонент формы, который является медиатором, и назначает разное поведение этим компонентам, в зависимости от их значений. Сами они друг про друга не знают.
Обсервер. Тот же HOC connect из react-redux, по сути, является обсервером. Изменился mapState - ре-рендер компонента.
Адаптер. Можно поверх сложных UI элементов (range, datepicker, etc..)  писать еще свои адаптеры, которые будут иметь определенный программный интерфейс. Это позволит менять сторонние библиотеки (мало ли, автор забросит поддержку), сохранив при этом программный интерфейс внутри приложения.
В самом React еще другие паттерны. Например, slot pattern, render props.

Худший ответ:
С моей точки зрения немного странный вопрос, потому что "в разработке на React" можно отсюда убрать и вставить любой фреймворк или просто оставить "в разработке". 
Например, декораторы и обсервер используются при управлении state через mobx, но не обязательно этот стейт рендерить с помощью React при этом. 
Нужно брать конкретный паттерн и смотреть какие задачи он решает, а чем потом отрендерить результат его применения, не имеет особого значения.
Вопрос: Не понимаю, что такое модульная сетка?

Лучший ответ:
Первое определение говорит о вёрстке вообще. И даже второе слишком общее. Более-менее правильное такое.
Есть некая базовая единица измерения — модуль. Это может быть шаг строки, размер картинки или что-нибудь ещё. И все размеры на сайте выставляют исходя из нескольких таких единиц. Пошло оно из архитектуры, где модули — толщина перекрытия, высота этажа, расстояние между окнами…
Сами направляющие невидимы. Но мы видим границы блока текста, границы картинок, начало или конец одинокой строчки. И глаз радуется, когда эти элементы выстраиваются по горизонтальным и вертикальным линиям. И не просто выстраиваются, а вдруг оказывается, что размер А равен размеру Б.
На ватмане эти направляющие рисовали, потом стирали. На компьютере — они находятся где-то на непечатаемом слое и блоки к ним прилипают.
Всегда следовать модульной сетке? Нет, конечно. Дизайнов разных куча. Где он академичнее, там модули; где закос под что-то неформальное — стараются модули делать там, где пишущий краской на стене действительно сделал бы две вещи одинакового размера. А иногда выровнять одно с другим — это натянуто.
Я бы дал такие правила.
1. Не впихивай невпихуемое. Если не получается выровнять по художественным или техническим причинам — зачем это прокрустово ложе?
2. Не мельчи модуль. Если не видно, что размеры кратны — пропадает смысл.
3. Модуль не обязательно один. Высота картинки и высота строки могут быть некратны, например, если нет обтекания картинок текстом.

Худший ответ:
Спасибо за ответы, стало понятнее что это такое.
Ещё меня один вопрос интересует ---- когда мы строим модульную сетку сайта ( его композицию ), то мы используем другую сетку ( обычно 12 колоночную ). Это "другая" сетка ( т.е 12-колоночная, к которой будут привязаны модули ) будут так сказать "ВСПОМОГАТЕЛЬНОЙ"?
Вопрос: Мультизадачность или потоки: возможно такое в браузере?

Лучший ответ:
Web Workers предоставляют простое средство для запуска скриптов в фоновом потоке. Поток Worker'а может выполнять задачи без вмешательства в пользовательский интерфейс. К тому же, они могут осуществлять ввод/вывод, используя XMLHttpRequest (хотя атрибуты responseXML и channel всегда будут равны null). Существующий Worker может отсылать сообщения в JavaScript код, который его создал, отправляя сообщения в обработчик событий, указанный этим кодом (и наоборот).
https://developer.mozilla.org/ru/docs/DOM/Using_we...

Худший ответ:
разбейте задачу на небольшие части, например вырезание по одному куску, и запускайте их по очереди через setTimeout(0).  браузер будет успевать отвечать и перерисовываться за это время.
Вопрос: Как узнать есть ли ограничения IOPS на vps сервере?

Лучший ответ:
Вам явно обещали гарантированные iops? 
На том же физическом сервере может быть помимо вашей еще куча vds которые активно сжирают ресурсы.
Хотите гарантированной производительности - берите железные сервера в аренду, благо цены сейчас более чем гуманные.

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

Лучший ответ:
Странный выбор программы для оценки того какой диск лучше.
Надо не CrystalDiskMark использовать, а CrystalDiskInfo.
У кого SMART лучше, тот и лучше.
По поводу тестирования скорости - ее надо грамотно делать, по результатам этого тестирования можно судить о погоде в африке, но никак не о скоростных характеристиках диска.

Худший ответ:
Второй немного быстрее а так тебе яйца только в профиль
Вопрос: Как работает fastcgi в php и phpfpm?

Лучший ответ:
fastcgi - что-то вроде сервера, который слушает определенный сокет. Он держит пул процессов (воркеров), которые принимают запросы, обрабатывают, возвращают ответ и ждут дальше запроса.
Вот в этой фразе замени fastcgi на php-fpm и будет правильно. А fastcgi - это технология обработки запроса, по которой каждый воркер крутится в бесконечном цикле, обрабатывая в каждой своей итерации по одному запросу.

Худший ответ:
php fastcgi
А что есть всроенный php fastcgi? Возможно речь про встроенный веб сервер?Вот мне не понятно, что из себя представляют эти процессы. Насколько я знаю php анализируется, транслируется в байткод и потом запускается. Получается, в этих процессах крутится байткод?
Это обычные процессы уровня ОС (полученные через стандартный вызов fork). В их области памяти находится только сам интерпретатор. Мастер процесс принимает входящее соединение и отдает его на обработку соответствующему свободному рабочему процессу. Рабочий процесс поднимает с диска и каждый раз интерпретирует весь код скриптов которые затрагиваются этим запросом. Если специально ни какой кэшер оптокода подключен не был, то это делается на каждый запрос.Выигрыш только за счет того, что процесс каждый раз не запускается?
В том числе и за счет этого, т.к. fork это достаточно "дорогая" (и следовательно медленная) операция.
Вопрос: Docker Как создать пространство для PHP?

Лучший ответ:
Вероятно, надо описать там какие будут использоваться volumes, images и.т.п. Что именно, зависит от того, что именно нужно сделать. Т.е. надо почитать документацию, посмотреть примеры, которых там кстати не мало, и сделать как надо именно вам, на основе тех образов, которые вы захотите применить и.т.п.
P.S. Docker, сам по себе, довольно бесполезно учить для получения работы. Это один из многих инструментов, которым надо уметь пользоваться, чтобы что-то делать, а не что-то основное... Надо уже быть или разработчиком, или администратором, ну или смесью того и другого, и изучать его как очередной инструмент. Ну и дня, конечно, мало на такую штуку. =) До compose, я думаю, через недельку только надо добираться, изучив базовые вещи.

Худший ответ:
Полагаю ждут что-то в таком духе:
https://github.com/grinat/resume-module/tree/maste... можешь прям оттуда все выдрать, удалив либо добавив свои сервисы, для тестового сойдет
Вопрос: В чем заключается web-программирование?

Лучший ответ:
сидят целыми днями за документацией , надеются на магию
о какой магии речь? Я вот как-то ее не использую. Все больше php и методы framework-аОбязательно ли помнить все функции движков
Я так понимаю речь о методах framework-а? Тогда конечно нет. Все запомнить невозможно и документация (api) постоянно под рукой как справочник. 
https://laravel.com/api/5.5/Illuminate/Pagination/...
В плане навигации по классам, мне конечно yii2 больше нравится
www.yiiframework.com/doc-2.0/yii-data-pagination.html
Но знать, что для тои или иной "магии" есть метод - надо. Как и с функциями php. Как и с любым другим программным продуктом. Иначе как Вы будете использовать метод, если даже не знаете о его существовании? Так что прочитать документацию несколько раз надо. Не так уж ее и много.Просто иногда получается, что сидишь несколько дней по 6 часов, пытаясь исправить баг, а в итоге он сам куда-то пропадает 
Так не бывает. Магии не существует. У всего есть причина. Если Вы ее не видите, не значит, что ее нет. 6 часов - это печально и явный признак, что Вы не умеете дебажить код. Есть куча инструментов для этого, как в php так и в том же laravel. Ну и вывод всех ошибок надо включить, что бы сократить 6 часов до 15 минут.Обязательно ли помнить, что значат все эти методы и т.п. или же можно читать о них в случае необходимости
Повторюсь, надо помнить, что они есть. Надо знать где посмотреть. Можно не помнить синтаксиса или что там куда передается и что возвращается, но если не знать о их существовании совсем - то пользоваться ими не получится.В чем заключается web-программирование?
В оперировании языком программирования и сопутствующими инструментами с прицелом на web.
Вот более адекватное определение: https://ru.wikipedia.org/wiki/Веб-программирование

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

Лучший ответ:
Я вас разочарую, но в крутых БК это все делается ручками, причем достаточно высокооплачиваемых аналитиков. Матч могут перенести, отменить и т.п. Это никакой автоматикой не просчитаешь. То же самое и с линией, то бишь ставками. Для live может быть и есть какое-то добавочное ПО, которое на основании статистики по матчу (кол-во ударов, владение мячом, замены и т.п. ) корректирует ставку, но эти данные тоже надо где-то получать в реальном времени. Ну и результат тоже вносится руками, так как это важно, это же деньги. А результат там может быть не один - ставки бывают и на забитые мячи в определенном тайме, и разница забитых мячей и много чего еще. Ну и по этому событию (которое вручную ставит аналитик) уже начисляются выигрыши или возвраты. Это можно и нужно автоматизировать. Но это как раз, примитивная математика. 
А вообще линии и результаты поставляют всего несколько контор. Остальные перепродают и иначе их используют. И это свой довольно большой и сложный бизнес. Мы когда делали сайты БК с этим столкнулись, там очень много нюансов.

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

Лучший ответ:
Этой теме посвящена целая книга: "Гибкое тестирование. Практическое руководство для тестировщиков ПО и гибких команд" от авторов: Лиза Криспин, Джанет Грегори.
Там очень хорошо описана роль тестировщиков и разработчиков (в части тестирования), как лучше выстроить процесс, на что обращать внимание и т.п.
Если вкратце отвечать на исходный вопрос: необходимо распределить работу в команде таким образом, чтобы все были активно вовлечены в процесс разработка/тестирование в течение спринта. За результат отвечает вся команда, поэтому оставлять для тестирования сырого кода пол дня - это просто забивать болт на качество.

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

Лучший ответ:
>  Возможно ли это вообще?
Невозможно, FAT32 не поддерживаеи атрибуты прав доступа.

Худший ответ:
>  Возможно ли это вообще?
Невозможно, FAT32 не поддерживаеи атрибуты прав доступа.
Вопрос: Как в php найти слово из массива в заданной строке?

Лучший ответ:
php.net/manual/ru/function.strstr.php php.net/manual/ru/function.strpos.php можно использовать в цикле
php.net/manual/ru/book.strings.php
И пример со страницы доки<?php
function strpos_array($haystack, $needles) {
    if ( is_array($needles) ) {
        foreach ($needles as $str) {
            if ( is_array($str) ) {
                $pos = strpos_array($haystack, $str);
            } else {
                $pos = strpos($haystack, $str);
            }
            if ($pos !== FALSE) {
                return $pos;
            }
        }
    } else {
        return strpos($haystack, $needles);
    }
}

// Test
echo strpos_array('This is a test', array('test', 'drive')); // Output is 10

Худший ответ:
Если не ошибаюсь - так как вы хотите не сделать.
Используйте array_filter с preg_match, либо разбейте строку на слова и array_intersect_assoc
Вопрос: Как выбрать элементы с похожими id?

Лучший ответ:
Задачу можно решить с помощью css селекторов $('input[id^="user_tel-"]')
https://learn.javascript.ru/css-selectors#selektor...

Худший ответ:
Решено, фрагмент id="user_tel" переписан с использованием scc-селектора: id|="user_tel"
Вопрос: Какие среды разработки embedded system существуют под Linux?

Лучший ответ:
Для STM32 есть SW4STM32

Худший ответ:
https://electronics.stackexchange.com/questions/95...
PS: скорее всего няшных интерфейсов и суперудобств не получите
Вопрос: Есть ли аналог сайта для python как javarush?

Лучший ответ:
https://devman.org/ раньше было бесплатно, а сейчас смотрю прикрутили монетизацию с определенного уровня...

Худший ответ:
Devman недавно обновил учебную программу. Все так же много практики, но старт мягче. Есть бесплатные модули. Учебная программа здесь - Devman 2.0
Вопрос: Что начать изучать, чтобы написать бот для управления linux приложением?

Лучший ответ:
Научиться правильно задавать вопросы (это к следующему пункту): Как правильно задавать вопросы. Искать информацию и знания в сети (вот тут важно уметь правильно и точно формулировать вопрос)Изучить разработку ПОИзучить мануал к программеНаписать бота
Простейший вариант - бот может быть просто скриптом оболочки, Python или JS скриптом.

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

Лучший ответ:
У класса Input есть множество разных методов, кроме .GetAxis(). Например .GetTouch(), который понадобится вам если вы реализуете виртуальный джойстик в игре. Или например Input.gyro предоставит доступ к гироскопу, если вы хотите управлять героем, наклоняя телефон в разные стороны. В документации к классу есть много интересных примеров. Обязательно прочитайте её.

Худший ответ:
Можно создать кнопки управления (влево, вправо, вверх, вниз), после чего написать скрипты для них, которые вызывают функцию в скрипте игрока и создать специально для них 4 функции, которые будут передвигать игрока
Вопрос: MySQL+PHP и компилируемый язык?

Лучший ответ:
Лучше всего годится тот язык под эту задачу, что лично вы (или нанятый вами человек) лучше всего знаете.
Для данной задачи важно не на каком языке.
Важно - как именно сделать, а не на чем.
В том числе и для:Просто нужно быстро и отказоустойчиво доставать все данные из БД.
PHP годится.
"Отказоустойчиво доставать данные из БД" - это вообще реализуется кластером из нескольких серверов СУБД.
Язык тут не при чем.
;)Работать будут пока человек 20, но активно. Хотелось бы предусмотреть рост функционала и нагрузку с годами на ПО.
Только ваше умение работы с СУБД.
Можно хоть на ассемблере сделать - но лучше от этого работать не будет.
Ибо нагрузка - это СУБД и корректный способ работы с ней (грамотные запросы, правильные индексы). А это от языка программирования вашего приложения не зависит. Это только SQL. А он будет всегда, независимо от того, на чем у вас приложение C++ или PHP или Haskell

Худший ответ:
1C . И пусть меня все закидают тапками.
Сами Вы эту задачу будете писать до тех пор пока фирма не закроется.
А 1с решение заработает через 1-2 месяца . А вот потом , уже переписывать/модернизировать не спеша
Вопрос: Можно ли за архивировать файлы консольным скриптом?

Лучший ответ:
Можно ли за архивировать файлы консольным скриптом?
Зависит от архиватора, если он поддерживает работу с командой строкой, то конечно можно.
Например ахрхиватором rar упаковываем файл source.txt в архив с именем  arhive и расширением nonstandardextensionrar  a  arhive.nonstandardextension  source.txt
Большинство известных мне архиваторов поддерживают работу из командной строки, ключи можно посмотреть в мануалах конкретного архиватора.

Худший ответ:
Можно. Если нестандартный архиватор разрешает запуск с командной строкой.
Вопрос: Как удаленно установить программы на несколько компьютеров с ОС ubuntu?

Лучший ответ:
ansible/salt/chef/puppet. Особенно если задача не одноразовая.

Худший ответ:
Ansible самый простой вариант.
Вопрос: Как взаимодействовать при микросервисной архитектуре?

Лучший ответ:
я бы вообще рекомендовал бы для микросервисов протокол protobuf.
или gRPC.
они уже сами умеют правильно работать поверх протоколов более низкого уровня.
думается и для PHP уже есть готовые биндинги-библиотеки.
и наверняка в них реализована технология "пулов подключений", которая позволяет не разрывать соединение довольно долго.
как самую скоростную альтернативу можно рассмотреть и UDP. Если у вас надежная связь между сервисами и короткие сообщения - думается это будет крайне эффективно и без сложного программирования.
аналогично и веб-сокеты должны быть эффективны.
но, с пулом подключений.Учитывая язык PHP скриптовый, там весь скрипт не завершится пока запрос-ответ ходит, при большом количестве это всё дело пожрёт много памяти и будет полная шляпа... 
но это все предполагает, что ваш микросервис на PHP работает и не перезапускается довольно долго (часами, или хотя бы минутами и десятками минут). иначе все оптимизации бессмысленны
существует 2 режима запуска PHP скриптов. 
тот что используется для мелких говносайтиков - там действительно скрипт перезапускается на запрос.
и долговременная работа скрипта. один скрипт обрабатывает множество запросов без перезапуска.
если у вас не получается сделать вариант второй, который собственно и хорошо подходит для быстрой реализации, то 
рассмотрите вариант с внешними по отношению к вашим PHP-скриптам MQ-серверами, которые будут работать постоянно и не зависеть от перезапуска PHP.
какой нибудь RabbitMQ и т.п.

Худший ответ:
tcp - не знаю, есть ли реалзиации на php + бинарный протокол, например protobuf.
Тот же guzzle позволяет отправлять асинхронные запросы docs.guzzlephp.org/en/stable/quickstart.html?highl...
Вопрос: Как посчитать разницу между двумя данными в градусах значениями географической долготы в метрах?

Лучший ответ:
Если вы в своем вопросе имеете в виду то, что вы написали, то это банально невозможно геометрически.
Одно значение долготы (longitude) определяет линию от полюса до полюса, называемую меридиан. Два значения долготы определяют две таких линии. Эти линии находятся на поверхности Земли (или моделирующей ее фигуры - геоида или сферы), так что они не параллельны. Расстояние между этими линиями, измеренное по линии широты (latitude, параллель), таким образом, меняется от максимального на экваторе до нуля на полюсах, где они сходятся в точку. Вот расстояние между параллелями (значениями latitude, широты) вдоль меридиана посчитать можно, но не наоборот. 
Разберитесь, пожалуйста, в базовых понятиях систем координат и проекций, это избавит вас от множества вопросов автоматически.

Худший ответ:
Берёте Proj4(а ныне уже 5 версия), трансформируете в нужную зону UTM и получаете уже разницу в метрах. Но это с учётом, что у вас не большие расстояния, зоны идут по 6 градусов.
Вопрос: Как разобраться с авторизацией в Node.js?

Лучший ответ:
Ну, запугали человека - криптография-шриптография.
Модуль passport - для того и готовый модуль, что он сам всю эту криптографию-шмиптографию сделает. Просто нужно освоить несколько пунктов.
1. Установить в проект и настроить модули express-session и coockie-parser
Без них passport не будет работать - а в чём же будет тогда смысл его работы, если он в сессию и записывает юзера после регистрации.авторизации? ("сессия" - это специальный подобъект в объекте request - req.session - куда passport сам вписывает под-объект user после авторизации)
2. Разобраться, что passport - это общий модуль, который обеспечивает работу дополнительных модулей, в которых содержатся, как раз, всякие разные стратегии авторизации - локальная стратегия, через Фейсбук (passport-facebook), через Гугол (passport-google-oauth) и т.д.
3. Для авторизаций через соцсети нужно в каждом случае поразбираться, как в них создавать "приложения" - оттуда для стратегий нужно будет брать ID юзера и Key, которые эти доп-модули будут запрашивать.
4. Создаётся один большой файл-модуль для авторизации - типа auth.js - куда реквайрится сам passport плюс реквайрятся нужные (по желанию) стратегии. Типа вот так выглядит верхушка файла:
var passport = require('passport')
    , FacebookStrategy = require('passport-facebook').Strategy
    , GoogleStrategy = require('passport-google-oauth').OAuth2Strategy;
и для каждой из стратегий пишется код, который уже весь есть в документации модуля passport - его нужно оттуда взять и в нём, конечно, поразбираться. Не в криптографии-шриптогравии, а в этом конкретном коде.
(Ну, и книжку внимательно изучить - я говорил в другом месте, какую)

Худший ответ:
Я думаю, автор уроков предполагал что у обучающихся уже есть некоторые познания в бэке, потому что объяснение каждой отдельной темы которую вы озвучили, займёт много времени. 
Остановитесь на этом уроке, ознакомьтесь отдельно с механизмом сессий, отдельно с шифрованием пароля, и работой с бд, а потом заново его пройдите
Вопрос: Что делать если «Система» весит больше 200гб Mac OS?

Лучший ответ:
Да откуда тут берутся люди, которые предлагают переустановить мак? :) Что за наследие виндузятников? 
Скачайте из аппстора какой-нибудь dr. cleaner. Он бесплатен в базовой версии. Поможет вам вычистить все ненужные файлы. 
Если вы вдруг работаете в Sketch, то он умеет отлично засирать систему своими автосейвами — там на сотни гигабайт может быть мусора.

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

Лучший ответ:
Какой-то лютый банголорский звиздец помечен решением (def truncate(f, n):
    s = "%.20f" % f
    return s[:s.find('.') + n + 1]

Худший ответ:
Понимаю что уже поздно, но для спортивного интереса тоже навоял ЭМО-вариант )))num = int( num ) + float( str( num )[ str( num ).index( '.' ) : str( num ).index( '.' ) + 2 ] )