Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как лучше хранить изображений? Одна папка или много?

Лучший ответ:
С разделителями в бд вообще никогда ничего хранить не надо. 
Если информация о файлах в БД не нужна, то не хранить её там вообще. 
Делать отдельные папки будет вполне достаточно.

Худший ответ:
Это называется "отношение 1 к многим", оно же one to many, оно же 1:n. На уровне базы данных выглядит так:
Таблица tasks:
- id
- ...
Таблица photos:
- id
- task_id (foreign key)
- ...
Все фотографии для конкретного задания получаются запросом:SELECT * FROM photos WHERE task_id=X
В каких папках их хранить на самом диске - вопрос отдельный и по большому счету несущественный.
Вопрос: Как решить правильно простенькую задачку по php?

Лучший ответ:
// По вашему коду:
$source_string = 'abcdefghijklmnopqrstuvwxyz';
$string_randomized = str_shuffle($source_string); // Перетасовали буквы внутри строки
echo substr($string_randomized, 0, 6); // Вывели первые 6, без повторений и каждый раз после str_shuffle - уникально-рандомно (относительно, но задача именно этого и требует)

// По красоте:
$characters = 'abcdefghijklmnopqrstuvwxyz';
echo substr(str_shuffle($characters), 0, 6);

// Тестируем в psych:
>>> $characters = 'abcdefghijklmnopqrstuvwxyz';
=> "abcdefghijklmnopqrstuvwxyz"
>>> echo substr(str_shuffle($characters), 0, 6);
fzpvad
>>> echo substr(str_shuffle($characters), 0, 6);
bzeiyj
>>> echo substr(str_shuffle($characters), 0, 6);
pgkuaq
>>> echo substr(str_shuffle($characters), 0, 6);
otjszx
>>> echo substr(str_shuffle($characters), 0, 6);
zjwaox
>>> echo substr(str_shuffle($characters), 0, 6);
rxuhnv
>>> echo substr(str_shuffle($characters), 0, 6);
rihoec
>>> echo substr(str_shuffle($characters), 0, 6);
uwdfgn
>>>

Худший ответ:
$letters = range('a', 'z');
shuffle($letters);
$newStr = "";
for($i = 0;$i < 6;$i++) {
    $newStr .= $letters[array_rand($letters)];
}
echo $newStr;
"чтобы буквы не повторялись." - этот пункт не выполнен
Вопрос: Насколько реально создать бота для игры Hearthstone?

Лучший ответ:
кхм.. (это за предысторию)..
1 - карты выкидывать элементарно - приличный рандомайзер, и вуаля
2 - а вот бот - все зависит от интерфейса - надо изучить пути взаимодействия, с браузерными делами наиболее доступна инфа (для примера - steam, сам по себе виндовый интерфейс - юзает CEF, флаг в руки в вперед..) .. про UNITY .. ну копнуть надо...
3 - машинное обучение - разделяйте задачу на подзадачи... в данном случае, как минимум две ветки - как ботать юнити? .. и машинное обучение?
машинного "мозга" для .net в том числе - есть, гуглится элементарно (ну или найду в закромах, если попросите)
дело не в этом - что есть цель? и каковы рычаги? (см п2 - как ботать юнити) .. потом да.. можно и к "мозгам" приступать
ps мнда.. ну удачи.. с мозгами..

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

Лучший ответ:
Использовать генератор:def f(x):
    for x in range(x):
        print('Hi!')
        yield x

for i in f(10):
    print(i)

Худший ответ:
ну ты же Celery  осваиваешь ))
delay()
Вопрос: Какой использовать плагин для счетчика кликов / заказов на wordpress?

Лучший ответ:
Можно написать самостоятельно Примерно строк 10-15 и все заработает.
1)Регистрируйте настройку "Количество заков"
2)Подключаете jQuery скрипт который при клике на кнопь ajax-ом командует php увиличить переменную опции на 1
3) Шоткодом выводите в нужное место шаблона результат
4) Наслаждаетесь результатом

Худший ответ:
https://ru.wordpress.org/plugins/kama-clic-counter/
https://wordpress.org/plugins/ozh-click-counter/
https://wordpress.org/plugins/wp-click-info/
Наберите в гугл  wordpress click counter и подберите подходящее или напишите небольшой рнр скрипт
Вопрос: Что за «Thsfold\unsrs» в «C:\ProgramData»?

Лучший ответ:
Да что угодно может быть, например результат работы какого нибудь трояна, или какое-то ПО.
Смотрите на даты создания, есть ли свежие файлы, смотрите какой софт был запущен в это время.
Что не системное это факт- можете удалять.
Самое плохое что может случится - какая-то программа не найдет данных.
Поэтому можете не удалить а заархивировать и посмотреть - если они важны для какой-то программы, вы об этом первым узнаете.
Если вам интересно точно узнать что это и вы готовы потратить на это некоторое время - то вот.

Худший ответ:
Это результат программы скриншотов экрана HideScreener . Можете удалить. Может открыть любой файл через paint и увидите что это картинка.
Вопрос: Почему я должен писать именно так, а не иначе?

Лучший ответ:
не, писать ты можешь, как угодно. но работать это не будет.
почему ты написал "добрый день", а не "дываобыв валывн"? так же и тут.

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

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

Худший ответ:
Вас банально могут не пустить в стор с формулировкой "выглядит как копия". 
И проблемы тоже могут возникнуть, если не юридические, так просто на уровне стора (через жалобу удалят приложение)
Вопрос: Как скрыть название плагинов в WordPress?

Лучший ответ:
builtwith.com   смотрит пути, названия скриптов стандартные выводы, и еще всякое, соответственно, для скрыть от него применяемые на сайте плагин, надо переименовать его, заменить названия скриптов и стилей, изменить классы которые он добавляет в HTML, короче - проще написать свое решение.  
А еще можно запретить обращение к сайту с IP которые пользует builtwith,  но для понять чего там и как у вас достаточно чуваку который разбирается заглянуть в DOM сайта. 
В общем занятие это не благодарное скрывать плагин

Худший ответ:
на самом деле, скрыть основную массу плагинов от большинства таких утилит (включая wp-scan), достаточно просто:
1 перемещаем и переименовываем папку wp-content
2 перемещаем все ассеты на cdn, либо используем плагин для оптимизации фронтенда (минифицируем и конкатенируем скрипты и стили) и перемещаем полученное на cdn
3 убираем строку generated by - у WP и плагинов
4 прикрываем стандартные эндпоинты, вроде wp-login.php, rest api и тп (так же доступно через плагины)
5 не используем некоторые специфичные для WP сервисы (jetpack, gravatar и тп)
В некоторых случаях таким алгоритмом можно будет запутать даже человека. Но на самом деле практического смысла в этом вообще нет.
Единственный нормальный вариант, когда это все скрывается, это когда используют headless WP. Но в этом случае как таковой цели скрыть WP не стоит, это скорее побочный эффект
Вопрос: Существует ли логотип для искусственного интеллекта вообще?

Лучший ответ:
Выбирай ТЫЦ

Худший ответ:
Типа того (только повёрнут влево, но иногда - без верхней части черепа: только крупные шестерни и контур черепа снизу):
Вопрос: С одного на другой ПК — продолжение работы?

Лучший ответ:
Ну настройте RDP и вопрос решен. Или anydesk

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

Лучший ответ:
Смело копируй! Так ты поймешь как сделаны те или иные элементы в дизайне. Почти каждый дизайнер "компилирует" работу из уже увиденных работ, проектов. Не важно осознает он это или нет. Опытные дизайнеры потому и не копируют, потому что уже много всего повидали. Копируя работы твой арсенал дизайн-фишечек будет расти. Только не рисуй на слое, копируй по памяти, открыл, посмотрел, закрыл и дальше по кругу - это в разы эффективнее. Иногда тебе захочется привнести что-то свое - дай волю творчеству. Анализируй работы, старайся понять что можно улучшить в дизайне, что сделано круто и почему это круто. Ну и естественно, полная копирка идет в стол) И да, главное больше практики. Теорию тоже не забывай, без нее плохо будешь понимать что и почему.

Худший ответ:
всё перечисленное
Вопрос: Как отправить эмодзи с помощью DISCORD py bot?

Лучший ответ:
У emoji есть числовой id, который можно посмотреть прямо в клиенте. Далее client.get_emoji(этот_id) приводишь к str.

Худший ответ:
Если анимированный то нужно нитро а если простой то выбери смайлик и перед ниим поставь \
Вопрос: На какой факультет (ВУЗ) поступать разработчику игр?

Лучший ответ:
В игрострое как в кино есть:
- технари (погроммисты)
- режиссеры (геймдизайнеры, придумывают основной "дизайн"-концепцию, типа Кодзима, Гейб Ньюэлл и прочие)
- художники (концепты, скетчи, 3D и прочее)
- звукорежиссеры (а ты думал как в танчиках звуки записаны? да-да, чел стоял с микрофоном у танка)
Так вот, каждую профессию готовят в РАЗНЫХ вузах, какой из них выбрать - тебе решать.

Худший ответ:
MIT
Если серьезно, то вам рано поступать, пока вы не знаете зачем вам поступать, какие знания вам требуются, кто конкретно вас будет вести как ваш преподаватель по каждой конкретной дициплине
Вы собираетесь потратить 4-6 самых продуктивных лет вникуда
Вероятность, что вы получите те знания, в том месте около нуля
Вопрос: Как обратиться к after, before через js?

Лучший ответ:
Никак

Худший ответ:
Смотря что ты хочешь сделать. Стилями можно управлять, если немного пошевелиться.
https://codepen.io/kris-iris/pen/MPJjgolet wrap = document.querySelector('.wrap');

wrap.onclick = ()=> wrap.classList.toggle('noMagic');.wrap{
  position: relative;
  width: 500px;
  height: 200px;
  background: lightblue;
  margin: 0 auto;
}

.wrap::before{
  position: absolute;
  content: 'Кликни на меня, детка!';
  height: 50px;
  width: 100%;
  background: lightgreen;
  transition: 2s;
}

.noMagic.wrap::before{
  content: 'А ты молодец!';
  display: flex;
  justify-content: center;
  align-items: center;
  animation: move 1s forwards;
}

@keyFrames move{
  100% {
    height: 100%;
  }
}
Вопрос: Что должен знать дизайнер интерфейсов о бэкенд разработке?

Лучший ответ:
Ничего не должен.

Худший ответ:
Максимум может пригодится знание фронтэнд разработки, а про бэкенд можете даже не думать.
Вопрос: Как выложить проект на vue.js на хостинг?

Лучший ответ:
А чем проект генерировал? Если vue-cli то запусти npm run build и потом положи на хостинг содержимое папки dist.

Худший ответ:
А хостинг node.js нужен или это не важно?
Вопрос: Как искать в гугле по домену?

Лучший ответ:
в гугле к примеру:твой запрос site:.net

Худший ответ:
site:*.net запрос
Вопрос: Какую авторизацию сделать на сайте?

Лучший ответ:
Можете рассмотреть вариант использования JWT в PHP: Авторизация на сайте с JSON Web Token

Худший ответ:
Сделайте вариант авторизации через соцсети.
Вопрос: Как сделать авторизацию в React без Redux?

Лучший ответ:
На примере использования токенов.
Авторизация:
1. Отправляем пару логин/пароль, в случае успеха получаем в ответе токен и данные пользователя.
2. Пишем данные пользователя в состояние главного компонента, из него прокидываем в контекст.
3. Токен пишем в cookie и в заголовки по-умолчанию библиотеки для http запросов.
4. Колбеки авторизации и логаута можно так-же прокинуть в форму логина и кнопку логаута через контекст.
Инициализация приложения:
1. Проверяем cookie на наличие токена.
2. Если он есть запрашиваем пользователя и пишем в главный компонент.
3. Пишем токен в заголовки по-умолчанию библиотеки для http запросов.
Логаут:
1. Удаляем токен из cookie и заголовков по-умолчанию библиотеки для http запросов.
2. Удаляем данные пользователя из состояния главного компонента.
3. Делаем редирект с защищенной страницы.

Худший ответ:
просто куки для логина, ну а для реги тут хранилище не нужно, вы же на бек всё отдавать будете
Вопрос: Какой игровой движок посоветуете новичку для android?

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

Худший ответ:
Интересно, чем Godot лучше Unity для 2d.
С Unity точно не промахнетесь, мне кажется. Если захочется большего, потом на 3d сможете перейти без особых проблем, когда освоите движок.
Возможно, вам будет полезна такая подборка движков на ютуб канале (конкретно по C#).
Вопрос: Зачем нужен Spring Cloud?

Лучший ответ:
Spring Cloud нужен для автоматизации разворачивания сервисов на облачных платформах, типа AWS, Azure, GCP и прочем. Обычно он нужен тогда, когда система должна автоматически реагировать на изменение нагрузки и разворачивать новые инстансы десятками.

Худший ответ:
Наверно, нужно было погуглить, потому что эта статья https://habr.com/company/jugru/blog/341026/ первая в поиске. И вот еще статья о том, чтобы представить как это работает www.springboottutorial.com/creating-microservices-...
Вопрос: Как скачать аудио сообщение от пользователя в телеграм боте?

Лучший ответ:
import telebot
import requests

token = 'Токен'
bot = telebot.TeleBot(token)

@bot.message_handler(content_types=['voice','text'])
def repeat_all_message(message):
	file_info = bot.get_file(message.voice.file_id)
	file = requests.get('https://api.telegram.org/file/bot{0}/{1}'.format(token, file_info.file_path))

	with open('voice.ogg','wb') as f:
		f.write(file.content)

if __name__ == '__main__':
    bot.polling(none_stop=True)
Самый простой код. Он получает от пользователя голосовое сообщение и сохраняет в папку бота, с именем voice.ogg.
Здесь все записи перезаписываются в один файл. Так что создавайте директорию, в качестве имени указывайте id пользователя. И сохраняйте туда файлы. Думаю, разберетесь.

Худший ответ:
А есть возможность скачать ВСЕ аудио сообщения от определенного пользователя?
Вопрос: Можно ли комментировать локальные переменные Visual Studio [нельзя]?

Лучший ответ:
Если вы имеете ввиду xml-документацию, то нельзя. 
Локальные переменные - детали реализации. Старайтесь давать самодокументируемые названия, а сложные участки кода дополнительно сопровождайте комментариями.

Худший ответ:
Не думаю, XML документацию используют только для описания классов, свойств и методов. В чём смысл документировать локальную переменную? Руководство
Вопрос: Артефакты и краш системы после запуска?

Лучший ответ:
Скорее всего в вашем случае вышла из строя видеокарта.
Почему в WinPE у вас все работает без проблем? Дело в том, что в WinPE отсутствуют драйвера для видеокарты и в этом режиме видео выводится с интегрированной в процессор карты.
Рекомендации:
1. Попробовать разные версии драйверов на вашу видеокарту (маловероятно что поможет)
2. Отключить видеокарту в Биосе (если возможно) или не ставить на нее драйвера и пользоваться ноутбуком для простых вещей - просмотр видео/офисные приложения/интернет
3. Т.к. в вашей модели ноутбука видеокарта дискретная это значит, что ее можно заменить как отдельную плату, попробуйте найти аналогичную, либо обратиться в сервисный центр.
P.S. И проверьте на всякий случай температуру со всех датчиков, но навряд ли в этом проблема.

Худший ответ:
Запустил спокойно Windows 10 PE и на протяжении получаса крутил видео 
На встроенном или "внешнем" "видеоядре"?обновил драйвера и началась та же история...
А если откатить?ОЗУ в порядке, проверял в MemTest, SSD тоже цел.
И нахрена?Спустя несколько часов экран снова покрылся артефактами,
Хоть покажи (или расскажи, но точно) какими именно, а то знаешь ли, за одни артефакты отвечает Видимопроцессор, за другие - Видимопамять.
Вопрос: Как сделать ленивую загрузку без рывков при скролле?

Лучший ответ:
Ну очевидно же, что блоку, в который загрузится изображение нужно установить ширину и высоту, такую же как у изображения, которое будет загружено.UPD. 
Добавьте в свою lazy-функцию плавное изменение размера блока и "рывков" не будет... Да и вообще, сколько "экземпляров" задач, столько и вариантов решений

Худший ответ:
Если изображение не имеет высоты, то можно указать его пропорцию и вычислять высоту, примерно вот так - https://jsfiddle.net/Svupol/emucw18g/16/
Вопрос: Как запустить цикл по новой?

Лучший ответ:
Не надо ни "по новой", ни циклов:

let index = -1;
setInterval(el => {
  index = (index + 1) % keys.length;
  el.innerText = keys[index];
}, 1500, document.querySelector('.slide-words'));

Худший ответ:
Не надо ни "по новой", ни циклов:

let index = -1;
setInterval(el => {
  index = (index + 1) % keys.length;
  el.innerText = keys[index];
}, 1500, document.querySelector('.slide-words'));
Вопрос: Индустриальная embedded система на базе Android-смартфона — как структурно правильно реализовывать?

Лучший ответ:
Зачем? Для этого существуют специальные промышленные компьютеры. Корпуса к ним с хорошей изоляцией, защищённые сенсорные панели и.т.п. 
А коммуникации строятся не по воздуху, обычно, а по проводам, всё же, т.к. помех может быть очень много.

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

Лучший ответ:
Я занимаюсь эмбеддед-разработкой очень много лет (лет 20 примерно), и если я мог бы выбирать сейчас, я бы выбрал просто программирование. По одной простой причине - больше платят. Раньше я разрабатывал и железо, и схемы, и платы, и вообще делал всё, вплоть до испытаний и документации, но уже много лет я всем этим не занимаюсь, а занимаюсь только кодингом, по той же причине  - больше платят. 
В целом, если вы хотите именно в эмбеддинг, начните с микроконтроллеров семейства Stm32, купите недорогую плату Discovery или Nucleo и разбирайтесь. Также необходимо будет знать основы схемотехники. Даже если вы не будете сами разрабатывать схемы, всё равно придётся разбираться с готовыми схемами, и нужно будет полностью понимать, как что работает. Уметь держать паяльник и работать с осциллографом также будет большим плюсом.
Потом можно будет освоить FPGA и язык Verilog, но это очень на любителя и только при большом желании, потому что с зарплатами тут вообще печаль.
И да, английский нужен обязательно, без вариантов. Чтение технического текста свободно, быстро и без словаря - в любом случае, разговорный - только для международных компаний или при работе на иностранного заказчика, но это как раз самое вкусное. Так что английский нужен.
А так, программирование, оно и есть программирование. Языки: С - чаще всего, С++ - иногда, С# и другие - для "верхнего уровня", но тоже не помешают. Алгоритмы могут спросить на собесе, но сильно их заучивать не стоит. Более важен практический опыт, чем теория. Операционные системы - для верхнего уровня - Windows, Linux, для нижнего - различные РТОС или "голое железо". В мощных железках - Linux, так что с ним лучше дружить очень хорошо.

Худший ответ:
embedded на мой взгляд даст по жизни больше геморроя и меньше денег. Плюс стандартная ситуация углубиться в какую-то одну область или платформу, стать специалистом, а по прошествии 5-10 лет окажется что наступил EOL того в чём ты стал гуру.
Так что я бы советовал сосредоточиться на программировании, больше шансов достичь успеха.
Вопрос: Как зафиксировать клик по псевдоклассу after?

Лучший ответ:
придется

Худший ответ:
К сожалению, не получится, псевдоэлементы (before, after) не являются частью DOM-дерева.
Вопрос: Есть ли Стратегия борьбы со сбросом состояния RabbitMQ?

Лучший ответ:
1) Разработчики RabbitMQ ко всем потерям данных на стороне самого RabbitMQ относятся критично, так что, если в какой-то момент будете уверены, что теряет данные именно он, то смело создавайте баг (с подробностями как повторить).
2) Если админы не умеют настраивать стейтфул приложения в контейнерной среде или куча ручных операций, то это больше административная задача, чтобы научиться и, например, использовать шаблоны/чарты/т.п. для предотвращения сюрпризов. Но также RabbitMQ в контейнере нужно настраивать, чтобы не получать деградации и дампов.
3) Со стороны самого RabbitMQ есть зеркалирование очередей (queue mirroring) для дублирования данных, что позволит внезапно терять ноды (но восстановление может обойтись высоким потреблением процессора).
4) Также рекомендую логировать и идентифицировать каждое отправленное и полученное сообщение, чтобы оценивать проблему. Для большей достоверности можно включить логирование ещё и на уровне RabbitMQ (если позволяют ресурсы). На прошлой работе у нас был свой плагин для RabbitMQ, который получал копию всех полученных и отправленных сообщений, выгребал из них нужную метаинформацию и отправлял в Graylog.
5) Ну и конечно нужно делать отправку и приём с подтверждением, но это, я думаю, Вы и без меня уже делаете.

Худший ответ:
Ну и напоследок вовремя появившаяся статья от Мегафона: https://habr.com/post/434016/
Вопрос: Зависает линукс после экрана логина, как исправить?

Лучший ответ:
Сталкивался с такой же проблемой (ноут с картой nvidia). Мне помогла инструкция из видео https://youtu.be/VrkhWZ8-zvM 
и еще https://gist.github.com/mari-linhares/cef4cb344040...

Худший ответ:
Взять Debian netinst, поставить минимальную систему.
Если будет нормально работать, то дальше добавить всё, что захочется.
Вопрос: Как зайти на госзакупки с linux?

Лучший ответ:
Через браузер Спутник с поддержкой криптографии, работает на Альте, Астре и Убунте (Минте). КриптоПРО для линукса есть, правда работает через консоль

Худший ответ:
>> сие чудо работает исключительно на IE 
Бред. Крипто Про спокойно работает на Firefox и Safari.
Вопрос: Нужна помощь в исправлении скрипта для Unity на C#. Кто разбирается?

Лучший ответ:
Вам нужен OnTriggerStay

Худший ответ:
void OnTriggerEnter(Collider other) срабатывает в момент столкновения коллайдеров-триггеров. А нажатие клавиши клавиатуры происходит в другой момент. Вот и не срабатывает, хотя не всегда. Обычно такие вещи пишутся в Update.
Вопрос: Стоит ли начинающему веб-программисту во фриланс?

Лучший ответ:
Можно ли сразу во фриланс?Извините за тупые вопросыА можно я за молоком схожу?
Зачем эти риторические вопросы?
Выучите - молодец. Не выучите - учите. А что, если мы скажем, что возмжно выучить, а вы не выучите, что будет-то? Розовый снег пойдет?Можно ли сразу во фриланс? 
Можно и в космос полететь. Получится - хорошо, не получится - увы, от того, что вам ответят, опять таки, что изменится?

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

Лучший ответ:
1. Забудьте о таких подходах в React. Лишняя бесполезная сущность. Лучше вынести в отдельный модуль сами запросы к API.
2. Если используете голый API React, то это самый верный путь, так как при изменении state произойдет обновление компонента и его потомков.import React, { Component } from 'react';
import { Child } from './Child';
import { getSomeData } from './api';

class Parent extends Component {
  state = {
    data: [],
  };

  componentDidMount() {
    getSomeData.then(data => this.setState({ data });
  }

  render() {
    return <Child data={this.state.data} />;
  }
}

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

Лучший ответ:
Остановить отрисовку во время редактирования.

Худший ответ:
Остановить отрисовку во время редактирования.