TGViewer
Channel Public Channel
HowProgrammingWorks - JavaScript and Node.js Programming

HowProgrammingWorks - JavaScript and Node.js Programming

@howprogrammingworks

Программная инжененрия для 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
Subscribers
6.52K
Photos
382
Videos
22
Links
966

Showing posts older than #1663 · Back to latest

Older Posts 20 shown
Post #1661 4.52K
🚀 Структура программы менторинга Patterns 2024 постепенно вырисовывается

🧩 Unit 1: Structure and Modularity
    Week 1: Code Characteristics and Optimization Strategies
    Week 2: Native features in language and platforms
    Week 3: Instantiation: Creational Patterns and Techniques
    Week 4: Isolation: Separation of Concerns
🧩 Unit 2: Execution and Contracts
    Week 5: Contracts: Interfaces for Component Interaction
    Week 6: Decoupling with Events and Messaging
    Week 7: Streams: Data Flows and Transformations
    Week 8: Handling Errors: Exceptions and Soft Failures
🧩 Unit 3: Runtime for Applications
    Week 9: Semantics: Expressive DSLs
    Week 10: All-agnostic as a Default Strategy
    Week 11: Scaling Applications and Architectural Styles
    Week 12: Methodology: How to Start Applying Concepts

Начало 1 октября, уже а наставников кол-во ограниченное, я не успею подготовить новых до начала, так что резервируете.
На днях обновим сайт и разложим темы по неделям https://nodeua.com/Patterns-2024-buy.html
  • 👍 5
  • ❤ 2
  • 🔥 1
Post #1659 3.69K

Forwarded from Node.js Ukraine Community

- What is a service?
- Everything that's not a controller is a service
- Where is a model?
- Models.... are on the stage
  • 🤣 16
  • ❤ 5
  • 💯 2
Post #1658 4.49K
✔️ Как в JavaScript/TypeScript реализуется SoC (separation of concerns) и для чего он нам?

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

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

🧩 Mediator - снижает зацепление и подойдет нам для изоляции базы от транспорта.
🧩 Strategy - реализация стратегии для JavaScript это Map<PropertyKey, Implementation> что позволяет абстрагироваться от Implementation, находя его по ключу и работая по обобщенному интерфейсу.
🧩 Bridge - позволяет разделять абстракции и снижать зацепление, но не характерен для JavaScriot.
🧩 Abstract factory - для JavaScript абстрактная фабрика сводится к стратегии инстанциирования: Map<PropertyKey, Creator> и применяется как и стратегия, но в том месте, где нам нужно создавать инстансы (тут Creator это любой порождающий паттерн).

Признаки проблемы:
• Если вы не можете модифицировать работу с базой не трогая транспорт или бизнес-логику, не задевая базу, то нужно начинать внедрять разделение ответственности (separation of concerns).
• Если сложно написать юниттесты, а что-то протестировать можно только все целиком - ну вот оно, вы нашли проблему.
• Если код невозможно переиспользовать и вы чувствуете, что одно и то же пишете уже много раз.

Примеры на курсе по паттернам 👉 https://nodeua.com/Patterns-2024-buy.html
  • ❤ 15
  • 👍 8
  • 🔥 3
  • 💯 2
  • 🤯 1
Post #1657 3.92K
  • 🤯 17
  • 💯 7
  • 🤣 4
  • 😢 2
  • ❤ 1
  • 👍 1
Post #1656 4.48K
1 сентября: понятный и красивый код может появляться только из стремления использовать его для образовательных целей. Если Вы видите понятный и красивый код, то будьте уверены, что или сам программист или его учитель выработали этот стиль для того, чтобы пояснить свою мысль. Ни стремление к производительности, ни бизнес-задачи, ни большой опыт не создают таких условий. Они могут порождать очень крутой код, сложный и даже надежный, но он в нем не будет человеко-ориентированности и эстетики.
  • 👍 27
  • ❤ 7
  • 💯 3
  • 🫡 2
Post #1655 4.24K

Forwarded from Node.js Ukraine Community

🐥 Почему все так плохо с архитектурой приложений?
Потому, что «less competence - more confidence» (меньше компетенции - больше уверенности)
Потому, что все ведут себя как: только if/class/export выучил, уже хватается за архитектуру.
Ну конечно, структура - это не круто, архитектура - это круто.
А тем временем, из плохой структуры, из рыхлой структуры можно построить только 2 этажа, при возведении третьего уже все обрушается на первый.
  • 😢 14
  • 👍 10
  • 🔥 4
  • ⚡ 1
Post #1653 6.25K
🧩 Добавил рассрочку на курс Patterns. Еще спрашивают, будут ли скидки - нет, потому что экономика программы наставничества не сойдется, я нанимаю лучших специалистов и экономить на качестве обучения это плохая идея. Можно ли приобрести Patterns без наставничества – да, это называется минимальный тариф. 👉 https://nodeua.com/Patterns-2024-buy.html
  • ❤ 14
  • 🫡 3
  • 👍 1
Post #1652 6.69K
Post #1651 4.75K

Forwarded from Node.js Ukraine Community

Кстати, открыта предварительная регистрация на курс Patterns 2024 — я уже изучил всю доступную литературу и конкурентов и теперь уверен — аналогов нет, ни кто так и не смог сделать приличной адаптации паттернов к JavaScript, TypeScript, Async, Node.js миру — https://nodeua.com/Patterns-2024-buy.html
  • 🔥 18
  • 👍 8
  • 🫡 2
  • 🤩 1
Post #1650 4.84K
Кто еще не смотрел стрим про связь профессионального роста и паттернов, то готовьтесь, там больше 7 часов, и главное — все по делу, про то, как и чему учиться и про важность культуры, которая проникает через паттерны https://www.youtube.com/watch?v=QzxklJW4_LM
YouTube 🧩 Самые полезные знания для роста — Переосмысление паттернов для JavaScript, TypeScript, Node.js 👉 Все курсы автора: https://www.patreon.com/collection/1913313 👉 Следующий стрим: https://youtube.com/live/tpY01TLctAs 👉 Регистрация на курс: https://nodeua.com/Patterns-2024-buy.html 👉 Github автора: https://github.com/tshemsedinov 👉 Примеры кода по…
  • 🔥 20
  • ❤ 7
  • 👍 6
Post #1649 4.13K
Post #1648 4.05K
Я редко делаю стримы, ну вот как завтра будет. Можем найти несколько, и я считаю, вот этот до сих пор достаточно актуальный и глубокий https://youtu.be/qipIRQptP_4
YouTube Hacktoberfest 2021: лайвкодинг и ревью кода, Node.js worker_threads и thread pool для Metarhia 👉 Все курсы автора: https://www.patreon.com/collection/1913313 Github автора: https://github.com/tshemsedinov Ответы на вопросы по ноде, JavaScript и программной инженерии
  • 👍 11
  • ❤ 2
  • 💯 2
Post #1643 4.14K
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →