HowProgrammingWorks - JavaScript and Node.js Programming
6.29K subscribers
338 photos
8 videos
1 file
831 links
Программная инжененрия для 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
Download Telegram
В бесплатном курсе Patterns Mini вышли последние три лекции и там не только про GRASP и SOLID, но есть, например, паттерн SAGA и его реализацию через оркестрацию и хореографию https://nodeua.com/Patterns-2025-free
10👍2🔥2😁1
Выводы: если что-то работает, но мы не видим, что за этим стоит обширная теория, может казаться, что оно просто работает, но нет, как Маккарти понял из Черча только слово функция и еще символ лямбда понравился, примерно в таком же стиле процедурное программирование связано с машиной Тьюринга. Просто мы еще находимся на начальном этапе становления программирования, через 200-300 лет могут быть построены адекватные теории, а сейчас пока много мифов и псевдонаучного бреда, не нужно делать вид, что все все поняли и из правильной теории напрямую вывели красивую практику и построили технические решения, все складывалось кое-как, работает и работает. Затем вывели из практики инженерные обобщения как GRASP, SOLID, GOF, они ненаучны, они полностью практичны, и ограничены, но работают, более того, и для ФП работают, имея определенные ограничения, нужно больше времени, чтобы объединить это в теорию, и вот когда ее выведут, общую для всех парадигм, то людям, которые будут учиться по новым книгам, будет казаться, что это все так и было выведено сразу гладко и согласовано.

https://youtu.be/bUwCRiED4Uo
👍7🤯2💯1
🧩 Через неделю мы начинаем курс Pattern 2025
Уже заполнено 70% мест, со среды цены поднимутся.
https://nodeua.com/Patterns-2025
- Курс Patterns Mini уже завершился
- В выходные будет воркшоп по парадигмам программирования
- С понедельника начинается первая неделя 2025 года
👍9🎉31
Напоминаю, в субботу и воскресенье 22-23 ноября воркшоп по парадигмам. Раньше он был частью курса по паттернам, но я вынес его в отдельный воркшоп. Все, кто до завтра успеет купить курс по паттернам, попадают на воркшоп бесплатно.

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

До начала курса по паттернам очень важно понимать базовые принципы ООП, ФП, процедурного и прототипного программирования, разные стили: асинхронный, реактивный, контрактный, декларативный. Отсидеться в одном фреймворке не удастся, свести все задачи к одной парадигме и стилю - тоже не выйдет.

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

Знание парадигм помогает адаптировать паттерны для вашего конкретного случая, выбирать правильный инструмент под задачу, сокращая сложность и ошибки. Идеи ООП (инкапсуляция, структурная композиция, наследование, полиморфизм, делегирование, сокрытие, диспетчеризация, зацепление и связывание в коде) формируют устойчивые и поддерживаемые системы.

Паттерны + парадигмы дают общую архитектурную грамотность, без которой невозможно строить продукты на JavaScript и TypeScript. Осваивая парадигмы и паттерны Вы развиваете инженерное мышление, умение работать с абстракциями, связями, ответственностями и потоками данных.

Это фундамент, который превращает разработчика из автора скриптов на 1 раз в синьора, способного создавать масштабные, долгоживущие и надежные системы.
👍8🫡3💯21
🧩 Сегодня в 23:59 (GMT+3) поднимается цена на Patterns 2025, еще можно успеть
https://nodeua.com/Patterns-2025

⭐️ Воркшоп по парадигмам программирования 22-23 ноября

Программа воркшопа:

Суббота - с 11:00 до 14:00
Объектно-ориентированное программирование и обзор парадигм, как писать одновременно понятный и эффективный код, задания с проверкой, разбор решений в прямом эфире.

Воскресенье - с 11:00 до 14:30
Функциональное программирование, реактивное, асинхронное, контрактное, автоматное и другие парадигмы и обзор характеристик кода, которые они дают.

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

Будут рассмотрены понятия: инкапсуляция, наследование, полиморфизм (Ad-hoc, Subtype, Parametric, Dynamic dispatch и другие), структурная композиция, агрегация, делегирование, дженерики, закон Деметры, чистые функции, функции первого класса, мутабельности против иммутабельности, ссылочная прозрачность, функции высшего порядка, композиция функций, каррирование, частичное применение, ADT, скрытое и явное состояние, ленивые вычисления, декларативный и императивный стиль, рекурсия против циклов, обобщенное программирование, функторы, монады и мное другое.

Что говорят те, кто прошли воркшоп: начали понимать как оптимальнее решать свои задачи и ощутили уверенность в своих решениях, потому, что они были приняты не случайно и не потому, что всегда так делали или это единственное, что мы знали, а с пониманием разных подходов и характеристик кода, которые они дают, сильных и слабых сторон, получаемых в результате.
4👍1🔥1🤣1
На воркшопе по парадигмам (на этих выходных) я решил развернуть их сравнение через свойства кода, которые мы достигаем благодаря следующим идеям и их комбинациям:

- Control Flow: Statements, algorithm steps, Expression, Command-style, Declarative style
- State: Mutable, Immutable, Copy-on-write, Stateless
- Contexts: Objects, Records, Closures, Containers, Modules
- Branching: statement, expressions, guards, pattern matching
- Iteration: Loops, Recursion, Iterators / Generators, Streams
- Instantiation: Operator new, Creational patterns like Factory, Builder, Closures, Containers, Cloning
- Inheritance: Classes (extends), Interfaces (implements), Prototype programming, Mixins, Composition, Aggregation, Partial/Curry, Traits
- Primitive values: Scalars, Boxing, Value Objects, Containers
- Purity: Pure functions, Functions with side effects, IO monads
- Evaluation Flow: Function composition, Nested calls, Pipeline |>
- Dependencies: pass, injection, global namespaces, service locators
- Structural Control: Pattern matching, Nested if/else conditionals, Guards
- Error handling: Total functions, Throwing exceptions, Error codes, Return null, undefined, Null objects, Option / Either / Result / Promise
- Stability of Effects: Idempotent operations, Order-sensitive operations, Commutative / associative operations
- Resource Control: Manual destruction, RAII / disposables, Region-based allocation
- Concurrency Model: Shared-memory, Stateless, Message passing (Actor model),  Transactional
- Asynchronity: Callback, Promise, Async/await, Future, Task, Async compose, Observer (EventEmitter, EventTarget, Signal), Streams and other abstractions
- Other topics: Data Ownership, Code granularity, Point-free style, Referential transparency
4👍1🔥1💯1