Очень интересно смотреть реализацию важнейших механизмов веб-сервера на нативе, благодарю!) Только, что это за редактор, а-ля "ностальджи"?)
@TimurShemsedinov5 жыл бұрын
Ну вот завтра будет лекция по сессиям и кукам и постепенно по всем темам для нативной реализации с5рвера пройдем
@TimurShemsedinov5 жыл бұрын
ru.wikipedia.org/wiki/Midnight_Commander
@bogdanpavlovskiy39534 жыл бұрын
@@TimurShemsedinov Очень интересно как вы работаете в данном редакторе в действительно over больших проектах. Там где куча файлов не считая node модулей. Например как вы обходитесь без поиска по проекту, удобного ui для git конфликтов, и так далее
@TimurShemsedinov4 жыл бұрын
@@bogdanpavlovskiy3953 в этом редакторе есть поиск по файлам и каталогам, даже по маскам и регулярным выражениям, есть замена. Все операции с git я делаю в консоли, и вообще большинство профессионалов не используют для гита UI и все делают в консоли, даже работая при этом в сложных IDE, потому, что из UI доступны 10% всех возможностей гита, вот как вы делаете cherry-pick, interactive rebase, fixup commits, squash, изменение remote и прочее?
@kombuchamp4 жыл бұрын
@@TimurShemsedinov Ну, на самом деле, все, что Вы перечислили, можно сделать в webstorm. Хотя вот например bisect сделать нельзя.
@Jaood_xD2 жыл бұрын
40:08 "Благодаря библиотечке 'cluster' createServer сделается только в master-процессе...". Звучит как эдакая "магия", при чём контринтуитивная. Подскажите, пожалуйста, какие-то источники и статьи, в которых подробнее об этом можно почитать. Спасибо
@TimurShemsedinov2 жыл бұрын
Только исходники ноды github.com/nodejs/node/tree/main/lib/internal/cluster
@PerfectSwingDance5 жыл бұрын
2 вопроса касательно лекции 1) В сериализаторе types необходимо писать уже асинхронный код? (async/await, promises, запрсы к бд и стороннему API) 2) Как все-таки можно избежать рекурсии в serve функции Спасибо
@TimurShemsedinov5 жыл бұрын
1. Насколько я помню, в этой лекции у меня все примеры имеют или синхронные сериализаторы или асинхронные на колбеках. Можно делать и на промисах или асин-эвейтах, но я не понимаю, почему у Вас в скобках написано в вопросе о сериализаторах про запросы к БД и АПИ. В новой лекции по АПИ сериализаторы я вообще убрал: kzbin.info/www/bejne/Y5LdamRojad2q5o 2. В каком именно примере рекурсия, можно ссылку на пример или время в видео?
@PerfectSwingDance5 жыл бұрын
@@TimurShemsedinov 32:53
@PerfectSwingDance5 жыл бұрын
@@TimurShemsedinov Подразумеваю, что можно реализовать с помощью async/await или же через promisы сторонние запросы (к бд, к API)? Или так лучше не делать?
@TimurShemsedinov5 жыл бұрын
@@PerfectSwingDance сторонние запросы можно и нужно делать, но в обработчиках, а не на сериализаторе
@TheLevius Жыл бұрын
А я вот не понимаю одного момента. Мы когда отправляем ссылку на сокет в воркер через 'message' и апдейтим сервер в него, с последующим эмитом 'connection', что произойдет если в этот момент на балансер придет еще запрос, а http сервер на воркере еще не обработал запрос, он обработается нормально? мы же запишем уже другой сервер в сокет. Можно пояснить этот момент?
@dmytroyurchenko2002 жыл бұрын
вопрос касательно обработчика http.createServer((req, res) => { res.end(router({ req, res }) + ''); }).listen(8000); в исходнике NodeServer/native-advanced/server.js Если мы перепишем этот синхронный обработчик просто добавив async (req, res): http.createServer(async (req, res) => { res.end(router({ req, res }) + ''); }).listen(8000); станет ли обработчик асинхронным и не блокирующим приход новых запросов как в исходнике NodeServer/native-async/server.js ?
@TimurShemsedinov2 жыл бұрын
Не станет, код не становится асинхронным от использования асинхронных контрактов (колюеков, промисов, async/await, асинхронных итераторов и т.д.), нужно, чтобы в коде были операции ввода-вывода, которые разрывают последовательное выполнение потока js-кода. Смотрите курс по асинхронному программированию.
@nix7705 Жыл бұрын
Дуже цікаво, але мабуть як теорія щоб розуміти як воно працює всередині тих же фреймворків, бо якщо пройтися по вакансіям усі вимагають фреймворки
@TimurShemsedinov Жыл бұрын
Ну от почитайте питания на інтерв'ю які я разповсюджую як галузевий стандарт github.com/tshemsedinov/NodeJS-Interview-Questions
@TimurShemsedinov Жыл бұрын
Дуже раджу це подивитись kzbin.info/www/bejne/Y5LdamRojad2q5o
@randomtron3 жыл бұрын
Почему на 29:49 вы говорите, что у нас синхронный сервер? Разве сам факт того, что мы передаём в createServer коллбэк, не делает его асинхронным?
@TimurShemsedinov3 жыл бұрын
Чуть ранише на минуту отмотайте и пепесмотрите. Там все функции на роутинге синхронные
@igorsavelev90135 жыл бұрын
Почему Марк Аврелий так плохо относится к Java?)
@TimurShemsedinov5 жыл бұрын
Марк Аврелий любит мультипарадигменное программирование, как он может любить язык, в котором все парадигмы нужно реализовывать через ООП
@HowManyShrimps-g7z5 жыл бұрын
Java is a crap. lol
@CokePaul6 жыл бұрын
Небольшая поправка для regexp: вместо `const rx = new RegExp(key.replace('*', '(.*)'))` стоит делать `const rx = new RegExp(key.replace(/\*/g, '(.*)'))`, чтобы все параметры вошли в массив. Также интересует вопрос - стоит ли расширять резолверы типов добавлением хедеров с ContentType?
@CokePaul6 жыл бұрын
routing is simple and amazing
@TimurShemsedinov6 жыл бұрын
But note that route handlers still should not contain business logic, only calls to submodule with business logic because mixing network, db, business, math, rendering, security, logging etc. to a single handler is not a good idea. See terrible example here: github.com/HowProgrammingWorks/AbstractionLayers/blob/master/JavaScript/badServer.js and following: kzbin.info/www/bejne/mpDZqoJoeNCchcU and kzbin.info/www/bejne/hWikapael5pqaac I'll publish special lecture to clarify this issue.
@HowManyShrimps-g7z5 жыл бұрын
Как запускать сервер на node?
@TimurShemsedinov5 жыл бұрын
Если это не понятно, то нужно смотреть это видео, например, на 4:40 я запускаю
@HowManyShrimps-g7z5 жыл бұрын
@@TimurShemsedinov проморгал. Спасибо.
@HowManyShrimps-g7z5 жыл бұрын
@@TimurShemsedinov 21:55 возраст не обновляется потому, что мы передаем число, а не функцию?
@TimurShemsedinov5 жыл бұрын
@@HowManyShrimps-g7z да, потому, что число это скаляр, а функция передается по ссылке. Посмотрите мои вводные лекции в программирование и в JavaScript, чтоб таких вопросов не возникало при использовании ноды.