Forwarded from Metarhia/NodeUA - Node.js Ukraine Community
SOLID, GRASP, Law of Demeter, Inversion of Control, DI, Separation of Concerns, DDD, Contract programming, etc... What are they needed for?
Anonymous Poll
25%
Just for interviews
41%
For everyday use
18%
Increases self-esteem
16%
WTF?
Чего вам не хватает, чтоб получить большую ЗП?
Anonymous Poll
45%
Хардскилов
28%
Знаний предметной области
37%
Умение красиво говорить
27%
Знакомств
41%
Наглости
5%
Доброжелательности
8%
Меня всё устраивает
4%
Меня ЗП вообще не волнует
❓ Interview questions on asynchronous programming, this is the first version, published for corrections and improvements, you can suggest your fixes here: https://github.com/tshemsedinov/Async-Interview-Questions
GitHub
GitHub - tshemsedinov/Async-Interview-Questions: Asynchronous programming Interview Questions
Asynchronous programming Interview Questions . Contribute to tshemsedinov/Async-Interview-Questions development by creating an account on GitHub.
Forwarded from Metarhia/NodeUA - Node.js Ukraine Community
Какие паттерны Вы используете в Node.js и JavaScript?
Anonymous Poll
49%
Adapter
55%
Observer
43%
Strategy
11%
Bridge
57%
Factory
33%
Iterator
9%
Mediator
37%
Proxy
39%
Facade
36%
Builder
💡 На кого можно подписаться в Github:
1. Маттео Калина https://github.com/mcollina
2. Джеймс Снелл https://github.com/jasnell
3. Ден Абрамов https://github.com/gaearon
4. Анна Хеннингсен https://github.com/addaleax
5. Рик Тротт https://github.com/Trott
6. Илья Климов https://github.com/xanf
7. Андрей Ситник https://github.com/ai
8. Федор Индутный https://github.com/indutny
9. Линус Торвальдс https://github.com/torvalds
10. Дуглас Крокфорд https://github.com/douglascrockford
11. Брендон Эйх https://github.com/BrendanEich
12. Андерс Хейлсберг https://github.com/ahejlsberg
🖼 А тут еще профили контрибьторов, менторов и выпускников Метархии:
1. Алексей Орленко https://github.com/aqrln
2. Дмитрий Нечай https://github.com/nechaido
3. Денис Отришко https://github.com/lundibundi
4. Николай Белочуб https://github.com/belochub
5. Георг Ольденбургер https://github.com/georgolden
6. Владислав Духин https://github.com/primeare
7. Иван Тимошенко https://github.com/ivan-tymoshenko
8. Лидия Иванова https://github.com/lidaamber
9. Алексей Голиков https://github.com/agil
10. Артем Черненький https://github.com/GYFK
11. Андрей Высоцкий https://github.com/Gagnant
12. Сергей Нановский https://github.com/snanovskyi
13. Влад Дзюба https://github.com/DzyubSpirit
14. Роман Огиевич https://github.com/rohiievych
15. Диана Болотенюк https://github.com/mille-nium
16. Дмитрий Михайлов https://github.com/Tariod
17. Илья Федорович https://github.com/Kowalski0805
18. Алина Листунова https://github.com/alinkedd
19. Даниил Гуськов https://github.com/imnetcat
20. Алексей Румянцев https://github.com/o-rumiantsev
21. Виталий Кухар https://github.com/vkukh
И если кто еще не подписан на меня, то вот мой профиль:
👉 Тимур Шемсединов https://github.com/tshemsedinov
1. Маттео Калина https://github.com/mcollina
2. Джеймс Снелл https://github.com/jasnell
3. Ден Абрамов https://github.com/gaearon
4. Анна Хеннингсен https://github.com/addaleax
5. Рик Тротт https://github.com/Trott
6. Илья Климов https://github.com/xanf
7. Андрей Ситник https://github.com/ai
8. Федор Индутный https://github.com/indutny
9. Линус Торвальдс https://github.com/torvalds
10. Дуглас Крокфорд https://github.com/douglascrockford
11. Брендон Эйх https://github.com/BrendanEich
12. Андерс Хейлсберг https://github.com/ahejlsberg
1. Алексей Орленко https://github.com/aqrln
2. Дмитрий Нечай https://github.com/nechaido
3. Денис Отришко https://github.com/lundibundi
4. Николай Белочуб https://github.com/belochub
5. Георг Ольденбургер https://github.com/georgolden
6. Владислав Духин https://github.com/primeare
7. Иван Тимошенко https://github.com/ivan-tymoshenko
8. Лидия Иванова https://github.com/lidaamber
9. Алексей Голиков https://github.com/agil
10. Артем Черненький https://github.com/GYFK
11. Андрей Высоцкий https://github.com/Gagnant
12. Сергей Нановский https://github.com/snanovskyi
13. Влад Дзюба https://github.com/DzyubSpirit
14. Роман Огиевич https://github.com/rohiievych
15. Диана Болотенюк https://github.com/mille-nium
16. Дмитрий Михайлов https://github.com/Tariod
17. Илья Федорович https://github.com/Kowalski0805
18. Алина Листунова https://github.com/alinkedd
19. Даниил Гуськов https://github.com/imnetcat
20. Алексей Румянцев https://github.com/o-rumiantsev
21. Виталий Кухар https://github.com/vkukh
И если кто еще не подписан на меня, то вот мой профиль:
👉 Тимур Шемсединов https://github.com/tshemsedinov
Please open Telegram to view this post
VIEW IN TELEGRAM
Считаю плохой идеей учиться программированию на базе:
🙅🏻 Алгоритмы - они уже давно есть готовые в языках и платформах, менее 1% программистов будут их реализовывать в работе, а если будут, то их нужно за это наказывать. Вот что действительно нужно, так это краткий обзор алгоритмов и использование структур данных, именно с упором на применение, а не разработку.
🙅🏻 leetcode и аналоги - это задачи которые не должны встречаться в жизни никогда,
🙅🏻 Олимпиадное программирование - это простыни быстрого, нечитаемого кода, условия такие, пишем быстро и write-only, к чему хорошему это может привести?
🙅🏻 System design и highload - большинство людей пишут системы совсем не для миллионов пользователей, а те, кто пишут для миллионов, могут просто посмеяться, как эту тему любят обсуждать на собеседованиях, на курсах, в свободное время между программистами, об этом приятно мечтать, да... но люди пишут на работе обычно апишки, модельки, формочки, бизнес-логику и интеграции. Мы не говорим про 100% людей, но массово именно так.
🙅🏻 Треш-головоломки, типа как сделать
🙅🏻 Алгоритмы - они уже давно есть готовые в языках и платформах, менее 1% программистов будут их реализовывать в работе, а если будут, то их нужно за это наказывать. Вот что действительно нужно, так это краткий обзор алгоритмов и использование структур данных, именно с упором на применение, а не разработку.
🙅🏻 leetcode и аналоги - это задачи которые не должны встречаться в жизни никогда,
🙅🏻 Олимпиадное программирование - это простыни быстрого, нечитаемого кода, условия такие, пишем быстро и write-only, к чему хорошему это может привести?
🙅🏻 System design и highload - большинство людей пишут системы совсем не для миллионов пользователей, а те, кто пишут для миллионов, могут просто посмеяться, как эту тему любят обсуждать на собеседованиях, на курсах, в свободное время между программистами, об этом приятно мечтать, да... но люди пишут на работе обычно апишки, модельки, формочки, бизнес-логику и интеграции. Мы не говорим про 100% людей, но массово именно так.
🙅🏻 Треш-головоломки, типа как сделать
await [promise1, promise2]
- я сам их использую но это только для привлечения внимания, они реально возбуждают фантазии программистов, но я всегда делаю оговорку, что так писать нельзя и даже такую задачу ставить нельзя.❓ Что не нужно знать и учить мы поговорили. А знеете ли Вы то, что нужно знать и учить? (выберите несколько)
Anonymous Poll
46%
Мультипарадигменное программирование
62%
Чистая архитектура и слоеная архитектура
55%
Системы модульности, внедрение зависимостей DI и IoC
41%
Декомпозиция абстракций через принципы SRP и ISP
41%
Контрактное программирование и моделирование через схемы
44%
Принципы изоляции и SoC (Separation of concerns)
56%
Coupling (зацепление) и Cohesion (связывание)
36%
Подходы Platform-agnostic, Framework-agnostic, Protocol-agnostic
22%
Проектирование доменных языков domain-specific language (DSL)
46%
Разделение прикладного и системного кода (это разные специальности)
🧩 Паттерн Adapter может быть реализован в JavaScript множеством разных способов, на примерах для Node.js и браузеров. Все они имеют одну главную концепцию - обертка абстракции и связывание обернутого интерфейса с внешним. Но враперы для реализации адаптера можно делать на базе разных идей:
- Расширение адаптирруемого класса при помощи extends
- Боксирование адаптирруемого класса или функции
- Обертка адаптирруемого класса или функции в замыкание
- Использование композиции для боксинга адаптирруемого класса
- Использование аггрегации для боксинга адаптирруемого класса
- Реализаци обертки как широко известного контракта или интерфейса
- Применение открытого конструктора вместо наследования
Я думаю, что из примеров кода это проще понять, чем из текста, но после кода все же хорошо вернуься к обобщению. Примеры кода тут: https://github.com/HowProgrammingWorks/Adapter
- Расширение адаптирруемого класса при помощи extends
- Боксирование адаптирруемого класса или функции
- Обертка адаптирруемого класса или функции в замыкание
- Использование композиции для боксинга адаптирруемого класса
- Использование аггрегации для боксинга адаптирруемого класса
- Реализаци обертки как широко известного контракта или интерфейса
- Применение открытого конструктора вместо наследования
Я думаю, что из примеров кода это проще понять, чем из текста, но после кода все же хорошо вернуься к обобщению. Примеры кода тут: https://github.com/HowProgrammingWorks/Adapter