HowProgrammingWorks - JavaScript and Node.js Programming
6.32K subscribers
333 photos
8 videos
1 file
816 links
Программная инжененрия для JavaScript, TypeScrip, Node.js 👉 Group: https://t.me/MetarhiaHPW 👉 Node.js channel: https://t.me/metarhia 👉 Node.js group: https://t.me/nodeua
Download Telegram
Что нужно знать, чтобы пойти на Patterns 2025 и нужно ли сначала идти на Async 2025 или курс по Node.js. Отвечаю: Async и Node.js проходить до Patterns не нужно. Материалы из этих курсов, которые нужны для понимания Patterns или будут полезны как примеры использования, я даю на курсе. Что нужно знать, это большой вопрос, сначала кратко, потом подробно читайте дальше...

Входные требования: JavaScript syntax, OOP and async programming basics, как минимум год практического программирования, чтобы столкнуться с реальными проблемами на практике и знать, чего хочешь от курса. Владение базовым TypeScript будет большим плюсом, но не обязательное.

Желаемое владение следующими терминами и концепциями: Value, Identifier, Variable, Constant, Scalar, Literal, Statements and Expressions, Code block, Conditions, Loops, Assignment, Lexical scope, Primitive types, Reference types, Call stack, Function, Arrow function, Async function, Method, Class, Inheritance, Polymorphism, Encapsulation, Interface, Getters and setters, Structural composition, Aggregation, Prototype, Constructor, Signature, Argument, Parameter, Recursion, Callback, Callable, Generator, Iterator, Serialization, Pure function, Lambda expression, Side effects, Closure, Array, Structure, Record, Destructuring, Enum, Collection, Set, Hash table, Linked list, Queue, git, Docker, Linux basics and shell, Bitwise operators, Ternary operator, Promise, async/await, Static and Private fields, Modularity (ESM, CommonJS), Unit tests, Error handling,

Желаемые, но необязательные знания: Heap, Procedure, Type, Flag, Regular expression, Interface, Namespaces, Type systems, Strong typing, Weak typing, Duck typing, Static typing, Dynamic typing, Nominal typing, Structural typing, Explicit typing, Partial application, Currying, Higher order, Function composition, Pipe, Memoization, Mutable state, Immutable state, Stack, Deque, Tree, Graph, Async generator, Async iterator, Chaining, IIFE, Async IIFE, void, yield, Property descriptors, Sealing properties, Freezing properties, Functional object, WeakMap, WeakSet, Typed arrays, Mixins, Proxy, Reflect, Atomics, WeakRef, FinalizationRegistry, Abstract class, Hidden class, Object form, Introspection, Reflection, Event loop, Debugging, Profiling, Flame graph, Memory dump, Chrome Developer tools, CI and building tools, DOM manipulation, Fetch API, npm/yarn, Semantic versioning, Linting, Covariance, Contravariance, Type inference, Type guards, Union types, Generics, Algebraic data types, Pattern matching, Trie, B-tree, Red-black tree, AVL tree, Binary search tree, Big O notation and complexity, WebAssembly, Service Workers, Web Workers, Streams API, Observables, Disposable

Подробности на отдельном канале: https://t.me/+I-suNalcHC03NGUy
8👍5🔥2💯1
🤔 Не до конца понимаете, что такое паттерны и зачем они?
Я записал бесплатный курс Patterns Mini

За 3 часа (7 модулей) вы получите
- Обзор всех GoF паттернов: Creational, Structural, Behavioral
- Введение в Enterprise, Data Access и архитектурные паттерны
- Вы увидите, как паттерны работают на продакшене в JS/TS проектах
- Будут объяснены принципы GRASP и SOLID и их влияние на код
– Поймете, как мыслят опытные инженеры
– Я покажу примеры кода некоторых паттернов с разбором

🚀 В результате вы увидите, как паттерны помогают на практике писать простой, поддерживаемый и расширяемый код.

Это тест-драйв обширного курса, после которого вы точно поймете, почему курс Patterns стал переломным для сотен разработчиков, почему разработчики становятся в разы эффективнее, могут получать больше пользы от LLM инструментов как Cursor, Copilot, Claude, Codex и лучше взаимодействовать в коллективе с коллегами и заказчиками.

Бесплатно. Онлайн. 7 модулей по ~30 минут.
На днях начинается регистрация, чтобы не пропустить, заходите сейчас: https://t.me/+I-suNalcHC03NGUy
17🔥4👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
🧩 Кроме GoF и SOLID на Patterns и Patterns Mini мы разберем GRASP, эти принципы гораздо важнее, но менее известны. Материалы уже публикуются тут: https://t.me/+I-suNalcHC03NGUy
4👍1🔥1🫡1
Вынужден сказать вам правду. Паттерны - это не только решения типовых проблем, но и бездонный источник идей для излишнего усложнения и запутывания кодовой базы:
- как только человек выучил паттерны, ему хочется применять их везде, и в первые месяцы после умных книжек программист творит сплошной оверинженеринг: в коде появляется в разы больше абстракций, чем нужно,
- абстракции не бесплатны: всякая гибкость, динамическая диспетчеризация, pure fabrication и мелкодисперсная декомпозиция повышают количество объектов, слоев и вызовов, просаживается производительность,
- часто код становится сложным для понимания, повышается порог входа: без глубоких знаний коллеги испытывают трудности из-за того, что вы перестали решать проблемы в лоб и применяете сложные для них концепции,
- усложняются отладка и тестирование: цепочки делегирования и фабрики маскируют реальные места ошибок, теряется стек, или в нем появляются непонятные промежуточные слои, перехватчики, а если используется рефлексия, то - динамически построенные абстракции, которых в коде никто не видит.

Что делать?

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

Все это есть на курсе в виде сквозного проекта, подробнее тут: https://nodeua.com/Patterns-2025
9💯5🔥42👍2🤯1
Нам не нужен паттерн Adapter, поскольку EventEmitter уже передает нужные события во все места напрямую.

Нам не нужен паттерн Facade, поскольку наша абстракция уже, к счастью, блокирует весь реальный поток, считайте, нам повезло.

Нам не нужен Data Access Layer, поскольку ORM делает запросы, а мы еле успеваем не затопить соседей.

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

Нам не нужен курс по паттернам, все мемы уже собраны здесь: https://t.me/+I-suNalcHC03NGUy
🤣212👍1
💡 Ссылки на наши ресурсы

Открытые группы и каналы

- Україномовний канал спільноти https://t.me/metarhia
- Україномовна група https://t.me/nodeua

- Канал с общими вопросами https://t.me/HowProgrammingWorks
- Группа с общими вопросами https://t.me/MetarhiaHPW

- Канал для CTO и архитекторов https://t.me/MetarhiaChiefs
- Группа для техстека Metarhia: https://t.me/metaserverless

- Канал для начинающих https://t.me/metaedu
- Группа для начинающих https://t.me/+znsE73dPWLQ5Nzky

- Группа сообщества по асинхронному программированию https://t.me/asyncify
- Онбординг для желающих пойти на курс Patterns: https://t.me/patterns_javascript

Закрытые ресурсы

- Группа сообщества - доступна всем курсам - https://www.patreon.com/cw/tshemsedinov/membership
- Еженедельный созвон по четвергам - доступен всем курсам - https://www.patreon.com/cw/tshemsedinov/membership
- Курс по ноде и асинхронному программированию - https://www.patreon.com/cw/tshemsedinov/membership
- Курс по паттернам - https://nodeua.com/Patterns-2025
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥2👍1
👀 Классификация типов полиморфизма (дополняется)

1. Ad-hoc polymorphism
- Function and method overloading
- Operator overloading
- Type-class polymorphism (e.g. Haskell type classes, Rust traits)
- Coercion polymorphism
2. Subtype polymorphism
- Class inheritance
- Interface / protocol polymorphism
- Structural (duck typing) polymorphism
3. Parametric polymorphism
- Generic functions
- Generic data structures
4. Dispatch mechanisms
- Dynamic dispatch
- Virtual functions and methods
- Multiple or multimethod dispatch

👉 Примеры и пояснения тут: https://t.me/patterns_javascript
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥1
Началась регистрация на бесплатный курс Patterns Mini 👉 https://nodeua.com/Patterns-2025-free
🎉8👍5🤩43