Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какие существуют популярные библиотеки/фреймворки для создания нейросетей и машинного обучения для C++?

Лучший ответ:
Что не так то? нормальная документация с примерами - https://www.tensorflow.org/api_docs/cc
Окей, из крупных проектов гуглится сразу opennn.net открыто доступно с примерами

Только непонятно зачем тебе именно c++?

Нейронные сети это работа с данными, и главное, работа со специализированным оборудованием типо gpu, которое на пару порядков быстрее обычного процессора. Какая тебе разница на чем писать в конечном счете, все равно ты будешь пользоваться готовым инструментарием по его правилам?

И да, opencl - общепринятый язык описания кода для высокоэффективных вычислений на универсально любом оборудовании (cpu/сопроцессор/видеокарта/...) это по факту язык с c++ синтаксисом.

Худший ответ:
Что не так то? нормальная документация с примерами - https://www.tensorflow.org/api_docs/cc
Окей, из крупных проектов гуглится сразу opennn.net открыто доступно с примерами

Только непонятно зачем тебе именно c++?

Нейронные сети это работа с данными, и главное, работа со специализированным оборудованием типо gpu, которое на пару порядков быстрее обычного процессора. Какая тебе разница на чем писать в конечном счете, все равно ты будешь пользоваться готовым инструментарием по его правилам?

И да, opencl - общепринятый язык описания кода для высокоэффективных вычислений на универсально любом оборудовании (cpu/сопроцессор/видеокарта/...) это по факту язык с c++ синтаксисом.
Вопрос: Как вывести массив в div?

Лучший ответ:
snippet

По такому же принципу можно сделать и добавление. И аккуратно splice мутирует исходный массив, погугли что это значит, бывает критично

Худший ответ:
Вот так решил, если кому-то интересно, но порожнему, Вы все еще можете предложить свой вариант и я буду рад и благодарен Вам!

demo: https://jsfiddle.net/s4fqpLgc/ (если нажать на кнопку, то добавляется элемент с рандомным id, раньше если бы мы добавили еще один, то предыдущий элемент изменился так-как был-бы перендер всех элементов, но с данным решением - нет

js
const arr = [
    {id: 850, name: 'hello'},
    {id: 851, name: 'world'},
    {id: 852, name: 'hello'},
    {id: 853, name: 'john'},
    {id: 854, name: 'putin'},
];

function render() {
    // .in-cart - класс модификатор, им мы будем помечать элементы которые уже имеются  на странице


    //сперва удаляем класс у всех элементов 
    $('.item').removeClass('in-cart');
  
  arr.forEach(item => {
     //помечаем элементы которые уже были отрендерены  
     $(`.item[data-id="${item.id}"]`).addClass('in-cart');
    
    //если элемента нет, то рендерим его
    if($(`.item[data-id="${item.id}"]`).length == 0) { 
       $('.list').append(`
        <span class="item in-cart" data-id="${item.id}">${item.name} id:${item.id}</sapn>
      `);
    }
  });
 
  //проходим по всем **не** помеченным элементам, так-как они лишние - удаляем 
  $('.item').each(function(){
    if(!$(this).hasClass('in-cart')) {
      $(this).remove();
    }
  });

}

render();

arr.splice(3, 1);
arr.push({id: 888, name: 'rov'});

render();
console.log(arr)

$('.add').click(function(){
    var id = Math.floor(Math.random() * 500);
    arr.push({id: id, name: 'new ' + id});
  render();
});
console.log(arr)
В итоге мы рендерим только новые элементы и избавляемся от надобности рендерит элементы снова. Это особенно помогает, когда у вас там инпуты, которы вы заполнили, потом добавили еще один элемент, а из-за того что оно рендерится снова все инпуты сбрасываются.

Ответ WapSter в целом тоже решает проблему, но я решил изменить логику немного.
Вопрос: Есть ли учебные версии конфигураций 1С?

Лучший ответ:
У 1С вроде как один бесплатный продукт для обучения: 1С:Предприятие 8.3. Версия для обучения программир...
Вот какие конфигурации там есть - это всё.

Худший ответ:
Есть
Вопрос: ИИ генерирующая звуки по описанию?

Лучший ответ:
поэтому хочу попросить подсказку 
ну начните с теории нейросетей, персептрон там, распознавание цифр, вот это все. И с математики.
Где то через год возвращайтесь )

Худший ответ:
ИИ способный генерировать звуки по описанию(Например шаги)
— Приблизительно так же, как это делают студенты при изучении Turbo Pascal. А если нужно по шагам, то писать программу лучше всего на языке java, используя встроенный в телефон акселерометр. 

как обучать и как собственно генерировать конечный файл?
— Обучать по описанию "что такое шаг?" и как на него реагировать. Конечный файл, если имеется ввиду звука - обычный .mp3 или .wav
Вопрос: Кто может занимать порт?

Лучший ответ:
Докер, LXD контейнер? че показывается ip a - из левого? или тож пустота?

Худший ответ:
А sudo netstat -ltnp что показывает?
Вопрос: Как реализовать проверку и подгрузку файлов между серверами?

Лучший ответ:
git и системы деплоя не рассматривали?

Если нужно именно на уровне файлов, то есть rsync, syncthing, и прочее, вплоть до дропбокса, прости господи.

Худший ответ:
Composer или его аналоги
Вопрос: Какие технологии необходимо знать для создания красивых анимированных веб-сайтов?

Лучший ответ:
Тут не будет идеального ответа, так как всё зависит от конкретного дизайна и его идеи.

Но если так издалека начать накидывать, то конечно же:
CSS

transforms
perspective
animations
производительность (например, такие свойства как: will-change, contain)
filters
clip-path
positions
masks


JS

requestAnimationFrame
Управление скроллом
дебаунс\тротлинг
canvas
WebGL
three.js
EventLoop - таски, в том числе рендер таски
Управление видео и аудио


SVG

фильтры
блюры
анимации
паттерны
маски


Общее

Производительность - как организовать слои и анимацию так, чтобы выдавать как можно больше fps и как можно меньше перерисовок.
Безопасные для анимации свойства (то есть знать что такое repaint и reflow)



Худший ответ:
очевидно надо гуглить js-библиотеки для анимации
Вопрос: Как отправлять текст соответствующий картинке в телеграм боте на Python?

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

Худший ответ:
1. вынеси random.choice(os.listdir('test')) в переменную, например, img
2. используй os.path.splitext(os.path.basename(img))[0], чтобы получить имя файла картинки без расширения
3. Не забудь отправить файл через photo = open('test/' + img, 'rb')
4. PROFIT
Вопрос: Можно ли создать сайт одному на java?

Лучший ответ:
Я знаю основы java и spring и могу создавать простые сайты но у меня есть крутая идея
Может быть мне стоит изучить php или python и попытаться
Вот когда на спринге напишите тогда и попытайтесь, а до тех пор вы пока даже джаву со спрингом не знаете. 

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

Худший ответ:
Можно ли создать сайт одному на java?
Да
Может быть мне стоит изучить php или python и попытаться создать сайты с их помощью?
Решайтесь
Вопрос: Как компьютер работает с файлами, открытыми в локальной сети?

Лучший ответ:
Если мы про SMB - то
Файл скачивает на ПК, открывается в проге
Файл изменяется, сохраняется на ПК
Файл копируется обратно в сетевую папку, заменяя собой лежащий там файл

Для того чтобы не перезаписать чужое, файл блокируется на изменения если его уже кто то открыл. Вы не сможете с 2х разных ПК открыть на редактирование 1 файл. Первый откроет с полными правами, последующие ПК - только просмотр

Ресурсы сервера используются только для передачи файла, поэтому и можно разворачивать файлопомойку чуть ли не на "калькуляторе"

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

Так же во время изменения файла, например 10 человек одновременно рисуют в этом файлеЭто наисложнейший функционал, разработка которого потребует заметных усилий и его в конечном счете реализуют очень мало компаний, майкрософт со своими офисными документами или тот же гугл, много заметных крупных проектов похвастаться тем же?

Рекомендую частное (не красивое) решение - одновременное подключение к рабочему столу с помощью vnc/anydesk/teamviewer (у последних двух есть возможность автоматической блокировки удаленного управления, если мышью кто то управляет, показывает одновременно все мыши с никнеймами, плюс добавить сюда голосовой чат.

В этом случае не получится редактировать одновременно и тем более разные части документа, но работа в режиме контролер-редактор очень даже возможна.
Вопрос: Как открыть порт через 2 роутера?

Лучший ответ:
А зачем такой огород из роутеров настроили?
Отключите DHCP на втором роутере, и воткните провод из первого роутера в LAN порт второго.
А проброс портов делайте сразу на нужный компьютер, на первом роутере.

Худший ответ:
Ещё вариант:
1) меняете сеть LAN на втором роутере на отличную от сети первого (например, на первом 192.168.1.0, на втором 192.168.2.0).
2) на втором роутере задаёте в настройках WAN Static IP из сети первого роутера (например, 192.168.1.10) и отключаете NAT.
3) на первом роутере добавляете маршрут на сеть второго роутера через его адрес, например, 192.168.2.0 через 192.168.1.10.
4) все настройки NAT и проброс портов делается на первом роутере, даже если компьютер подключён к второму.
Возможно будет проблема с тем, что роутер будет принимать адреса только из своей подсети в качестве назначения проброса портов (хотя он натит адреса обеих подсетей и по идее может пробрасывать порты на любую подсеть, это только ограничение пользовательского интерфейса). В таком случае можно поиграться с режимом разработчика в браузере и изменить параметры HTTP запроса.
Вопрос: Как поставлять ssl сертификаты для docker image nginx в gitlab ci?

Лучший ответ:
Сертификаты не должны быть частью docker image, и должны монтироваться снаружи. Тогда обновление сертификата не будет требовать нового билда продукта.
Прокидывать снаружи их можно через mount
Тогда обновил сертификат на маунте и перезапустил контейнер.
Если жить в кубере/опенщифте - там сертификат можно в секрете хранить и монтировать как файл.

Худший ответ:
Собственно, еще как вариант - сохранять сертификаты на какой-то носитель или в cloud secret, к которому дать доступ nginx только контейнеру.  Создать в контейнере bash script, кот будет запускаться до запуска ngixn и подтягивать сертификаты с этого носителя

Например...
Dockerfile:

.....................................
.....................................
ENTRYPOINT ["/bin/bash", "/usr/local/bin/entrypoint.sh"]
CMD ["/bin/bash", "-c", "nginx -g 'daemon off;'; nginx -s reload;"]
Вопрос: Vscode не видит модуль. в чем проблема?

Лучший ответ:
Не называйте модули свои так же, как и библиотеки используемые

Худший ответ:
скорее всего решение
Вопрос: Как в VS Code проверить проект на типизацию TypeScript?

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

Но, если допустим, изменить какой-нибудь тип (интерфейс), а файл, который на него ссылается и использует будет закрыт, то ошибку никакую не выдаст.И это хорошо. Если TypeScript LSP будет перепроверять весь проект на каждый чих, а не только открытые файлы, то писать что-то сложнее todo листа будет невозможно...

Знаю, существуют ESLint, TSLint.Они тоже для статического анализа, но для немного другого. В VSCode они так же чекают только открытые файлы, из тех же соображений производительности.
TSLint устарел. ESLint ставьте отсюда: https://marketplace.visualstudio.com/items?itemNam...

Худший ответ:
поделитесь источником, как быстро настроить для VS Code
ОК, гугл: eslint vscode 
Не благодари )) Ну реально нет смысла копипастить.
А вот то, что при компиляции нет ошибок, это плохо и надо настроить сборщик.
Вопрос: Регистры общего назначения могут иметь несколько значений?

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

Худший ответ:
При переключении контекста значения регистров нужно где-нибудь сохранить (например, в стеке), а при обратном переключении - загрузить обратно. Это происходит при вызове функций, входе в обработчики прерываний, переключении на другой процесс/поток и т.д.
Вопрос: Зачем индексировать таблицы по uuid?

Лучший ответ:
Очевидно, чтобы быстро находить по uuid.

Худший ответ:
ну используй UUID v1 или v2, они "возрастающие"
Вопрос: Как скопировать значения 3 таблиц из одной БД в другую?

Лучший ответ:
сделать дамп нужных таблиц и восстановить его в новой базе.

Худший ответ:
Дамп
Вопрос: Какой набор железа сумеет в 1 гигабит/с на торрентах и ipsec не с сильным шифрованием 200-300 Мб/с?

Лучший ответ:
Ваш маршрутизатор упирается скорее в ограничение по количеству пакетов в секунду. В BitTorrent UDP (µTP) используются не самые большие пакеты, поэтому вы и видите отличия в скорости между speedtest по TCP и скоростью скачивания торрентов.
Попробуйте отключить в torrent-клиенте поддержку µTP, оставив только TCP, и сравните показатели.

Худший ответ:
ipsec и вообще vpn требуют хороший процессор
вот тут тестировалось на самом мощном железе

Рекомендую использовать Wireguard, у микротика как минимум можно попытаться найти нормальную ядерную реализацию (тогда будет по сравнению с ipsec раза в 3-4 быстрее)
Вопрос: Как подключить ADSL телефон с RJ-11 к роутеру через Ethernet RJ-45?

Лучший ответ:
 имеет только разъём RJ-11 для ADSL/DSL
это обычный 'телефонный' разъем, он не имеет ничего общего с adsl/dsl (в том смысле что сам телефон аналоговый по своей сути)

Можно ли как-то подключить телефон через RJ-45?

лучше оперировать стандартами связи, а не типами разъемов. в данном случае разъем RJ-45 у роутера это ethernet и такой телефон к нему напрямую подключить нельзя. вероятно проще будет или купить sip-адаптер или voip телефон
НО вам лучше проконсультироваться с провайдером, потому что и купленный телефон или конвертер которые вы купите по советам в интернете, могут запросто не заработать с оборудованием вашего провайдера

Худший ответ:
Учитывая что к вам приходит оптоволокно, то все не так просто - оставьте все как есть, а свой роутер последовательно уже установленному оборудованию.

И телефон будет работать и своим роутером будете свободно рулить.
Вопрос: Выбор софтового VPN сервера?

Лучший ответ:
OpenVPN - других слов нет, и не будет.

-----
Давайте я немного разверну свой ответ. Каждый раз при очередной надобности в VPN, я пробую разные решения, начиная от PPTP и заканчивая WireGuard, не считая частнофирменных сисоц и всяких  решений исключительног под всем известную операционную систему..
И так на протяжении лет 20-и.
За эти года построил сотни сетей и решений от простых на 10-20 клиентов, до серверов доступа на несколько тысяч.
У OpenVPN есть куча недостатков, у него нет нативных клиентов, но есть три очень больших преимущества:
1) Относительно высокая скорость работы
2) Очень быстрое поднятие, установка и отладка
3) Он работает везде, на любой платформе (да, я его поднимал даже очень экзотических системах типа OS-9),  с любым MTU, на любых типах сетей, проходит все мыслимые и немыслимые NAT.
Итого: увы, на мой взгляд, лучшей альтернативы ему пока нет.

Худший ответ:
Pfsense все коробке 
L2tp для клиентов . Понимаю не центос. 
Тогда по манам l2tp в центос и айписек
Вопрос: Как выдать Let's Encrypt сертификат (на nginx)?

Лучший ответ:
Конфиг ты не показал, но я побуду телепатом: listen 80 http2; такое сделал, да?

Худший ответ:
Убрать из HTTP-секции listen http2, добавить локейшен /.well-known, ведущий в каталог, куда LE будет класть проверочные файлики.
Вопрос: Как решить ошибку нарушение прав доступа при чтении по адресу?

Лучший ответ:
Ну гарантированный улет за границу массива вот тут i < zoo.size() + 1
Что тут делает +1?

Худший ответ:
Запустите в дебаггере. Он остановится на строке с ошибкой. Проверьте значения всех переменных (zoo - размер вектора? i - чему равно?)
Вопрос: Как выйти из гитхаба?

Лучший ответ:
Параметры вашей подписи коммитов user.name и user.email вообще никакого отношения к авторизации не имеют.  А сама она не хранится в конфиге гита и к самому гиту никакого отношения не имеет. Вы же не имя и мыло вводили когда авторизовались? В гите вообще нет понятия авторизации. Вы авторизуете на внешнем сервере не гит, а пользователя компьютера. За хранение паролей отвечает credential manager, а сами пароли хранятся в недрах операционной системы, независимо от гита и хорошо спрятаны.

«Забыть» авторизацию текущего пользователя можно такой командой.
echo "url=https://github.com" | git credential reject

Также можно очистить вашу подпись для текущего пользователя компьютера
git config --unset user.name
git config --unset user.email  Но это не имеет отношения к авторизации

Худший ответ:
так измени конфиг той же командой
git config --global user.name XXX
git config --global user.email YYY
# так же убери --global если настройки локальны для репозитария

а еще конфигурация репозитария хранится в текстовом виде в .git/config просто отредактируй его
Вопрос: Не запустить код Python в командной строке. Как это сделать?

Лучший ответ:
Чтобы запустить файл, нужно писать путь не в интерактивном интерпретаторе, как вы пытаетесь, а сразу в cmd:
C:\WINDOWS\system32>python PATH/TO/file.py

Худший ответ:
Если у вас правильно установлен пайтон, то вы можете просто перенести файл в командную строку и нажать энтр.  

Это довольно сильно облегчает, ведь вам не надо каждый раз писать к файлу путь или указывать непосредственно выполнение пайтоном.
Вопрос: Выводит System.String[] вместо строки Windows.Form как испровить?

Лучший ответ:
этот string не имеет функции ToString, которая возращает строку, а имеет ту ToString, которая возращает System.ToString[]
Тут у вас и проблема. Потому что это не string, а string[]. И вам надо самому написать логику, как из массива строк получить строку.

Худший ответ:
Для вывода массива строк в виде одной строки можно воспользоваться  оператором String.Join(separator,  Array)
Вопрос: Какой выбрать маршрутизатор для учебы?

Лучший ответ:
Начинать учится надо с разных книжек.
Ну и чтобы просто поиграться, то вообще никакой маршрутизатор можно не покупать. 
Достаточно поставить программный в виртуалке типа Mikrotik CHR или pfSense, OPNsense.

Если просто хотите посмотреть веб интерфейс маршрутизаторов:
Keenetic
https://giga.demo.keenetic.pro/
Логин и пароль - demo

Asus
https://demoui.asus.com/

TP-Link 
https://www.tp-link.com/ru/support/emulator/

Linksys
ui.linksys.com

Cisco Small Business Online Devices
https://community.cisco.com/t5/small-business-onli...

Худший ответ:
любой, поддерживающий установку openwrt и иже с ним.
Вопрос: Как подключить подсветку 3pin?

Лучший ответ:
3pin и 4pin на материнской плате это судя по всему питание кулеров охлаждения корпуса и процессора.

4pin совместим с 3pin (там специальная бороздка есть) т.е. 3pin можно вставить в 4pin и он будет работать (четвертый пин используется для управления скоростью оборотов)


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

Лучший ответ:
Да можете. Да есть разница, там 1+ второй - .
Центр идет в "серцевину", второй идет на верхнюю часть, там где "замочек" , там даже "дырочка" есть

В идеале конечно посмотреть на другой колонке как сделано, но обычно "маркированный", в вашем случает с белой полосой, это "минус", но кто знает этих китайцев)

Худший ответ:
Разница есть.
https://go-radio.ru/fazirovka-dinamikov.html
https://www.drive2.ru/l/7114399/
Вопрос: Как отключить встроенный кардридер?

Лучший ответ:
в диспетчере устройств правой кнопкой - отключить устройство

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

Лучший ответ:
Незачем искать экзотику и экономить наносекунды.
Обычный ZIP со степенью сжатия 0.
Программу подберите по вкусу, их много.

Лично я пользуюсь Total Commander.
spoiler

Худший ответ:
Незачем искать экзотику и экономить наносекунды.
Обычный ZIP со степенью сжатия 0.
Программу подберите по вкусу, их много.

Лично я пользуюсь Total Commander.
spoiler
Вопрос: Хочу установить Pop!_OS, но не могу решить какая версия лучше 20.04 или 21.04?

Лучший ответ:
Ubuntu 20.04 - LTS.
В этом все плюсы и минусы.

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

Лучший ответ:
по идее, браузер сам в HTTP заголовке Accept-Language сообщает о предпочтительных языках. 

Не имел дела с этим плагином, но цепочка принятия решения о языке должна быть примерно такой:if (браузер передал заголовок Accept-Language?) {
  if (один из перечисленных языков поддерживается сайтом?) {
    использовать этот язык
  } else {
    использовать язык-сайта-по-умолчанию
} else {
  использовать язык-сайта-по-умолчанию
}

Худший ответ:
смотрите вам нужно добавить в тему файл прокси
Который делает запрос по адресу https://www.reg.ru/misc/geoip_lookup
далее разобрать этот json
вас интерсует вот это
"country":{"en":"Russia","ru":"Россия","iso_code":"RU"}
дальше  уже выбирайте селектор и где то храните язык который выбрал пользователь.

UPD снежинки нажаловались на мой коммент, так что добавлю. 
Итак я вообще считаю автовыбор языка и региона злом. Обьясню почему. 
Я много бываю в разных локациях и с разными странами. Поэтому открывая страницу на иврите я бываю несколько удивлен, или на испанском. 
Это первый кейс. 
Второй это Vpn на мобильном, где явно говорят о том что нужно сменить еще и интерфейс системы. 
Так что вот этот заголовок считаю просто пережитком прошлого, когда люди не слишком были мобильными. 

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

Лучший ответ:
https://vk.com/wall-51126445_63645
Руководство системного администратора Unix.
При вашей связке откровенно плевать на железо и как оно там устроено. 
Вас интересуют задержки и абсолютные параметры проца, сети, ввода вывода.

Худший ответ:
Самоучитель системного администратора Кенин.
Вопрос: Почему не работает fancybox в joomla 3?

Лучший ответ:
Это стандартное поведение jQuery в режиме без конфликтов jQuery.noConflict вот ответ по аналогичной теме с пояснением почему jQuery а не $
Не понимает символ $ Jquery?

Вот так подключить jquery в Джумла без jQuery.noConflict
JHtml::_('jquery.framework', false, null, false);
почитать побольше о способах отключений на форуме https://joomlaforum.ru/index.php?topic=253684.0

Худший ответ:
Я решил проблему. Если кому интересно, то вместо 
$('a.gallery').fancybox();
попробуйте прописать 
jQuery('a.gallery').fancybox();

Ну и до кучи в $(document).ready(function() {}); тоже знак доллара на jQuery поменять можно. У меня помогло
Вопрос: Во всех вакансиях по Front-End требования TypeScript?

Лучший ответ:
TS облегчает поддержку приложения (очень упрощая -  проще понять, какие данные должна вернуть твоя функция, объект и т.п.) и  удешевляет стоимость разработки команде программистов. Для начала можно почитать: https://docs.microsoft.com/ru-ru/learn/paths/build...

Худший ответ:
TS облегчает поддержку приложения (очень упрощая -  проще понять, какие данные должна вернуть твоя функция, объект и т.п.) и  удешевляет стоимость разработки команде программистов. Для начала можно почитать: https://docs.microsoft.com/ru-ru/learn/paths/build...