ru
Feedback
HowProgrammingWorks - JavaScript and Node.js Programming

HowProgrammingWorks - JavaScript and Node.js Programming

Открыть в Telegram

Программная инжененрия для JavaScript, TypeScrip, Node.js 👉 Group: https://t.me/How_Programming_Works 👉 Node.js channel: https://t.me/metarhia 👉 Node.js group: https://t.me/nodeua

Больше
6 468
Подписчики
-524 часа
-207 дней
-1830 день
Архив постов
Все время уходил от вопроса, про литературу, которую стоит читать программистам, это потому, что мой список выглядит странно и сложно объяснить, почему не Дядя Боб и не Мартин Фаулер... Они тоже, конечно, полезны, но все же мой список такой: - Рене Декарт - Людвиг Витгенштейн - Ноам Хомский - Кристофер Александер - Алан Тьюринг - Джон фон Нейман - Норберт Винер - Виктор Глушков - Клод Шеннон - Людвиг фон Берталанфи - Стаффорд Бир - Уильям Эшби - Эдсгер Дейкстра - Дональд Кнут Это не так много, и точно более полезно, чем нетфликс и амазон

🔁 Какие проблемы асинхронного программирования Вам мешают?
Anonymous voting

Если монолит можно написать за 6 месяцев, а разделив на 4 микросервиса можно успеть за 3 месяца, то на сколько микросервисов
Если монолит можно написать за 6 месяцев, а разделив на 4 микросервиса можно успеть за 3 месяца, то на сколько микросервисов нужно разделить, чтобы написать проект за 2 часа?

Как нужно писать вакансию (или CV): - 10 лет опыта высоконагруженной архитектуры - 7 лет опыта параллельного программирования - 5 лет опыта паттернов банды четырех - 3 года как покрываю код тестами - 2 года как программирую без switch/case - 1 год опыта с функциями до 10 строк - Уже неделя понятного именования переменных Хобби: - В свободное время люблю обрабатывать ошибки ВУЗы 50 лет клепают людей, умеющих в сортировки, красночерные деревья, списки и графы, но не способных дать имя переменной. Компании 15 лет как спрашивают на собесах про идемпотентность и решардинг, но не обращают внимание на синтаксический мусор в коде и семантический кретинизм у кандидатов.

⚠️ Запись на курсы Async 2024 и NodeJS 2024 закрывается 30 апреля. Я хочу реорганизовать формат обучения, и таких длинных годичных курсов я наверно делать не буду больше, максимум 3 месяца для материала. А в формате года - будет интернатура, работа на проекте. Все, кто уже на учатся по плану до конца года. Кто начал позже - не беда, материалы все в записи есть, а практику делать и задавать вопросы - есть созвоны (3 раза в неделю это по двум курсам если должно хватить всем). 👉 Async 2024: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2024.md 👉 NodeJS 2024: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/NodeJS-2024.md

Вы знаете зазницу между events.once и EventEmitter.prototype.once, то, что они одинаково называются, сбивает многих с толку,
Вы знаете зазницу между events.once и EventEmitter.prototype.once, то, что они одинаково называются, сбивает многих с толку, тут задача, направленная на выявление разницы: https://github.com/HowProgrammingWorks/Events/blob/main/JavaScript/Tasks/5-once.js

Что такое семантика кода? В новом API промисифицированном setInterval возвращает асинхронный итератор, а цикл for await на ка
Что такое семантика кода? В новом API промисифицированном setInterval возвращает асинхронный итератор, а цикл for await на каждой итерации дает один и тот же объект items. Мы конечно можем использовать shift для того, чтобы модифицировать массив на каждой итерации, но это еще больше запутывает семантику. Идея итерирования сломана. Другие подобные примеры в курсе Node.js 2024: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/NodeJS-2024.md

Что из этого вы использовали для улучшения обработки ошибок?
Anonymous voting

🔁 Автоматическое преобразование исключений в события — посмотрите код в примере. Да, это работае в #NodeJS еще с версии v12.
🔁 Автоматическое преобразование исключений в события — посмотрите код в примере. Да, это работае в #NodeJS еще с версии v12.16.0 и такого очень много в асинхронном программировании и в ноде. При чем все события 'error' придут после завершения цикла for..of, а вот события 'item' будут приходить по ходу цикла. Почему так и как сделать, чтобы они приходили в пордке цикла? Это задания из курса 👉 Async 2024: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2024.md

🚀 Architecture 2024 This is a small part of a new course I'm working on 🖼 Metarhia Architectural Principles: * Isolation with IoC (Inversion of Control) and DI (Dependency Injection) * Metaprogramming (dynamic metamodel interpretation) * Platform-agnostic domain codebase * Layered architecture (no system code in applications) * Multiparadigm programming and semantic code * Wide use of DSL (Domain-Specific Languages) * Contract programming (defined with schemas) * Modularity with auto-binding (no dependency locators in domain code) 👉 News will be here: https://t.me/MetarhiaChiefs

🔵 Merathia / Sphere — концепция и техничесткое задание на цифровую платформу в открытом коде https://youtu.be/iAJ7dbdNrXk ⭐️ Кто смотрел мои лекции или проходил курс по ноде, джаваскрипту или асинхронному программированию, и хотел бы набрать практического опыта разработки, проекты в открытом коде - это лучший вариант, можно контрибьютить в Ноду, Метархию, но это системный код. А практику и прикладного и системного кода можно набрать в нашем новом проекте Sphere. Что это, я описал на английском вот тут оригинал концепции, и тут же я пишу ТЗ каждый день понемногу: https://github.com/metarhia/Sphere 👉 Заходите в канал https://t.me/MetarhiaChiefs и группу https://t.me/metaserverless где мы будем организовывать разработку этой платформы

❓ Почему читаемость и простота кода стратегически важна для программных систем? 💡 Казалось бы, оптимизация не критична, работает же, и ладно. По потреблению ресурсов это так, ну ест в 10 раз больше памяти и процессора, это часто не критично. Сложно читаемый код связывает ресурсы разработчиков и проект очень быстро увязает в долгих изменениях. Переписать сложно, а добавлять новые возможности выходит все медленнее. В какой-то момент все это схлопывается и код отправляется на свалку. ✅ Семантическая оптимизация, направленная на понятность, упрощение, читаемость, скорость изменений, гибкость кода, оказываются на порядок важнее потребления ресурсов. 👉 Но какие техники программирования к этому ведут? Подробнее будет скоро видео на моем ютюбе: https://youtube.com/@TimurShemsedinov

🔁 Второй блок материалов курса Async 2024 будет включать абстракции: ⭐️ AsyncQueue - асинхронная очередь, которая может заменить для микроуровня механизмы внешних MQ систем, значительно повышая общую производительность и упрощая архитектуру. ⭐️ AsyncPool - асинхронный пул (обстракция для переиспользования объектов, сетевых соединений и конекшенов к базам данных, других разделаемых или ограниченных ресурсов) ⭐️ AsyncCollector - асинхронная коллекция для сбора данных из разных мест и общим местом сборки с поддержкой разных контрактов: callback, thenable, event, async/await ⭐️ Async Generator, Async Iterator - часть стандарта JavaScript для итерирования заранее неизвестных коллекций, потоков данных, курсоров баз данных, криптографии, других потоковых преобразований ⭐️ Locks API, Semaphore, Mutex - абстракции блокировок для избежания конфликтов доступа к данным и разделяемым ресурсам ⭐️ Chain of responsibility - паттерн цепочка ответственности как замена антипаттерна middleware - позволяет создавать надежный роутинг запросов на эндпоинты и многое другое 👉 Полное огравление курса тут: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2024.md

🔁 Добавлены еще несколько тем в задачник по асинхронному программированию курса Async 2024. По теоретическому материалу готово 50% лекций, новые материалы мы будем проходить уже летом. А до этого будет много практики. 7 тем из 👉 1. Callbacks 👉 2. Thenable 👉 3. Promises 👉 4. Async/await 👉 5. Events 👉 6. Signals 👉 7. Timers 🚀 На очереди задачи по темам: обработка ошибок, стримы, антипаттерны и рефакторинг асинхронщины, тестирование асинхронного кода. 👉 Полное огравление курса тут: https://github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2024.md

Join to start Diia core review: https://t.me/+f6d5MCe-euthOTFi     static isHttpCode(code: number | undefined)
Join to start Diia core review: https://t.me/+f6d5MCe-euthOTFi
    static isHttpCode(code: number | undefined): boolean {
        if (typeof code !== 'number') {
            return false
        }

        if (code >= 100 && code < 600) {
            return true
        }

        return false
    }

HowProgrammingWorks - JavaScript and Node.js Programming - Статистика и аналитика Telegram-канала @howprogrammingworks