💡 Принципы SOLID для JavaScript, TypeScript, Node.js и асинхронного программирования

  Рет қаралды 9,186

Timur Shemsedinov

24 күн бұрын

⭐ Из курса Node.js 2024 и Async 2024, записано, как стартовый семинар для формирования нового курса «Паттерны Async & Node.js» (Переосмысление GRASP, SOLID и GoF паттернов для Frontend & Backend). Содержание:
🔹 Принцип единственной ответственности - SRP (single responsibility principle)
🔹 Принцип открытости/закрытости - OCP (open-closed principle)
🔹 Принцип подстановки Лисков - LSP (Liskov substitution principle)
🔹 Принцип разделения интерфейса - ISP (interface segregation principle)
🔹 Принцип инверсии зависимостей - DIP (dependency inversion principle)
👉 Описание курса Async 2024: github.com/HowProgrammingWorks/Index/blob/master/Courses/Async-2024.md
👉 Старый курс по асинхронности: github.com/HowProgrammingWorks/Index/blob/master/Courses/Asynchronous.md
👉 Node.js 2024 описание курса: github.com/HowProgrammingWorks/Index/blob/master/Courses/NodeJS-2024.md
👉 Открытый курс по Node.js: github.com/HowProgrammingWorks/Index/blob/master/Courses/NodeJS.md
👉 Оглавление всех открытых лекций: github.com/HowProgrammingWorks/Index
👉 Github автора: github.com/tshemsedinov

Пікірлер: 33
@oeaoo
@oeaoo 24 күн бұрын
SOLID давно пора переосмыслять. Люди справедливо теряются в расшифровках, а также упарываются в теорию, не осознавая что на практике у них все не так солидно. Все в мире работает не абсолютно, а в меру. И принципы, возведенные в абсолют наоборот, вредят реальным проектам. Как говорят китайцы - настоящее знанее - это знание достаточности. И мудрость разработки заключается в осознавании уместности и меры следования принципам и понимании где их нужно нарушить и ради чего. Тогда разработка будет живая, а значит адаптивная, гибкая и разумная. А значит еще и гуманная, внезапно)
@1Malak16
@1Malak16 24 күн бұрын
Аминь. Подписываюсь под каждым словом.
@TimurShemsedinov
@TimurShemsedinov 23 күн бұрын
Любые знания и обобщения не переносятся в другие языки автоматически, даже в одном языке с ходом времени нужно все переосмыслять, язык меняется и уже мало кто помнит про псевдомассив arguments и variable hoisting, или про то, что setTimeout может принимать первым аргументом string, а кто помнит, то хотел бы побыстрее забыть об этом.
@oeaoo
@oeaoo 23 күн бұрын
@@TimurShemsedinov ну я занимаюсь джавой и у нас огромная масса теоретических зомби. Не хочу быть категоричным, но знаю точно - очень важно различать поверхностное знание ради самоутверждения от полезного знания, "личностно перпендикулярному".
@blackbirdalternativedevelo1068
@blackbirdalternativedevelo1068 24 күн бұрын
Спасибо за хороший разговор
@Ajax222able
@Ajax222able 24 күн бұрын
Солидное видео
@RussellCrowe-rd5xi
@RussellCrowe-rd5xi 24 күн бұрын
Здравствуйте Тимур! Какую документацию по JS вы можете посоветовать новичку, MDN или же его аналог doka? Заранее признателен за ответ
@TimurShemsedinov
@TimurShemsedinov 24 күн бұрын
MDN лучше всего
@RussellCrowe-rd5xi
@RussellCrowe-rd5xi 24 күн бұрын
@@TimurShemsedinov А стоит ли использовать learnJS для подготовки к собеседованиям к примеру, или это не надежный русурс?
@He1ss
@He1ss 23 күн бұрын
@@RussellCrowe-rd5xi learnJs прекрасный источник, с его помощью вы сможете успешно пройти любое интервью по javascript
@chikenmacnugget
@chikenmacnugget 5 күн бұрын
@@RussellCrowe-rd5xi лерн жс придурочный ресурс
@somnium2405
@somnium2405 23 күн бұрын
Кстати странно, что empty element приобразовывается в undefined а не в null
@TimurShemsedinov
@TimurShemsedinov 23 күн бұрын
Это не странно, массивы в js, конечно, универсальная штука, но массивы объектов обычно маленькие, а большими бывают массивы чисел. Ну вот null это пустое значение для ссылочных типов, а undefined - для скалярных. Значит можно пренебречь тем, как обрабатываются маленькие массивы и оптимизировать дырявые массивы для чисел.
@johnstrayk5208
@johnstrayk5208 24 күн бұрын
Сколько же у вас свободного времени такие ролики делать
@TimurShemsedinov
@TimurShemsedinov 24 күн бұрын
Три таких семинара в неделю
@oleksandrivashchenko7916
@oleksandrivashchenko7916 24 күн бұрын
Ждём грасп
@TimurShemsedinov
@TimurShemsedinov 24 күн бұрын
Первая часть уже записана
@TimurShemsedinov
@TimurShemsedinov 23 күн бұрын
Получаем GRASP
@KvN-UA
@KvN-UA 23 күн бұрын
‼⏳ Сподобалась ідея зробити семінар і взяти конкретну задачу щоб chatGPT вирішував її в різних підходах / стилях, можливо мовах 💯
@erjigit17
@erjigit17 24 күн бұрын
Звук, пожалуйста исправьте микрофон
@TimurShemsedinov
@TimurShemsedinov 24 күн бұрын
А что не так со звуком?
@andreygazhala7577
@andreygazhala7577 24 күн бұрын
Всё ок со звуком
@TheLevius
@TheLevius 24 күн бұрын
@@andreygazhala7577 для уровня телефонного разговора да. Контента выходит много, а качество звука это важнейшая составляющая и за это время можно было бы озаботиться и вложиться в звуковуху и микрофон, а не сидеть с гарнитуры
@TimurShemsedinov
@TimurShemsedinov 24 күн бұрын
@@TheLevius дело в том, что это семинар, а не контент, я вообще контент не выпускаю
@TimurShemsedinov
@TimurShemsedinov 24 күн бұрын
Микрофоны rode и sennheiser на полочке стоят, но это не удобно и я не вижу разницы в звуке, на них и на pixel buds
@dimapopov5962
@dimapopov5962 24 күн бұрын
1:00 Немає інтерфейсів в JS.
@TimurShemsedinov
@TimurShemsedinov 24 күн бұрын
Те, що їх нема, це не не привід їх не використовувати
@1Malak16
@1Malak16 24 күн бұрын
Ахах) Эта пять
@mmospanenko
@mmospanenko 23 күн бұрын
Буде україномовна версія?
@TimurShemsedinov
@TimurShemsedinov 23 күн бұрын
Ну це не лекція, а семінар, вільна розмова, я їх роблю, щоб підготуватись та щоб зрозуміти, як студентам заходить. Лекції у курсі по патернам будуть українською теж.
Khóa ly biệt
01:00
Đào Nguyễn Ánh - Hữu Hưng
Рет қаралды 21 МЛН
ОСКАР ИСПОРТИЛ ДЖОНИ ЖИЗНЬ 😢 @lenta_com
01:01